API · 2 of 5
Proofs and chain reads
Prove a transaction, a log, an order or a protocol transition against the root, and read blocks, transactions, receipts and logs with the proof that ties each answer to it.
THE COORDINATION LAYER · one namespace at https://coord.taifoon.dev/v1 · 22 operations on this page · machine-readable at /v1/openapi.json (see Reference)
Try it
Prove a Base transaction. The first ask builds the proof and can take about 10 seconds; later asks for the same transaction are quick.
curl https://coord.taifoon.dev/v1/proof/tx/8453/0x0f7f432e5fb3e650618387cdfbe99e94c105675f7729cc85a9a61b6c678500ffRead the same transaction, its receipt and the latest block. Each answer says where it came from (indexed or fetched) and whether the block is final.
curl https://coord.taifoon.dev/v1/chain/8453/tx/0x0f7f432e5fb3e650618387cdfbe99e94c105675f7729cc85a9a61b6c678500ff
curl https://coord.taifoon.dev/v1/chain/8453/tx/0x0f7f432e5fb3e650618387cdfbe99e94c105675f7729cc85a9a61b6c678500ff/receipt
curl https://coord.taifoon.dev/v1/chain/8453/block/latestThe guide Prove a transaction walks through the proof, level by level, and how to check it yourself.
Every operation (22)
Each row is generated from the table that routes /v1. The answer of each operation, field by field, is in the OpenAPI document; see Reference.
| Operation | What it does | Auth |
|---|---|---|
GET /v1/proof/tx/:chain/:tx | Proof that one transaction is inside the root. | none |
GET /v1/proof/verifiable/:chain | The newest block of a chain that can be proven now. | none |
GET /v1/proof/blocks/:chain | Proof that one or more blocks (?blocks=a,b,c, up to 256) are inside the root. | none |
GET /v1/protocols/proven | Every protocol whose transitions are inside the root, and how current each source is. | none |
GET /v1/proof/log/:chain/:tx | Proof that one event log (?log_index=, as eth_getLogs reports it) is inside the root, ready for an on-chain verifier. | none |
GET /v1/proof/order/:protocol/:key | Proof of one order’s whole lifecycle (key like erc8183:8453:81401): every transition and its current state, inside the root. | none |
GET /v1/proof/transition/:protocol | Proof that given transitions (?seqs=0,1,2, up to 256) of a protocol are inside the root, in order. | none |
GET /v1/chain/:chain/block/:id | One block, like eth_getBlockByNumber / ByHash, with its proof: {id} = latest (the newest block in the chain’s tree) | finalized (the tip the superroot leaf names) | a number | a block hash. | none |
GET /v1/chain/:chain/tx/:hash | One transaction, like eth_getTransactionByHash with its outcome, every event decoded, and the proof that its block is in the superroot. | none |
GET /v1/chain/:chain/tx/:hash/receipt | One receipt, like eth_getTransactionReceipt: every log raw and decoded, each with its own inclusion proof link, and the block proof. | none |
GET /v1/chain/:chain/logs | Event logs, like eth_getLogs, paged: the held headers’ blooms pick the blocks that may match and only those are read; a window over 10,000 blocks is a scan job (202). | none |
GET /v1/chain/:chain/address/:addr/events | Account scan: every event the address emitted or is named in (as an indexed topic) over a block window, decoded, with proofs; the held headers’ blooms pick the blocks. | none |
GET /v1/chain/:chain/address/:addr/txs | Account scan: the transactions that produced an event naming the address, over a block window, with direction and proofs. | none |
GET /v1/chain/:chain/scans/:id | A scan job (a logs or account window over 10,000 blocks): each read advances it one step and returns its progress and the rows so far. | none |
GET /v1/chain/:chain/scans/:id/stream | A scan job as server-sent events: progress after each step, then done (or paused when the connection’s minute is up). | none |
GET /v1/transitions/:protocol | A protocol’s state transitions from the protocol trees (no chain is read): one order’s lifecycle (?key=) or a page of the history by sequence, with both proof steps recomputed. | none |
GET /v1/protocols/decoders | The protocols the producer decodes, the chain tiers, and the manifest a new one sends. | none |
POST /v1/protocols/register | Register a protocol’s contracts and events for decoding; a v2 manifest adds the Lambda definition (key, states, transitions, actions, finality, author). | key optional |
GET /v1/protocols/pending | The manifest approval queue: submitted, approved, rejected, deprecated. | open read; writes keyed |
POST /v1/protocols/:id/approve | Approve a submitted manifest. | open read; writes keyed |
POST /v1/protocols/:id/reject | Reject a submitted manifest with a reason. | open read; writes keyed |
GET /v1/chain/tx | Up to 25 transactions in one call: status, block, time, confirmations, fee and every known event decoded. | none |
