LEASHD is a public witness for AI agent wallets on Robinhood Chain. The owner declares a leash. LEASHD checks every transfer against it and stamps every slip where anyone can see it, for good.
A limit the agent can raise is a suggestion.
Most agent wallets keep the cap and the key that changes it within the agent's reach: an inbox, a browser session, the same machine. In October, researchers showed that most frontier models use that key as soon as a task gets blocked.
LEASHD works on the other half of the problem. It does not hold keys and it cannot stop a transaction. It makes every step past the line permanent and public, so owners, counterparties and other agents can see which agents keep their word.
Reputation built from declared limits and real transfers is hard to fake. A clean streak costs nothing to keep and a lot to lose.
Three moving parts, all read-only on your funds. The leash lives off-chain and signed; the evidence lives on-chain.
The owner signs a leash with their wallet. No gas, no custody. It sets a daily cap in USDG, a max single trade, the Stock Tokens the agent may touch, and the pools it may use.
A Cloudflare Worker reads the agent wallet's transfers on Robinhood Chain once a minute and prices each one against the deepest Uniswap V3 USDG pool for that token.
Anything outside the leash becomes a slip, timestamped and linked to its transaction. Slips are never edited or removed. Clean days add up to a public streak.
leash.json · signed by owner
// EIP-191 signature, no transaction
{
"agent": "0x7a3f…9c1e",
"owner": "0x51c0…a2d3",
"name": "MARLOWE",
"chain": 4663,
"daily_cap": { "asset": "USDG", "amount": "500.00" },
"max_trade": "150.00",
"allow": ["TSLA", "NVDA", "AAPL", "SPY"],
"venues": ["uniswap-v3/USDG"],
"payees": [],
"issued_at": "2026-11-02T06:20:00Z"
}
// effective 24h after LEASHD receives it
Every transfer today is inside the leash and under 85% of the daily cap.
Still inside the leash, but 85% or more of the cap is used. Owners get a heads-up.
A transfer broke the leash: over the cap, over the max trade, or an unlisted token, pool or recipient. The streak resets to zero.
A new leash takes effect 24 hours after LEASHD receives it. Loosening a cap right before a big trade still shows up.
Sorted by streak. Anyone can read it, owners and agents alike.
| Agent | Leash | Cap used today | Streak | Status |
|---|
Click an agent to see its leash history and every slip.
Your wallet signs a plain-text message. LEASHD checks the signature, publishes the leash, and starts judging transfers 24 hours later.
LEASHD never asks for a seed phrase, a private key, a transaction or a token approval. If a page does, it is not us.
What the record looks like when an agent runs past its cap. Sample event, shown in the format LEASHD publishes.
Inside the leash. Cap used 840.00 of 1,000.00.
84% of the cap used after a small rebalance. Owner notified.
Pushes the day to 1,240.00. Transaction 0x9e2c…41f8, block 8,214,077.
Reason: daily cap exceeded by 240.00 USDG. Streak reset from 33 days to 0. Record is now permanent.
Agents already pay each other over x402 and swap with each other's pools. LEASHD gives them one cheap question to ask first.
GET /v1/leash/{address}, plain JSON, cached 60s at the edge, free to read. Unknown addresses answer 404 with "status": "unleashed".check_leash(address) and list_slips(address) at https://leashd.xyz/mcp (Streamable HTTP, no auth)./badge/{address}.svgMCP client config
{
"mcpServers": {
"leashd": { "type": "http", "url": "https://leashd.xyz/mcp" }
}
}
Badge, Markdown

GET /v1/leash/0x7a3f…9c1e
curl https://leashd.xyz/v1/leash/0x7a3f…9c1e
// 200 OK · cache 60s
{
"agent": "MARLOWE",
"address": "0x7a3f…9c1e",
"status": "at_heel",
"streak_days": 41,
"cap_used": "412.18",
"cap": "500.00",
"max_trade": "150.00",
"slips_30d": 0,
"leash_hash": "0xc0a1…77e2",
"pending_leash": null,
"checked_at": "2026-11-03T06:20:00Z"
}
Everything runs on Cloudflare's free tier. No servers to babysit, no keys on any machine.
Serves the site, the API and the MCP endpoint from the edge.
Wakes the watcher every minute to read new transfers.
Stores leashes, slips and streaks. Slips are insert-only.
Caches the latest status per agent for fast reads.
Source of truth for every transfer and block number.
Prices each Stock Token transfer in dollars at the time it happened.
LEASHD never asks for a private key, a seed phrase or a token approval. Signing a leash moves no funds.
LEASHD is a witness. It records slips after they land. Pair it with a hard limit in your wallet.
LEASHD is independent. It watches self-custody wallets on Robinhood Chain, not Robinhood brokerage Agentic Accounts.
A clean streak says an agent kept its own rules. It says nothing about whether its trades were good.
The leash format, slip rules and this page. Feedback from builders shapes Phase 1.
Cron Worker reads transfers for a first group of agents and prices them against USDG pools.
Owners connect a wallet, sign a leash, and appear on the live board.
The read endpoint, the MCP tool and pixel badges go public.
Launching early, ahead of the 30-day record first planned. Fixed supply, no owner.
We first said $LEASHD would wait for 30 days of public watcher records. We changed that: it launches now. The watcher keeps running in public either way, and its record stays below for anyone to check.
Not deployed yet. The address will appear here, and only here.
1,000,000,000 $LEASHD on Robinhood Chain (4663), minted once to the deployer. No owner, no further minting, no fees, no pause. Source
Not without hiding transfers from the chain. LEASHD reads the agent wallet's history directly from Robinhood Chain, so the only way to look clean is to stay inside the leash. Moving funds through a second wallet is visible as a transfer out, and transfers to unlisted addresses count as slips.
Every leash edit waits 24 hours before it counts, and every version stays public. A cap that jumps from 500 to 50,000 the day before a large swap is easy to spot.
Stock Tokens with a Uniswap V3 USDG pool on Robinhood Chain, plus USDG itself. Each transfer is priced from the deepest pool at the block it landed in.
The owner chose to launch early. The original promise was 30 days of watcher records first; that changed, and we say so here instead of hiding it. The watcher's own record is public at /v1/gate.
Reading the kennel and the API is free. Signing a leash is a wallet signature, so there is no gas.
You should, where your wallet supports it. LEASHD covers what enforcement can't: a shared, public history that other people and other agents can check before they trust yours.