Verify Solana signatures and payment instructions
verify_solana_transactionOffline check of every ed25519 signature of a Base64 Solana transaction (legacy or versioned), for example payload.transaction of an x402 Solana payment. Each required signer slot is checked against its signer key. An x402 exact SVM payload is partially signed: the client signs, and the facilitator adds the fee-payer signature at settlement, so empty (all-zero) slots are reported as pendingSigners (feePayerPending is true when the fee payer has not signed yet) rather than as failures. verified is true only when at least one signature is present, every present signature is valid and the number of signature slots matches the message header. Transactions larger than 1232 bytes are refused. An optional reviewed requirement adds conservative offline TransferChecked inspection in payment: mint, merchant ATA, exact amount, signed client, sponsor isolation, compute caps and memo. payment.verified is separate from signature-only verified. Unsupported programs, unresolved address lookup tables and Token-2022 extensions cannot be verified offline. It does NOT check account state, balances, execution, replay or settlement.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| policy | No | ||
| requirement | No | Reviewed exact SVM terms for optional conservative instruction inspection; never execution proof. | |
| transaction | Yes | The Base64-encoded serialized Solana transaction. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| scheme | Yes | ||
| payment | No | ||
| reasons | Yes | ||
| signers | No | One entry per signature slot, in order (slot 0 is the fee payer), with its base58 publicKey and status: valid, invalid or pending. | |
| version | No | ||
| feePayer | Yes | ||
| verified | Yes | ||
| pendingSigners | No | ||
| signatureCount | No | ||
| signatureValid | Yes | ||
| feePayerPending | No |