Flash-blocks¶
Photon's default relaying tier — transactionType: "flash" — prices gas for prompt, reliable inclusion. Flash-blocks is a more aggressive tier for chains that produce flash-blocks: partial blocks built and confirmed faster than the chain's full block cadence. On those chains, setting transactionType: "flash-blocks" makes Photon relay with a gas strategy tuned to land your transaction in the earliest flash-block it can, trading a higher gas bid for lower confirmation latency.
The trade-off is cost: the aggressive bid typically raises costUSD on the resulting transaction record. Use it for latency-sensitive paths — trade execution, liquidations, interactive UX — and stay on the default flash tier everywhere else.
Availability¶
Flash-blocks is available on the Base family only:
| Chain | Chain ID |
|---|---|
| Base | 8453 |
| Base Sepolia | 84532 |
Submitting transactionType: "flash-blocks" for any other chain is rejected with HTTP 400, error code VALIDATION_003, and the message flash-blocks is only available on Base (8453) and Base Sepolia (84532).
Constraints¶
- No EIP-7702 authorizations. A flash-blocks transaction cannot carry an
authorizationList. Combining them is rejected with400/VALIDATION_004. If you need EIP-7702 authorizations, submit on the defaultflashtier. - Never batched. Flash-blocks transactions are always relayed individually;
shouldBatchInMulticallhas no effect on them. See Batch transactions.
{
"success": false,
"error": {
"code": "VALIDATION_004",
"message": "authorizationList is not allowed with transactionType \"flash-blocks\"",
"category": "VALIDATION",
"traceId": "b3f1c9e2a4d54f0e"
},
"timestamp": "2026-07-29T09:12:44.120Z"
}
Usage¶
Set transactionType on a normal submit request. Requests are authenticated with your api-key header — see Get API access.
const res = await fetch("https://photon.example.com/api/submit-tx", {
method: "POST",
headers: {
"Content-Type": "application/json",
"api-key": process.env.EDITH_API_KEY!,
},
body: JSON.stringify({
to: "0x3dbE34f2C21b3B2980d4dc53f3c7E51e39663F49",
callData: "0xa9059cbb...",
chainId: 8453,
transactionType: "flash-blocks",
label: "latency-critical fill",
}),
});
const body = await res.json();
A successful submission returns 201:
{
"success": true,
"data": {
"txId": "68fa3450539a3c9d28bbca33",
"estimatedCostUSD": 0.58
},
"timestamp": "2026-07-29T09:12:44.120Z"
}
Info
For the lowest end-to-end latency, pair flash-blocks with Submit and wait and returnOnTxHash: true so the call returns as soon as the transaction hash is known.
Next¶
- Submit a transaction — full request schema
- Error codes — every
VALIDATION_*code in one table - Supported networks — all chains Photon relays on