Transferência muitos para muitos na Solana
Transferências pareadas na Solana: uma transação por linha, 0,001 SOL por transferência e a regra de rent que pula uma linha em vez de apará-la.

Existem três formas de mover muitos pagamentos de uma vez na Solana, e elas se confundem o tempo todo. Um multi-sender paga uma lista a partir de uma carteira. Um collector recolhe várias carteiras para dentro de uma. E depois vem o caso que nenhuma das duas consegue expressar.
Uma transferência muitos para muitos na Solana mantém cada remetente com o seu próprio destinatário. A carteira 7 paga a carteira 7, a 8 paga a 8, e nenhuma das duas sabe da outra.
Parece um detalhe pequeno. É a diferença entre uma fonte e quarenta fontes independentes.
- Uma linha é uma transação. A carteira remetente daquela linha paga tudo o que estiver nela.
- Taxa de plataforma 0,001 SOL por transferência, taxa de rede 0,000005 SOL.
- Um destinatário que nunca teve esse token acrescenta 0,00203928 SOL de depósito de rent.
- As linhas que não passam são puladas, não aparadas.
Três formas de transferência em massa
A ferramenta de envio múltiplo é um para muitos. Uma carteira, uma lista de destinatários, um pagador. É a forma de um airdrop.
O coletor em lote é muitos para um. Vinte carteiras, um destino, e no fim tudo fica num lugar só.
A ferramenta de muitos para muitos é a terceira forma e a única que entende de pares. A linha um tem a sua própria fonte, a linha dois tem outra. Sem caixa comum e sem compensação entre linhas.
Quanto custa uma linha
Numa linha podem aparecer três itens, e a carteira remetente daquela linha paga os três. Não existe conta de financiamento compartilhada, então uma carteira que não cobre a própria linha não pega emprestado da linha de cima. O item de rede é a taxa base de 5.000 lamports por assinatura que a documentação de taxas da Solana detalha.
| Item | Modo SOL | Modo token |
|---|---|---|
| Taxa de plataforma | 0,001 SOL | 0,001 SOL |
| Taxa de rede | 0,000005 SOL | 0,000005 SOL |
| Conta de token do destinatário | não se aplica | 0,00203928 SOL, e só quando esse destinatário nunca teve este token |
Leia a terceira linha duas vezes, porque é a que pega as pessoas de surpresa. Mandar um token SPL para um endereço que nunca o tocou significa criar uma conta para guardá-lo, e a Solana cobra um depósito de rent por essa conta. O depósito vale cerca de duzentas vezes a taxa de rede e o dobro da taxa de plataforma.
Com cem destinatários novos isso dá uns 0,204 SOL da conta, enquanto a taxa de plataforma para em 0,1. O depósito não é queimado: fica na conta de token do destinatário e volta para quem fechar essa conta mais adiante.
As linhas que são puladas
Antes da assinatura rodam duas verificações, e as duas param a linha em vez de mudá-la.
A primeira é aritmética simples. Se a carteira remetente não cobre o valor mais as taxas mais alguma conta de token que precise ser aberta, a linha é marcada e deixada quieta. Nada sai pela metade.
A segunda é mais estranha e vale entender, porque na primeira vez parece um defeito. A Solana não deixa uma conta com saldo acima de zero mas abaixo do mínimo isento de rent. Para uma carteira comum esse mínimo é 0,00089088 SOL, e ele sai da fórmula que está na documentação de contas da Solana.
Esvaziar uma conta por completo é permitido. Deixar 0,0005 SOL dentro não é. Uma linha que empurra a carteira para dentro dessa fresta é marcada como rent dust e fica sem envio.
Por que não aparar o valor e pronto
A alternativa seria cortar o valor até caber, e isso é pior. Você digitou um número. Uma ferramenta que envia outro número sem avisar é uma ferramenta contra a qual você não consegue conciliar planilha nenhuma depois.
Mande o saldo inteiro, ou baixe o valor até o resto passar do mínimo. A prévia mostra de antemão quais linhas são afetadas, e a ferramenta consulta todas as contas de destino numa única chamada antes de assinar qualquer coisa.
Uma transação por linha, e por que isso pesa
Como cada linha é a própria transação, uma linha que falha cai sozinha. Num lote que empilha tudo dentro de uma transação, um erro na linha 30 leva junto as 29 anteriores.
Isso tem um custo: quarenta pares são quarenta assinaturas e quarenta taxas de plataforma. Em troca você recebe um resultado que se lê linha a linha. Para saber a que velocidade essas transações entram, os números estão em o artigo sobre a taxa de prioridade.
Quando uma transferência muitos para muitos na Solana é a forma certa
Rotação de carteiras é a resposta honesta para a maioria. Você tem um conjunto de carteiras com um histórico que prefere deixar para trás, gera um novo com o gerador de carteiras em lote, e quer que a antiga carteira 7 financie a nova carteira 7 e mais nada.
O segundo caso é uma lista de pagamentos em que o pagador muda a cada linha. Vários projetos, várias tesourarias, uma planilha só. Um multi-sender não consegue expressar isso, porque tem exatamente uma fonte.
O terceiro é a redistribuição depois de um snapshot, em que cada holder recebe de uma carteira que você já atribuiu a ele. Como ler essa distribuição antes de distribuir está em o guia sobre distribuição de detentores.
Preparar a lista
Faça a primeira passada com duas linhas. A tabela de resultados diz quanto uma linha custou de verdade, incluindo depósitos de conta de token, antes de você mandar duas mil.
Verifique também se os destinatários já têm o token. Numa lista metade formada por holders existentes o item de depósitos cai pela metade, e com cem linhas essa é a maior cifra da conta inteira.
E anote antes qual carteira paga qual linha. Depois da passada essa correspondência custa mais para remontar do que parece agora, principalmente se as remetentes foram geradas há pouco e ainda não têm histórico que as diferencie.
Um último ponto sobre saldo: deixe em cada remetente algo acima do valor dela. Ajustada no centavo, a verificação de rent separa a linha e é preciso refinanciar, o que demora mais do que ter guardado uma margem desde o início.
Perguntas frequentes sobre a transferência pareada
Qual a diferença de rodar o multi-sender várias vezes?
O multi-sender tem exatamente uma fonte por rodada. Quarenta fontes são quarenta rodadas e quarenta trocas manuais de carteira. Aqui é uma rodada com quarenta linhas.
Uma linha que falha custa alguma coisa?
Não. Uma linha que não passa na verificação prévia nunca é assinada, então não há taxa de rede nem de plataforma.
Remetentes e destinatários podem se sobrepor?
Podem. Uma carteira pode enviar numa linha e receber em outra. Cada linha é verificada por conta própria.
Por que minha linha ficou marcada como rent dust?
Porque o resto na carteira remetente cairia entre zero e 0,00089088 SOL. Mande o saldo inteiro ou baixe o valor.
Preciso de SOL numa carteira que só envia tokens?
Precisa. A taxa de rede e a de plataforma são pagas em SOL mesmo quando a transferência é de um token.
Existe um número máximo de pares?
Na prática quem limita é a preparação, não a ferramenta: cada carteira remetente precisa estar financiada antes.
Como decidir numa linha
Se a sua planilha tem uma coluna para o pagador, esta é a forma que você precisa. Se todas as linhas saem da mesma carteira, use o multi-sender e pague uma vez em vez de quarenta. E se faltar uma linha, olhe primeiro o mínimo de rent antes de supor um defeito. Sobre esse mínimo há mais em a explicação do saldo insuficiente para rent.


