Overview
Broadcasts the fully-signed redemption transaction and returns the on-chain signature. Pure passthrough — no database write. The indexer transitions the redemption from quoted to submitted (or failed on revert) once the transaction is confirmed on-chain.
You may also broadcast directly to any Solana RPC. The indexer will pick up the transaction regardless.
A valid PARTNER scope key.
Path Parameters
Request Body
Base64-encoded, fully-signed Solana transaction (GRAIL’s partial sig + user).
Response
Echo of the path parameter.
Solana transaction signature (base58).
Errors
| HTTP | error | When |
|---|
| 400 | invalid_request | Missing or non-string signed_tx |
| 400 | broadcast_failed | Solana RPC rejected the transaction — message has reason |
curl -X POST \
https://grail-stack-dev.onrender.com/v1/redemptions/red_a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d/submit \
-H "x-api-key: grail_partner_<hex>" \
-H "Content-Type: application/json" \
-d '{
"signed_tx": "AQAAAAABAAEC...<base64>..."
}'
{
"redemption_id": "red_a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"tx_hash": "4ABC...base58"
}