PagamentosAssinaturas

Visão Geral

O Programa de Delegação de Assinaturas permite que desenvolvedores possibilitem que os usuários autorizem transferências futuras de tokens de suas carteiras com limites claros. Ele foi projetado para pagamentos recorrentes, assinaturas, cobrança de comerciantes e outros fluxos onde um usuário não deve ter que assinar cada transferência manualmente.

Finalidade

As contas de token da Solana podem aprovar outra autoridade para movimentar tokens, mas cada conta de token só pode ter uma autoridade aprovada por vez. Isso dificulta que uma carteira suporte com segurança vários arranjos de gastos para o mesmo token, como uma assinatura mensal, um limite de gastos fixo e um acordo de cobrança de comerciante.

Este programa resolve isso ao fornecer a cada par (user, token mint) uma Autoridade de Assinatura controlada pelo programa. A conta de token do usuário aprova essa autoridade uma vez. O programa então verifica cada transferência solicitada contra um registro separado que define quem pode retirar fundos, quanto pode retirar e quando a autorização expira ou é redefinida.

A Autoridade de Assinatura não pode movimentar fundos por si só. Uma transferência só é bem-sucedida quando corresponde a uma das autorizações ativas do usuário.

ID do Programa

De1egAFMkMWZSN5rYXRj9CAdheBamobVNubTsi9avR44

O ID do programa é declarado em program/src/lib.rs. Os fluxos de trabalho locais do Surfpool instalam o programa neste endereço canônico.

Modelos de Delegação

O programa suporta três modelos de autorização:

ModeloFinalidade
Delegação fixaPermite que outra carteira ou serviço gaste até um valor total fixo, opcionalmente até um prazo de expiração.
Delegação recorrentePermite que outra carteira ou serviço gaste até um limite que é redefinido a cada período, como diário, semanal ou mensal.
Plano de assinaturaPermite que um comerciante publique termos de cobrança que os usuários podem aceitar, e então permite que cobradores aprovados cobrem os assinantes a cada período de cobrança.

Tokens Suportados

O programa suporta tokens criados com SPL Token e Token-2022. A única extensão Token-2022 que ele rejeita é um TransferHook configurado (onde o hook authority ou program_id está definido). Um TransferHook inerte (ambos indefinidos e, portanto, permanentemente imutável) e todas as outras extensões são permitidas.

Eventos On-Chain

O programa emite eventos on-chain para que indexadores e aplicações possam rastrear atividades importantes. Esses eventos cobrem alterações de assinatura e transferências realizadas através de fluxos fixos, recorrentes e de planos de assinatura.

Versionamento

Os registros de propriedade do programa incluem um campo de versão. Isso fornece ao programa um caminho para atualizar dados de contas ao longo do tempo sem prejudicar usuários existentes. A estratégia de migração suporta:

  • Atualização preguiçosa in-place
  • Instrução de migração explícita
  • Fallback de revogação e recriação

Contribuidores

O projeto é mantido por contribuidores do repositório solana-program/subscriptions.

Status de Auditoria

O programa foi auditado pela Cantina. O status da auditoria, commit de baseline, commit com correções verificadas e delta não auditado atual são rastreados no diretório audits/ do repositório.

Aplicação de Demonstração

Se quiser experimentar o programa por conta própria, pode consultar uma aplicação de exemplo aqui para ver uma implementação completa dos conceitos abordados nesta secção.

Is this page helpful?

Índice

Editar Página
© 2026 Fundação Solana. Todos os direitos reservados.