Boas Práticas de Solana Pay e Actions
25 práticas para fluxos Pay e Actions seguros e descobríveis.
-
HTTPS em todo lugar: Actions, ícones e callbacks devem usar TLS (Segurança e Verificação).
-
Implemente CORS OPTIONS: Wallets fazem preflight POST - OPTIONS ausente quebra fluxos.
-
GET é apenas metadata: Nunca mute estado em rotas GET de action.
-
Simule transações POST: Retorne apenas wire txs com sucesso na simulação.
-
Verifique pagamentos no servidor: Conta de referência + valor via RPC (Noções Básicas de Solana Pay).
-
Referência única por pedido: Evite replay e bugs de reconciliação.
-
lamports bigint: Consistente com tipos kit 7.0.0.
-
Blockhash fresco por POST: Sem transações em cache.
-
Instruções de least-privilege: Actions são alvos de phishing de alto risco.
-
Auto-hospede ícones de action: Evite adulteração de hotlink de terceiros.
-
Rate limit em endpoints POST: Evite griefing RPC.
-
Restrinja CORS em produção: Wildcard apenas para dev.
-
Clareza de cluster: Metadata ou docs indicam devnet vs mainnet.
-
Labels legíveis: Truncamento de preview da wallet é real.
-
Teste em múltiplas wallets: Phantom, Solflare no mínimo.
-
Teste unfurl Blink: Ícone, título e botão antes do lançamento da campanha.
-
Registre assinaturas: Analytics e suporte para actions concluídas.
-
Nunca retorne secrets em JSON: Apenas transações base64.
-
Auth para actions patrocinadas: Cap por usuário/dia.
-
Builders Codama para ixs de programa: Evite discriminators codificados manualmente.
-
Monitore domínios clone: Phishing copia sua UI de action.
-
Eduque usuários a verificar domínio: Alfabetização Blink reduz drains.
-
Endpoints devnet separados: Env vars por deployment.
-
Documente intent da action: Página pública de segurança explicando efeitos da tx.
-
Runbook de incidente: Pause URL de action se exploit suspeito.
FAQs
Solana Pay vs Actions?
Pay para transferências/QR simples; Actions para tx rica + Blinks.
Precisa de provedor Blink?
Use unfurlers suportados ou links de action diretos em apps compatíveis.
@solana/pay ainda?
Sim para transfer requests encodeURL junto com Actions.
Relacionados
- Construindo uma Action - implementação
- API Routes Next.js - hospedagem
- Boas Práticas de Wallet Integration - UX de assinatura
Versões da stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 e LiteSVM 0.6.x.