TaifoonTAIFOON
Proofs and chain reads

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.

shell
curl https://coord.taifoon.dev/v1/proof/tx/8453/0x0f7f432e5fb3e650618387cdfbe99e94c105675f7729cc85a9a61b6c678500ff

Read 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.

shell
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/latest

The 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.

OperationWhat it doesAuth
GET /v1/proof/tx/:chain/:txProof that one transaction is inside the root.none
GET /v1/proof/verifiable/:chainThe newest block of a chain that can be proven now.none
GET /v1/proof/blocks/:chainProof that one or more blocks (?blocks=a,b,c, up to 256) are inside the root.none
GET /v1/protocols/provenEvery protocol whose transitions are inside the root, and how current each source is.none
GET /v1/proof/log/:chain/:txProof 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/:keyProof 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/:protocolProof 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/:idOne 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/:hashOne 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/receiptOne 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/logsEvent 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/eventsAccount 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/txsAccount scan: the transactions that produced an event naming the address, over a block window, with direction and proofs.none
GET /v1/chain/:chain/scans/:idA 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/streamA 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/:protocolA 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/decodersThe protocols the producer decodes, the chain tiers, and the manifest a new one sends.none
POST /v1/protocols/registerRegister 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/pendingThe manifest approval queue: submitted, approved, rejected, deprecated.open read; writes keyed
POST /v1/protocols/:id/approveApprove a submitted manifest.open read; writes keyed
POST /v1/protocols/:id/rejectReject a submitted manifest with a reason.open read; writes keyed
GET /v1/chain/txUp to 25 transactions in one call: status, block, time, confirmations, fee and every known event decoded.none