← The evidence ledger
Evidence row 266682
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint c72b9849-8f86-49dc-b3c8-2dc14cac4224
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 4917fdc555f5e879f2b490ae75bb11e84b6c7341c46ca6b64ee5090a0c5a3e47
- Leaf
- 0x6a7d31c9f65de7bdf6fcb63892c09f940be139db094172dde093b9bf07ef1a8a
What was observed
{
"count": 12,
"tools": [
{
"description": "Proposes one command to an open control panel. type = select (show a block), show (switch tab: market, trade, brain, chat), trade (side buy|sell, block, amount in raw units, optional `with` token), swap (from, to, amount in raw units of `from` — e.g. USDC to a Coinbase tokenized stock), send (token, amount in raw units, recipient: a transfer the user must confirm twice), task (a brain task: trade_tblock, launch_wake, feed_trusted, record_memory, offer_food, export_snapshot, read_agent_catalog, decision_receipts), birth (name, symbol, optional pair) or say (a short text shown in the chat). Nothing is signed by this call: the panel shows the proposal with buttons, and the user decides. One command per second.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"amount": {
"description": "For trade, swap, send: raw integer units (trade: of the token paid for a buy, of the block for a sell; swap: of `from`; send: of `token`).",
"pattern": "^[1-9][0-9]{0,40}$",
"type": "string"
},
"block": {
"description": "For select, trade, task: the block address.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"from": {
"description": "For swap: the token paid (ETH or an address).",
"pattern": "^(?:[eE][tT][hH]|0x[0-9a-fA-F]{40})$",
"type": "string"
},
"name": {
"description": "For birth.",
"maxLength": 32,
"type": "string"
},
"pair": {
"description": "For birth: ETH (default) or a currency from tblock_pairs.",
"pattern": "^(?:[eE][tT][hH]|0x[0-9a-fA-F]{40})$",
"type": "string"
},
"recipient": {
"description": "For send: the whole address that receives. Never abbreviated.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"session": {
"description": "The session returned by tblock_panel_open.",
"pattern": "^[0-9a-f]{32}$",
"type": "string"
},
"side": {
"description": "For trade.",
"pattern": "^(buy|sell)$",
"type": "string"
},
"symbol": {
"description": "For birth.",
"maxLength": 32,
"type": "string"
},
"tab": {
"description": "For show.",
"pattern": "^(market|trade|brain|chat)$",
"type": "string"
},
"task": {
"description": "For task: the brain task id.",
"maxLength": 40,
"type": "string"
},
"text": {
"description": "For say.",
"maxLength": 500,
"type": "string"
},
"to": {
"description": "For swap: the token received (ETH or an address).",
"pattern": "^(?:[eE][tT][hH]|0x[0-9a-fA-F]{40})$",
"type": "string"
},
"token": {
"description": "For send: the token sent (ETH or an address).",
"pattern": "^(?:[eE][tT][hH]|0x[0-9a-fA-F]{40})$",
"type": "string"
},
"type": {
"description": "select | show | trade | swap | send | task | birth | say",
"pattern": "^(select|show|trade|swap|send|task|birth|say)$",
"type": "string"
},
"with": {
"description": "For trade: the token paid (buy) or received (sell); default: the block’s own quote token.",
"pattern": "^(?:[eE][tT][hH]|0x[0-9a-fA-F]{40})$",
"type": "string"
}
},
"required": [
"session",
"type"
],
"type": "object"
},
"name": "tblock_command"
},
{
"description": "Reads the creator minimum deposited for a block’s market (who deposited, how much, whether the 0.03% creator share is flowing) and, when `account` is that creator, returns the unsigned call for the next exit step: a request (the share stops at once), then, 7 days later, the withdrawal.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"account": {
"description": "Optional: the wallet that would sign the exit.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"block": {
"description": "The block (token) address.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"pair": {
"description": "The currency it was paired with at birth: ETH (default) or an address.",
"pattern": "^(?:[eE][tT][hH]|0x[0-9a-fA-F]{40})$",
"type": "string"
}
},
"required": [
"block"
],
"type": "object"
},
"name": "tblock_creator_minimum"
},
{
"description": "Reads the Game tab as the server serves it (GET /api/tirage): today's tickets and closing time (today's ticket = 1 entry in this week's reward pot; the pot is shared by entries after the week closes, UTC), this week's entries and its TicketPot pot as read by the server (null if not read), the live preview face (the face the latest Base block would draw), the BlockRolls contract when one is served (prices, prizes, pot) or null (practice: free rolls, nothing to sign), and the recent off-chain practice rolls (GET /api/jeu/rolls). With `wallet`: that wallet's ticket (held or not, verified volume, skin pass), its ticket face as the 5-trait guess tblock_plan_roll uses by default, and its entries in this week's pot (the month count is a tally only). Read-only.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"wallet": {
"description": "Optional: the wallet whose ticket and progress to read.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
}
},
"type": "object"
},
"name": "tblock_game_state"
},
{
"description": "Reads the Block Missions board as the server serves it (GET /api/missions): the contract and each mission (id, reward token and amount, done/maxDone, holding, state). REFUSED with tableau = PAS_OUVERT while the board's contract is not deployed. Read-only, no input.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "tblock_missions"
},
{
"description": "Lists the currencies a new block can be paired with at birth on TokenizedBlock (ETH, USDC, cbBTC, OUSD and Coinbase tokenized stocks), with the creator minimum floor of each, and in `echanges` the currency swaps tblock_plan_swap builds (both ways). Read-only, no input.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "tblock_pairs"
},
{
"description": "Opens a remote-control session and returns the link of the TokenizedBlock control panel: a visual dashboard (the block in the centre; Market, Trade, Brain and Chat tabs) for the user to open in their browser with their wallet. Give the link to the user. Then send commands with tblock_command and read what happened with tblock_panel_state. Commands are proposals: the block’s brain accepts or refuses each task, and only the user’s wallet signs.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"block": {
"description": "Optional: the block to show first.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
}
},
"type": "object"
},
"name": "tblock_panel_open"
},
{
"description": "Reads the control panel, which is wired to the block’s brain: `cerveau` is the brain as the panel sees it (block, mood, beat, market read, and the tasks it accepts or refuses right now), and `evenements` are the events since `since` — the brain’s verdict on each command, plans built, and what the user signed (transaction hash) or declined.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"session": {
"description": "The session returned by tblock_panel_open.",
"pattern": "^[0-9a-f]{32}$",
"type": "string"
},
"since": {
"description": "Optional: only events after this event number.",
"pattern": "^[0-9]{1,9}$",
"type": "string"
}
},
"required": [
"session"
],
"type": "object"
},
"name": "tblock_panel_state"
},
{
"description": "Returns the unsigned calls that create a block (a B20 token with an engraved face and a brain) AND open its market, paired with ETH or with one of the currencies from tblock_pairs: createPaid, approvals, registration, market opening — to be signed in order by `account`. Fee: 0.001 ETH. The response lists every cost (`cout`), the block address, and the result of simulating the whole sequence from that wallet. For a non-ETH pair the wallet must already hold the creator minimum in that currency.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"account": {
"description": "The wallet that will sign; it receives the whole supply and becomes the creator.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"name": {
"description": "Block name (at most 32 bytes).",
"maxLength": 32,
"minLength": 1,
"type": "string"
},
"pair": {
"description": "ETH (default) or the address of a currency from tblock_pairs.",
"pattern": "^(?:[eE][tT][hH]|0x[0-9a-fA-F]{40})$",
"type": "string"
},
"salt": {
"description": "Optional free text that fixes the block address. Generated when absent; send it again to get the same plan.",
"maxLength": 64,
"type": "string"
},
"symbol": {
"description": "Ticker (at most 32 bytes); stored upper-case.",
"maxLength": 32,
"minLength": 1,
"type": "string"
}
},
"required": [
"name",
"symbol",
"account"
],
"type": "object"
},
"name": "tblock_plan_birth"
},
{
"description": "Returns the unsigned calls for `rolls` (1 to 10, default 1) BlockRolls rolls on one guess, for ONE wallet_sendCalls batch signed by `wallet`: one approve of EXACTLY rolls x 0.50 USDC, then one roll(guess) per roll — or, when that wallet holds an active day pass on the contract, rollWithPass x rolls with no payment. The block 2 blocks after the roll decides; the roll is scored against the guess (traits in common out of 5). The prizes and the minimum winning score are read live from the BlockRolls contract (tblock_game_state rolls.prizes / rolls.minScore, null when not read) and can be changed by the UNIT creator, for rolls made after the change; a prize never pays more than the roll pot holds. `guess` defaults to the face of the wallet's ticket of the day (SHA-256(wallet|day), the same face the Game tab shows). REFUSED with the state when no contract is served (practice mode, 0 USDC): then nothing is to be signed.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"guess": {
"description": "Optional: 5 traits \"colorBand,orbit,facet,material,ornament\" (0..5, 0..9, 0..18, 0..8, 0..7). Default: the wallet's ticket face.",
"pattern": "^[0-9]{1,2}(,[0-9]{1,2}){4}$",
"type": "string"
},
"rolls": {
"description": "Optional: how many rolls in the batch, 1 to 10 (default 1).",
"pattern": "^(10|[1-9])$",
"type": "string"
},
"wallet": {
"description": "The wallet that will sign and play.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
}
},
"required": [
"wallet"
],
"type": "object"
},
"name": "tblock_plan_roll"
},
{
"description": "Reads settleableUntil(id) for each roll and the head block, says the state of each (TROP_TOT: wait `blocsAvant` blocks; REGLABLE; PERDU: the 256-block window passed; PAS_EN_ATTENTE: already settled or expired), and returns one unsigned settleMany call for the settleable ones. Anyone may send it: the prize always goes to the player. REFUSED when no contract is served.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"rollIds": {
"description": "The roll numbers (from the Rolled events), comma-separated, 1 to 50.",
"pattern": "^[0-9]{1,20}(,[0-9]{1,20}){0,49}$",
"type": "string"
}
},
"required": [
"rollIds"
],
"type": "object"
},
"name": "tblock_plan_settle"
},
{
"description": "Returns the unsigned calls for a swap routed by TokenizedBlock: a block against its quote token, block to block, block to a tokenized stock, or ETH/USDC to a Coinbase tokenized stock and back, ETH to USDC and back, and OUSD to USDC and back (OUSD trades against USDC only: ETH <-> OUSD is refused, swap through USDC in two trades). `amount` is in raw units of the token paid. APPROBATIONS means: sign the approvals, then ask again.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"account": {
"description": "The wallet that will sign.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"amount": {
"description": "Raw integer units of the token paid.",
"pattern": "^[1-9][0-9]{0,40}$",
"type": "string"
},
"from": {
"description": "Token paid: ETH or an address.",
"pattern": "^(?:[eE][tT][hH]|0x[0-9a-fA-F]{40})$",
"type": "string"
},
"to": {
"description": "Token received: ETH or an address.",
"pattern": "^(?:[eE][tT][hH]|0x[0-9a-fA-F]{40})$",
"type": "string"
}
},
"required": [
"from",
"to",
"amount",
"account"
],
"type": "object"
},
"name": "tblock_plan_swap"
},
{
"description": "Returns the unsigned calls that post a mission on the Block Missions board for a block: approve EXACTLY reward x maxDone (raw units of the block), then postTask. The task is \"trade my block on its TokenizedBlock pool\" (a v4 Swap on the block's pool on our hook, the only pool a mission may name), held `hold` raw units for 24 h, open 7 days, one completion per wallet. The block creator's wallet signs. REFUSED while the board's contract is not deployed, or when the block has no pool on a TokenizedBlock hook.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"block": {
"description": "The block (B20 token) the mission is about; its units pay the reward.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"hold": {
"description": "Minimum holding of the block during the 24 h window, raw units.",
"pattern": "^[1-9][0-9]{0,40}$",
"type": "string"
},
"maxDone": {
"description": "How many players can complete it, 1 to 10000.",
"pattern": "^[1-9][0-9]{0,4}$",
"type": "string"
},
"reward": {
"description": "Reward per player, raw units of the block (18 decimals).",
"pattern": "^[1-9][0-9]{0,40}$",
"type": "string"
}
},
"required": [
"block",
"reward",
"maxDone",
"hold"
],
"type": "object"
},
"name": "tblock_plan_task"
}
]
}What the leaf hashes
{"body":"4917fdc555f5e879f2b490ae75bb11e84b6c7341c46ca6b64ee5090a0c5a3e47","id":266682,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793035486041009,"prev":null,"subject":"c72b9849-8f86-49dc-b3c8-2dc14cac4224","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0x6a7d1adaa44ef629a4cbaf7f8e34d4b52efe081aa996978336ba607c19771e79
- 0xdb7fd8bfae8b554a3b480512ea410372f069c01c5e6e298bf9b25c064b6d751c
- 0xfe019289dbfc88a6abf896fa0431839763c874efe0da4bb090e6f6c5f1ae2aa5
- 0xcea321822c74d142b6eb52c04c42c143994b5b58e3600cf60e4114f2270b833a
- 0x375ccb0489271c2fbbb4906bb1f9bc995b5d0fe775736780da09273b46e0417c
- 0x8521c102d22b6b40cff866f0b44e7ce13bbc1e978ce29fecfd4f6d645049ec61
- 0xd61c8653ad05a4faa9520a2a0c637491d97dde4b7aacb2d7e0eabcc4173a30af
- 0xa26d494940a83126f4d0923dfcce4dfdd2985c20a04f5d88adfe3b16b8b7e89b
- 0x94353966c37a5795911a89eea8aa7f08f6ff47b5cc6a32c983d7de5ec3fbc409
- 0xe7b1e9b6e0632459ce00b9d99b12899217985da48e7664af35727b006f0cc602
- 0x435232f3fd6b83e88220d17343494fe854d4ecf8a9148117c288f679edde404b
- 0x2a304c51963b65e3ca818b638b2e9a98297b7d6b6a3e14ecca2501aa13b9f556
- 0x9dc4d6f64bc3c323d2c45a28209068cd473b6979bd632a0d694bf94d19bc39df
- 0xfc9b5a81a7a83a1c735a4fe64590beb9db14d2366f463161358af28c3ea9a81d
- 0xa2d436d488e3600b0e5c3e3ed9c9234cd52853c59830b786334fd0c4292d9f40
- 0x47b89901b0f07938a6b9a66ddf35683903f79d756a7c7763665fd632758b08d0
- 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
- 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae