Submit signature(s)
Submits the end-user’s signature over the quote’s sign payload. Provide the field that matches the quote’s sign.scheme:
- Solana (
solana_ed25519):signature, the base58 ed25519 signature ofsign.message_base64. - EVM (
evm_7702):signatures.authorizationandsignatures.witness, each a 0x-prefixed 65-byte secp256k1 signature. - Tron (
tron_router):tron_signature, a 0x-prefixed 65-byte secp256k1 signature ofsign.digest. If the quote’ssign.approve.neededis true (a first-time sender), you must ALSO sendtron_approve_signature, the signature ofsign.approve.digest, in this same call. Submitting onlytron_signaturewhen the approve is required is rejected.
Bitnob verifies that the signatures recover to the sender, attaches its operator signature, freezes the fully-signed transaction, and queues it for broadcast. It returns 202 with the transfer advanced toward pending. Poll GET /sponsored-transfers/{id} (or await a webhook) for the on-chain result. A signature that does not verify returns 422 (signature_invalid) and leaves the quote valid, so you can re-sign and resubmit. Requires the Idempotency-Key header.
Authorizations
Headers
API version (defaults to the latest supported version if omitted).
v1 Unique key (1-255 printable ASCII chars) used to safely retry write operations. Same key + body returns the cached response; same key + different body returns 409.
1 - 255Path Parameters
Sponsored-transfer ID
Body
Solana (scheme solana_ed25519): base58 ed25519 signature of the quote's sign.message_base64.
"5Hx...base58sig"
EVM (scheme evm_7702): the authorization + witness signatures.
Tron (scheme tron_router): the sender's signature of sign.approve.digest. Required, and only, when the quote returns sign.approve.needed = true (a first-time sender). Submit it together with tron_signature.
"0x..."
Tron (scheme tron_router): 0x-prefixed 65-byte secp256k1 signature of the quote's sign.digest.
"0x..."
Response
Success
RFC 3339 quote expiry; present while status is quoted. Sign and submit before this time.
Machine-readable failure reason on a failed transfer, e.g. insufficient_token_balance, transfer_reverts, reverted.
Human-readable failure detail.
Bitnob sponsorship fee, charged in the transferred token.
Transfer id; use it in the submit and get endpoints.
Object type discriminator; always "sponsored_transfer".
"sponsored_transfer"
Your markup breakdown; present only if you attached partner_fee on the quote.
What the recipient receives (decimal).
"10.50"
The resolved EVM router contract version the transfer was quoted against (absent for non-EVM).
What the end-user must sign; present only while status is quoted.
Lifecycle status: quoted, validating, submitted, assembled (EVM only), tron_activating and tron_approving (Tron first-time onboarding), pending, completed, failed, expired, cancelled.
"quoted"
What leaves the sender (decimal). In gross mode this equals amount; otherwise it equals recipient_amount + fee + partner_fee.
"10.72"
Whether the request amount was treated as the sender's total debit.
On-chain transaction hash, set once broadcast.