Skip to main content
POST
Sign and broadcast with the master Solana wallet
The active Solana master wallet resolved from the API key must be both a required signer and the fee payer. A successful 202 response means the transaction was submitted, not finalized.

Headers

string
required
Active production API key for the merchant that owns the master wallet.
string
required
Unique key for this logical signing request, up to 255 characters. Retain it with the exact serialized transaction.

Request body

string
required
Base64-encoded serialized Solana VersionedTransaction, up to 4,096 characters. The selected wallet must be the fee payer and a required signer. Other required signers must sign before serialization.

Response

Important behavior

  • FossaPay simulates before signing and broadcasting.
  • The wallet initiating the transaction pays the Solana network fee.
  • Requests are limited to 10 per minute.
  • Repeating the identical submitted request with the same idempotency key returns the stored result.
  • A failed or expired transaction must be rebuilt with a fresh blockhash and submitted with a new key.
  • Finality is reconciled through Solana RPC; this flow does not emit a merchant webhook.
See Solana Transaction Signing for transaction construction, statuses, retries, and security controls.

Authorizations

x-api-key
string
header
required

Headers

X-Idempotency-Key
string
required

Unique merchant-scoped key for this exact signing request. Maximum 255 characters.

Required string length: 1 - 255

Body

application/json
serializedTransaction
string
required

Base64-encoded serialized Solana VersionedTransaction. The selected FossaPay wallet must be a required signer and the fee payer; all other required signers must already have signed.

Required string length: 1 - 4096
Example:

"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAB..."

Response

Transaction simulated, signed, and submitted

status
string
required
Allowed value: "success"
statusCode
integer
required
message
string
required
data
object
required