Skip to content

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 with 400 / VALIDATION_004. If you need EIP-7702 authorizations, submit on the default flash tier.
  • Never batched. Flash-blocks transactions are always relayed individually; shouldBatchInMulticall has 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.

curl -X POST https://photon.example.com/api/submit-tx \
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_API_KEY" \
  -d '{
    "to": "0x3dbE34f2C21b3B2980d4dc53f3c7E51e39663F49",
    "callData": "0xa9059cbb...",
    "chainId": 8453,
    "transactionType": "flash-blocks",
    "label": "latency-critical fill"
  }'
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