moonriver, with proofs.
JSON-RPC for moonriver through one gateway over 4 measured endpoints. Every answer carries a receipt; a proved read adds the block proof under the superroot.
Call it now
curl -s https://coord.taifoon.dev/gw/rpc/1285 -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'- HTTPS
- https://coord.taifoon.dev/gw/rpc/1285
- methods
- eth_blockNumber · eth_call · eth_getLogs · eth_getBlockBy* · eth_getTransaction* · eth_chainId · batch ≤ 20 · taifoon_getProof
- health
- healthy · 4 endpoints, 1 for logs read 2026-10-18 16:48 UTC
- measured
- best upstream 78 ms average, 96 ms p95, 99.9 % success · 4 active endpoints, archive available (the rotation's own probe, 2026-10-18 16:44 UTC) read 2026-10-18 16:48 UTC
Writes: transaction sends are being added through the streaming settle path; until then eth_sendRawTransaction is refused with a named reason. Limits and prices: below.
Quick MCP
Connect an agent to the layer in one line. The MCP server answers without a key; its taifoon_register tool issues one.
claude mcp add --transport http taifoon https://coord.taifoon.dev/mcpFirst call from any MCP client: tools/list, then taifoon_proof_tx with a chain and a transaction hash.
Stream what happens on moonriver
The producer follows this protocol on moonriver: layerzero_v2. Register a project scoped to the chain, then stream it or take its webhook.
curl -s -X POST https://coord.taifoon.dev/v1/projects -H "X-API-Key: $KEY" -H 'content-type: application/json' -d '{"id":"my-moonriver","name":"My moonriver watch","protocols":["layerzero_v2"],"filters":{"chains":[1285]}}'curl -N "https://coord.taifoon.dev/v1/pipe/stream?agents=my-moonriver&from_seq=0" -H "X-API-Key: $KEY"curl -s https://coord.taifoon.dev/v1/protocol/layerzero_v2/stuckProtocol contracts the producer knows on moonriver: Li.Fi / Jumper DepositSource 0x1231DEB6f5749EF6cE6943a275A1D3E7486F4EaE · LayerZero V2 DepositSource 0x1a44076050125825900e736c501f859c50fE728c · Synapse Bridge DepositSource 0x7e7a0e201fd38d3adaa9523da6c109a07118c96a · Synapse Bridge DepositSource 0xf07d1C752fAb503E47FEF309bf14fbDD3E867089 · Meson Finance DepositSource 0x25ab3efd52e6470681ce037cd546dc60726948d3 · Rango Exchange DepositSource 0x69460570c93f9DE5E2edbC3052bf10125f0Ca22d.
An event, as the lambda sees it
No order step on moonriver was in the boards at this read. read 2026-10-18 16:48 UTC
Checked under the superroot
A proved read on any request: send x-taifoon-proof: 1 with the call, or taifoon_getProof.
Free to start, metered after
| unit | free a day (key / visitor) | USDC per 1M | GRID per 1M |
|---|---|---|---|
| one JSON-RPC request (a batch of up to 20 calls is one request) | 1000 / 100 | 0.500000 | 25 |
| one request that returns a block proof (taifoon_getProof, or any request sent with x-taifoon-proof: 1) | 0 / 0 | 5.000000 | 250 |
One key and one balance for every product. Plans and top-ups: pricing. read 2026-10-18 16:48 UTC
Run moonriver with Taifoon
A chain or protocol team can claim the owner seat of its record: it then maintains its lanes and stage table, sets its pricing share, and the Conclave records the ownership and the share. Endpoint operators can add capacity to the rotation and earn per call.
curl -s https://coord.taifoon.dev/v1/owners/chain:1285Claim: POST https://coord.taifoon.dev/v1/owners/chain:1285/claim with your key and a signature from an address your contracts name. Partner cards · add capacity.