Relay a signed payment
Submit a signed Soroban SorobanAuthorizationEntry (base64 XDR) to the facilitator. The facilitator wraps it in a fee-bump transaction, submits it to Stellar, and returns a Receipt.
In gas-in-token mode, set feeToken and ensure authorizationEntryXdr encodes the FeeForwarder.forward() invocation (a single host-function op that includes the actual transfer as a sub-invocation). No separate fee auth entry is needed.
The API key is injected server-side by the BFF; the browser never sends this header directly.
Authorizations
Server-held API key. Injected by the BFF (createRelayRoute / createSignerProxyRoute from @buckspay/nextjs). This key must only appear in server-side code and must never be shipped to a browser bundle.
Body
Signed relay request. Mirrors the SDK RelayPayload type from @buckspay/core.
USDC SAC contract address (C-address). The asset being transferred.
^C[A-Z2-7]{55}$Payer address - either a classic G-address or a smart-contract C-address.
^[GC][A-Z2-7]{55}$Recipient G-address.
^G[A-Z2-7]{55}$Transfer amount in USDC stroops (7 decimal places).
^\d+$Signed SorobanAuthorizationEntry as base64 XDR. In gas-in-token mode this is the FeeForwarder.forward() entry; in sponsored mode it is the USDC transfer entry.
1^[A-Za-z0-9+/]+=*$Authorization nonce as a decimal string. Must match the nonce used when building the unsigned entry.
^\d+$Ledger sequence number after which the authorization entry is invalid. Must be in the future when the facilitator processes the request.
x >= 1Optional. Present only in gas-in-token mode. Names the token used to pay the gas fee. When set, authorizationEntryXdr encodes the FeeForwarder.forward() invocation (not a bare transfer).
^C[A-Z2-7]{55}$Optional. Marks the relay as a session management operation (install grants a new session key; revoke removes one). The facilitator relays it as a self-administered contract call on the policy account. Absent for ordinary USDC transfers.
install, revoke Response
Payment relayed successfully.
Relay receipt returned by POST /relay. Mirrors the SDK Receipt type from @buckspay/core. The SDK adapter maps the facilitator's blockNumber field to ledger.
Always true on a 200 response.
Relay strategy identifier (e.g. buckspay_self).
Contract address of the transferred token.
Chain on which the transaction was submitted.
stellar-testnet, stellar-pubnet, avalanche, celo, polygon, base, avalanche-fuji, polygon-amoy, base-sepolia, celo-sepolia Transaction hash or identifier of the submitted transaction.
1Human-readable status string from the facilitator (e.g. SUCCESS).
Ledger sequence number at which the transaction was included. Absent if the facilitator did not return a ledger (omitted, not null).
x >= 0
