Skip to main content
POST

Overview

Broadcasts the fully-signed buy transaction to Solana and returns the on-chain signature. This is a pure passthrough — GRAIL calls sendRawTransaction and returns the signature. No database row is written here. The Trade row is written asynchronously by the indexer after the transaction confirms on-chain, typically 10–15 seconds on devnet. Until then, Get Trade returns 404.
You may also broadcast the signed transaction directly to any Solana RPC without calling this endpoint. The indexer picks up the confirmed transaction regardless of who broadcasts it.
GRAIL’s submit endpoint runs Solana’s pre-flight simulation. If you want a transaction to actually land and revert on-chain (e.g., for failure-path testing), broadcast yourself with skipPreflight: true.

Headers

string
required
A valid PARTNER scope key.

Path Parameters

string
required
Trade identifier (prefixed trd_) returned by Quote Buy.

Request Body

string
required
Base64-encoded, fully-signed Solana transaction. Starts from the partially_signed_transaction returned by the quote, with partner and user signatures added.

Response

string
Echo of the path parameter.
string
Solana transaction signature (base58). The on-chain identifier of the broadcasted transaction.

Errors