tokenizedblock
Plan swaps of Coinbase tokenized stocks and TokenizedBlock blocks on Base; your wallet signs.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"tokenizedblock": {
"url": "https://tokenizedblock.space/mcp"
}
}
}Remote endpoints
https://tokenizedblock.space/mcpstreamable-httpWhat it can do
Tool inventory
Tools (7)
🟢tblock_pairs
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.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢tblock_plan_birth(name, symbol, account, pair, salt)
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.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 32,
"description": "Block name (at most 32 bytes)."
},
"symbol": {
"type": "string",
"minLength": 1,
"maxLength": 32,
"description": "Ticker (at most 32 bytes); stored upper-case."
},
"account": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "The wallet that will sign; it receives the whole supply and becomes the creator."
},
"pair": {
"type": "string",
"pattern": "^(?:[eE][tT][hH]|0x[0-9a-fA-F]{40})$",
"description": "ETH (default) or the address of a currency from tblock_pairs."
},
"salt": {
"type": "string",
"maxLength": 64,
"description": "Optional free text that fixes the block address. Generated when absent; send it again to get the same plan."
}
},
"required": [
"name",
"symbol",
"account"
],
"additionalProperties": false
}🟢tblock_plan_swap(from, to, amount, account)
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.
Input Schema
{
"type": "object",
"properties": {
"from": {
"type": "string",
"pattern": "^(?:[eE][tT][hH]|0x[0-9a-fA-F]{40})$",
"description": "Token paid: ETH or an address."
},
"to": {
"type": "string",
"pattern": "^(?:[eE][tT][hH]|0x[0-9a-fA-F]{40})$",
"description": "Token received: ETH or an address."
},
"amount": {
"type": "string",
"pattern": "^[1-9][0-9]{0,40}$",
"description": "Raw integer units of the token paid."
},
"account": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "The wallet that will sign."
}
},
"required": [
"from",
"to",
"amount",
"account"
],
"additionalProperties": false
}🟢tblock_creator_minimum(block, pair, account)
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.
Input Schema
{
"type": "object",
"properties": {
"block": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "The block (token) address."
},
"pair": {
"type": "string",
"pattern": "^(?:[eE][tT][hH]|0x[0-9a-fA-F]{40})$",
"description": "The currency it was paired with at birth: ETH (default) or an address."
},
"account": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "Optional: the wallet that would sign the exit."
}
},
"required": [
"block"
],
"additionalProperties": false
}🟡tblock_panel_open(block)
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.
Input Schema
{
"type": "object",
"properties": {
"block": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "Optional: the block to show first."
}
},
"additionalProperties": false
}🟡tblock_command(session, type, from, to, token, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"session": {
"type": "string",
"pattern": "^[0-9a-f]{32}$",
"description": "The session returned by tblock_panel_open."
},
"type": {
"type": "string",
"pattern": "^(select|show|trade|swap|send|task|birth|say)$",
"description": "select | show | trade | swap | send | task | birth | say"
},
"from": {
"type": "string",
"pattern": "^(?:[eE][tT][hH]|0x[0-9a-fA-F]{40})$",
"description": "For swap: the token paid (ETH or an address)."
},
"to": {
"type": "string",
"pattern": "^(?:[eE][tT][hH]|0x[0-9a-fA-F]{40})$",
"description": "For swap: the token received (ETH or an address)."
},
"token": {
"type": "string",
"pattern": "^(?:[eE][tT][hH]|0x[0-9a-fA-F]{40})$",
"description": "For send: the token sent (ETH or an address)."
},
"recipient": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "For send: the whole address that receives. Never abbreviated."
},
"block": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "For select, trade, task: the block address."
},
"tab": {
"type": "string",
"pattern": "^(market|trade|brain|chat)$",
"description": "For show."
},
"side": {
"type": "string",
"pattern": "^(buy|sell)$",
"description": "For trade."
},
"amount": {
"type": "string",
"pattern": "^[1-9][0-9]{0,40}$",
"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`)."
},
"with": {
"type": "string",
"pattern": "^(?:[eE][tT][hH]|0x[0-9a-fA-F]{40})$",
"description": "For trade: the token paid (buy) or received (sell); default: the block’s own quote token."
},
"task": {
"type": "string",
"maxLength": 40,
"description": "For task: the brain task id."
},
"name": {
"type": "string",
"maxLength": 32,
"description": "For birth."
},
"symbol": {
"type": "string",
"maxLength": 32,
"description": "For birth."
},
"pair": {
"type": "string",
"pattern": "^(?:[eE][tT][hH]|0x[0-9a-fA-F]{40})$",
"description": "For birth: ETH (default) or a currency from tblock_pairs."
},
"text": {
"type": "string",
"maxLength": 500,
"description": "For say."
}
},
"required": [
"session",
"type"
],
"additionalProperties": false
}🟢tblock_panel_state(session, since)
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.
Input Schema
{
"type": "object",
"properties": {
"session": {
"type": "string",
"pattern": "^[0-9a-f]{32}$",
"description": "The session returned by tblock_panel_open."
},
"since": {
"type": "string",
"pattern": "^[0-9]{1,9}$",
"description": "Optional: only events after this event number."
}
},
"required": [
"session"
],
"additionalProperties": false
}Community
Evidence