Skip to main content
A Astron Pay hospeda uma wallet Solana MPC (Multi-Party Computation) gerenciada para cada merchant e cada receiver. Você pode solicitar assinaturas dessas wallets para construir fluxos on-chain customizados além dos payin/payout padrão.

Dois modos

sign-transaction (assinar apenas)

Recebe uma transação já serializada (base64), devolve a mesma transação com a assinatura adicionada. Você é responsável por transmitir à rede. Use quando:
  • Precisa montar a transação localmente (com seus próprios programs, instructions, etc).
  • Quer controlar RPC, priority fees e timing do broadcast.
  • Vai anexar assinaturas adicionais de outras carteiras.

sign-and-send-transaction (assinar e transmitir)

A plataforma assina e transmite à rede Solana. Retorna o hash da transação on-chain. Use quando:
  • Só precisa de uma transação simples assinada e confirmada.
  • Não quer manter infraestrutura de RPC/broadcast.

Qual wallet usar

EndpointWallet
/merchant/wallet/sign-*Wallet MPC do merchant
/receivers/{id}/wallet/sign-*Wallet MPC do receiver

Construindo uma transação

Qualquer biblioteca Solana padrão serve (@solana/web3.js, @solana/kit, etc.). Exemplo com @solana/web3.js:
import { Connection, Transaction, SystemProgram, PublicKey } from '@solana/web3.js';

const tx = new Transaction().add(
  SystemProgram.transfer({
    fromPubkey: new PublicKey(receiverWallet),
    toPubkey: new PublicKey(destWallet),
    lamports: 1_000_000,
  })
);
tx.recentBlockhash = (await connection.getLatestBlockhash()).blockhash;
tx.feePayer = new PublicKey(receiverWallet);

const serialized = tx.serialize({ requireAllSignatures: false }).toString('base64');

const res = await fetch(`https://api.astronpay.co/api/v1/receivers/${receiverId}/wallet/sign-and-send-transaction`, {
  method: 'POST',
  headers: {
    'x-api-key': apiKey,
    'x-api-secret': apiSecret,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ transaction: serialized }),
});
const { hash } = await res.json();

Limites e segurança

  • A plataforma valida instructions contra uma allowlist (ex.: transferências SPL). Instructions maliciosas são rejeitadas.
  • O endpoint exige autenticação API Key do merchant que possui o receiver.