Em resumo
A API de Assinatura da Blockradar permite que você assine criptograficamente mensagens de texto simples, dados estruturados (dados tipados) e transações brutas usando as chaves privadas da sua carteira. Assine mensagens para comprovar a propriedade da carteira. Assine transações construídas externamente (ex.: swaps Jupiter no Solana) sem expor chaves privadas, e opcionalmente faça broadcast delas on-chain.
A API de Assinatura da Blockradar permite que você assine criptograficamente mensagens de texto simples, dados estruturados (dados tipados) e transações brutas usando as chaves privadas da sua carteira. Assine mensagens para comprovar a propriedade da carteira. Assine transações construídas externamente (ex.: swaps Jupiter no Solana) sem expor chaves privadas, e opcionalmente faça broadcast delas on-chain.
Pré-requisitos
Antes de usar a API de Assinatura, certifique-se de ter:1
Chave API
Obtenha sua chave API no Painel da Blockradar. Navegue até Developers para gerar uma.
2
Carteira Criada
Crie uma carteira mestra no Painel da Blockradar. Navegue até Wallets e crie uma para a blockchain desejada. Você precisará do
walletId para operações de assinatura.3
Ambiente
Escolha entre Testnet (para desenvolvimento) ou Mainnet (para produção). Carteiras são isoladas por ambiente.
Como Funciona
A API de Assinatura produz uma assinatura criptográfica que comprova que você controla um endereço de carteira específico. A saída assinada pode ser verificada por qualquer terceiro sem acessar suas chaves privadas.Assinatura de Mensagem
Assine mensagens de texto simples para comprovar a propriedade da carteira. Funciona em todas as blockchains suportadas: EVM, Tron e Solana.
Assinatura de Dados Tipados
Assine dados estruturados seguindo o padrão EIP-712. Usado para aprovações sem gas (EIP-2612 Permit) e transferências autorizadas (EIP-3009). Apenas EVM.
Assinatura de Transação
Assine transações brutas construídas externamente. Construa um swap no Jupiter, uma chamada de contrato via ethers.js ou uma transferência TronWeb, e envie a tx não assinada para obter a assinatura sem expor chaves privadas.
Broadcast de Transação
Assine e faça broadcast de uma transação bruta em um único passo. A Blockradar assina a transação e a submete on-chain via uma fila confiável com retentativas automáticas.
Casos de uso comuns
- Registro em provedores terceiros: Comprove que você é proprietário de um endereço ao se cadastrar em serviços como Iron, Circle ou outros protocolos DeFi
- Aprovações de tokens sem gas: Assine mensagens EIP-2612 Permit para autorizar gastos de tokens sem uma transação on-chain
- Transferências autorizadas: Assine mensagens EIP-3009 TransferWithAuthorization para transferências delegadas
- Atestações off-chain: Crie provas verificáveis de intenção ou acordo vinculadas a um endereço de carteira
- Execução de swaps externos: Construa um swap Jupiter no Solana, assine com a Blockradar e faça broadcast on-chain
- Interações customizadas com contratos: Construa qualquer transação externamente e tenha a Blockradar assinando e/ou submetendo ela
Carteira Mestra vs Endereço Filho
A API de Assinatura está disponível em dois níveis:Carteira Mestra
Assine usando as chaves da carteira mestra. Ideal para operações de tesouraria e integrações com provedores.
Endereço Filho
Assine usando as chaves de um endereço filho específico. Use quando o terceiro exigir uma assinatura de um endereço de depósito.
Endpoints
Assinatura de Mensagem
Assine uma mensagem de texto simples com a chave privada da sua carteira. A API assina a mensagem, verifica se a assinatura corresponde ao endereço da carteira e retorna tanto a assinatura quanto um registro de transação.Blockchains Suportadas
Parâmetros da Requisição
Exemplo de Assinatura de Mensagem
Resposta EVM
Resposta Tron / Solana
Para Tron e Solana, o objetosignedTransaction contém apenas o campo signature (sem componentes r, s, v):
Campos da Resposta
Assinatura de Dados Tipados (Apenas EVM)
Assine dados estruturados seguindo o padrão EIP-712. Isso é usado para aprovações sem gas, transferências delegadas e outros fluxos de autorização on-chain que requerem uma assinatura estruturada.Padrões Suportados
Parâmetros da Requisição
Exemplo EIP-2612 Permit
Resposta de Dados Tipados
Campos do Objeto Domain
Assinatura com Endereço Filho
Assine mensagens, dados tipados, transações ou faça broadcast usando um endereço filho específico em vez da carteira mestra. Todas as quatro operações de assinatura estão disponíveis para endereços filhos:Eventos de Webhook
Operações de assinatura disparam um webhook com o registro da transação:Payload do Webhook (Assinatura de Mensagem ou Dados Tipados)
Payload do Webhook (Assinatura de Transação)
Para assinatura de transação, o camposignedTransaction é uma string (não um objeto). O formato depende da chain.
Payload do Webhook (Broadcast com Sucesso)
Após a fila de broadcast confirmar a transação on-chain, você recebe este webhook. O campohash é atualizado para o hash da transação on-chain e confirmed muda para true.
Payload do Webhook (Broadcast com Falha)
Se o broadcast falhar permanentemente após todas as tentativas de retentativa, você recebe este webhook. Ostatus é FAILED e confirmed permanece false.
Assinatura de Transação
Assine uma transação bruta, não assinada, construída externamente. Você constrói a transação usando qualquer SDK (ethers.js, TronWeb, Solana web3.js, Jupiter API), e envia a transação serializada não assinada para a Blockradar para assinatura e/ou transmissão, sem precisar construir ou gerenciar sua própria infraestrutura ou nós blockchain.Blockchains e Formatos Suportados
Parâmetros da Requisição
Exemplo de Assinatura de Transação (Solana + Jupiter)
Exemplo de Assinatura de Transação (EVM)
Resposta de Assinatura (EVM)
Resposta de Assinatura (Solana)
Resposta de Assinatura (Tron)
Para assinatura de transação,
signedTransaction é uma string, não um objeto. Isso é diferente da assinatura de mensagem, onde retorna um objeto com componentes da assinatura como r, s, v.Formato de signedTransaction por Chain
Campo hash por Chain
Broadcast de Transação
Assine e faça broadcast de uma transação bruta em um único passo. A Blockradar assina a transação e a submete on-chain via uma fila confiável com retentativas automáticas. A API retorna imediatamente com statusPENDING. Você receberá um webhook signed.success ou signed.failed quando o resultado on-chain for confirmado.
Requisição
Mesmos parâmetros da assinatura de transação:Exemplo de Broadcast
Resposta de Broadcast (Exemplo Solana, imediata)
Ciclo de Vida do Broadcast
A transação passa pelos seguintes estados:Exemplo de Fluxo Completo
Aqui está uma implementação completa para assinar uma mensagem e enviar a assinatura para um provedor terceiro:Respostas de Erro
Carteira Não Encontrada
Carteira Não Encontrada
walletId não existe ou não pertence ao seu negócio.Endereço Não Encontrado
Endereço Não Encontrado
addressId não existe ou não está associado à carteira especificada.Blockchain Não Suportada (Dados Tipados)
Blockchain Não Suportada (Dados Tipados)
Chain ID Incompatível
Chain ID Incompatível
chainId no seu objeto de domínio de dados tipados não corresponde à rede blockchain da carteira.Falha na Verificação da Assinatura
Falha na Verificação da Assinatura
Formato de Transação Inválido (Solana)
Formato de Transação Inválido (Solana)
transaction não é um base64 válido, ou os bytes decodificados não são uma VersionedTransaction válida do Solana.Formato de Transação Inválido (EVM/Tron)
Formato de Transação Inválido (EVM/Tron)
transaction não é um JSON válido. Transações EVM e Tron devem ser objetos serializados como JSON string.Melhores Práticas
Segurança
- Use referências: Rastreie operações de assinatura com IDs de referência únicos para trilhas de auditoria e idempotência
- Verifique a mensagem: Antes de assinar, confirme que o conteúdo da mensagem corresponde ao que o serviço terceiro espera
- Limite o tamanho da mensagem: Mensagens são limitadas a 4.096 caracteres. Mantenha as mensagens concisas e específicas
Integração
- Sem taxas de gas: Operações de assinatura são off-chain e não requerem saldo de token nativo
- Resposta imediata: As assinaturas são geradas de forma síncrona. Não é necessário polling ou espera por webhook para a assinatura em si
- Ouça os webhooks: Use webhooks para manter uma trilha de auditoria de todos os eventos de assinatura
Dados Tipados
- Combine os chain IDs: O
chainIdno seu domínio deve corresponder à rede da carteira. Use chain IDs de sandbox (testnet) para testes e chain IDs de produção (mainnet) para operações em produção - Verifique o contrato: O
verifyingContractdeve ser o contrato que verificará a assinatura on-chain
Assinatura de Transação
- Construa a transação com o remetente correto: A transação não assinada deve usar a chave pública da carteira ou endereço filho como fee payer (Solana) ou remetente (EVM/Tron). Se a chave não corresponder, a assinatura falhará.
- Blockhashes do Solana expiram rapidamente: Blockhashes do Solana são válidos por cerca de 60 a 90 segundos. Construa a transação e chame o endpoint de assinatura prontamente. Se usar broadcast, as retentativas da fila não ajudarão quando o blockhash expirar.
- Gerenciamento de nonce EVM: Defina o nonce corretamente. Se o nonce já foi usado, o broadcast falhará. Consulte o nonce na chain imediatamente antes de construir a transação.
- Expiração do Tron: Transações Tron têm uma janela de expiração de 24 horas definida durante a construção. Isso dá tempo suficiente para assinatura e broadcast.
- Apenas assinar vs broadcast: Use
/signing/transactionquando quiser fazer broadcast da transação você mesmo ou através de outro serviço. Use/signing/broadcastquando quiser que a Blockradar cuide da submissão com retentativas automáticas.

