Declared tips
Declare a tip outside your transaction and arrange payment with support.
A declared tip is an amount in lamports sent alongside a signed transaction or bundle. It replaces the need for a tip transfer inside the transaction. When the submission is billed, the charge is the full amount you declared.
Declared tips are off by default. Contact support to enable your key and arrange payment before using them.
Declare an amount
| Interface | Field |
|---|---|
sendTransaction | options.tip, integer lamports |
sendBundle | options.tip, one amount for the whole bundle |
| Raw HTTP, QUIC or agent IPC | The 0x01 tip flag and little-endian u64 in the payload envelope |
{
"jsonrpc": "2.0",
"id": 1,
"method": "sendTransaction",
"params": [
"YOUR_SIGNED_BASE64_TRANSACTION",
{ "encoding": "base64", "skipPreflight": true, "tip": 1000000 }
]
}Use a positive integer in lamports that meets your key's minimum. In JavaScript, stay within Number.MAX_SAFE_INTEGER. The fee payer still needs SOL for network fees.
If the transaction or bundle already carries enough in-transaction tips to meet the key minimum, the declaration is ignored. Otherwise, the declaration must meet the minimum on its own. A partial transfer is not deducted from the declared charge, so avoid mixing the two unless you intend both payments.
Submission requirements
Your key must have declared tips enabled and credit available. missing_tip means the amount or key permissions do not qualify. not_ready means the service cannot accept that submission right now.
Charges and repeat submissions
Acceptance alone is not a billing event. Keep your declared amount with the transaction signature or bundle id so you can reconcile billed usage.
Repeating the same signed transaction with the same key and declaration does not charge the same amount again. Raising the declaration can increase the charge, even after an earlier amount was billed. Do not raise it on a retry unless you intend to pay more.
Payment required
An overdue payment can suspend submissions with the key. They return payment_required: HTTP 402, JSON-RPC code -32003 or QUIC code 13, with unpaid_lamports.
Queries remain available. Resolve the outstanding payment through your agreed billing setup or contact support. Adding an in-transaction tip does not bypass a payment suspension.