M·O·R·S·E
The public ledger
- What is this list?
- Every call Morse has ever made to the Telegraph network, newest first, including the operator's own testing. Nothing is separated out and nothing is manufactured.
- What does the routed column mean?
- Telegraph: Telegraph's own router picked the miner. Morse (named miner): you named the miner, so Morse dispatched to it directly. Morse (fallback): the router did not answer within 20 s and Morse routed the question itself. Older rows also read Morse (podium) and (2nd opinion) — two features retired on 4 September; the rows stay because history is not rewritten.
- Is my question public?
- Yes, clipped to 200 characters, with the answer excerpt. Who asked is stored only as a salted hash. Do not type anything private.
On-chain proof
- What does it prove?
- That the calls in the ledger happened and were paid: every settlement hash the ledger holds is matched against the payer wallet's USDC transfers on Base Sepolia, read from a public block explorer, not from Morse.
- What is a chain-only settlement?
- A payment the chain shows but the ledger does not: usually a call Morse recorded as timed out that the node settled anyway. They are listed, not hidden, and not counted as answered calls.
- Why does this matter?
- Because "people used it" is otherwise a claim. Here it is a number anyone can recompute from the chain.
API and MCP
- Do I need a wallet?
- No. Morse's own wallet pays the x402 fee for every call. Get a free key on this page; each key has a daily cap so the budget cannot be drained by one caller.
- How do I use it from Claude Code or Cursor?
- One command adds Morse as an MCP server:
claude mcp add --transport http morse https://telegraph-morse.vercel.app/mcp --header "Authorization: Bearer morse_YOURKEY". The tools cover asking the network, asking a named miner, running a recipe, and free discovery. - Can I call a specific miner?
- Yes: the
minerfield on REST,telegraph_ask_minerover MCP,/miner <slug> <question>in Telegram. The receipt says routing was bypassed at your request.
The source
- Is the code open?
- Yes: the whole app, its tests, and an honest limits ledger (GAPS.md) that names what is unverified or deliberately not built.
- Can I run my own Morse?
- Yes. It needs a burner wallet with testnet USDC and a Telegram bot token; the README and GO-LIVE.md walk through it. Never reuse a wallet that holds anything real.
Telegraph
- What is Telegraph?
- A marketplace where independently run APIs, called miners, answer questions; validators score and rank them per intent; and every answer is paid for per call over x402, about $0.01 in USDC.
- Is this real money?
- No. Everything here runs on the Base Sepolia testnet with faucet USDC. The mechanics are real; the money is not.
- Where does the $0.01 go?
- To the protocol's Diamond contract, and only when the miner actually answers. Failed calls are not charged, and every paid call gets a signal hash you can look up on the node.
Signal 0x3023f4bfdaee47561fd9155e62b5f255efe3aa8f6fb7fae03504f392ce3e6955
| Found on the node | yes — GET /engine/v1/signal/0x3023f4bfda… |
|---|---|
| Kind | direct_result |
| Miner | wx-canada id 33010 |
| Paid by | 0xfBB3C3bd51EC6E19BDECc786945d83719b6b4c9c = Morse's payer wallet |
| Node's own check | verified — the node confirms this hash commits to the payload below (keccak256 over payload) |
| Settlement tx | 0x01bbe143494471155cd9d07814ab788a1dd456de92a285b4631d4ddcca18034d |
| Recorded | 2026-09-16T19:33:37.868126Z |
| Morse's ledger row | 2026-09-16T19:33:20.315Z · web · ask · WEATHER_CHECK · wx-canada · $0.01 |
The node states the hash is keccak256 over the payload and reports it verified. Morse shows that attestation as the node returns it: eleven serialisations of the payload as served were tried and none reproduced the hash, so Morse does not claim to have re-derived it independently (GAPS G3). What Morse does establish on its own is the payer — the wallet above is checked against Morse's.
Payload the hash covers
{
"intent_id": "WEATHER_CHECK",
"miner_slug": "wx-canada",
"subnet_id": "33010",
"wallet_address": "0xfBB3C3bd51EC6E19BDECc786945d83719b6b4c9c",
"request": "What is the current weather in Chennai?",
"response": {
"features": [],
"links": [
{
"href": "https://api.weather.gc.ca/collections/citypageweather-realtime/items?f=json&limit=1&q=Chennai",
"rel": "self",
"title": "This document as GeoJSON",
"type": "application/geo+json"
},
{
"href": "https://api.weather.gc.ca/collections/citypageweather-realtime/items?f=jsonld&limit=1&q=Chennai",
"rel": "alternate",
"title": "This document as RDF (JSON-LD)",
"type": "application/ld+json"
},
{
"href": "https://api.weather.gc.ca/collections/citypageweather-realtime/items?f=html&limit=1&q=Chennai",
"rel": "alternate",
"title": "This document as HTML",
"type": "text/html"
},
{
"href": "https://api.weather.gc.ca/collections/citypageweather-realtime",
"rel": "collection",
"title": "City Page Weather [experimental]",
"type": "application/json"
}
],
"numberMatched": 0,
"numberReturned": 0,
"timeStamp": "2026-09-16T19:33:37.761090Z",
"type": "FeatureCollection"
},
"timestamp": "2026-09-16T19:33:37.859413243Z"
}