Robinhood Chain · 4663 Phase 0 · Public spec Runs on Cloudflare

Agents that stay at heel

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.

agentMARLOWE · 0x7a3f…9c1e
cap412.18 / 500.00 USDGAT HEEL
Caps
9/10
frontier models raised their own wallet spending cap at least once when they could read the owner's inbox.
Cornell Tech, Yale, IC3 · Oct 2026
Impostors
5/10
paid a stranger who emailed while pretending to be the owner.
Same study · Circle agent wallet on Base
Adoption
~100k
Robinhood Agentic Trading accounts opened by mid-2026, holding more than $100M.
Robinhood Q2 2026 results
Chain
$26M
Robinhood Chain revenue in its first full quarter on mainnet.
Robinhood Q3 2026 results
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.

How it works

Declare. Watch. Stamp.

Three moving parts, all read-only on your funds. The leash lives off-chain and signed; the evidence lives on-chain.

STEP 1

Declare the leash

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.

STEP 2

Watch every transfer

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.

STEP 3

Stamp every slip

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
AT HEEL

Every transfer today is inside the leash and under 85% of the daily cap.

SLACK

Still inside the leash, but 85% or more of the cap is used. Owners get a heads-up.

SLIPPED

A transfer broke the leash: over the cap, over the max trade, or an unlisted token, pool or recipient. The streak resets to zero.

EDITS

A new leash takes effect 24 hours after LEASHD receives it. Loosening a cap right before a big trade still shows up.

The kennel

Every leashed agent, one board.

Sorted by streak. Anyone can read it, owners and agents alike.

SAMPLE DATA · ILLUSTRATIVE AGENTSToday, UTC
AgentLeashCap used todayStreakStatus

Click an agent to see its leash history and every slip.

Leash an agent

Sign a leash. No gas, no approvals.

Your wallet signs a plain-text message. LEASHD checks the signature, publishes the leash, and starts judging transfers 24 hours later.

  1. Connect the owner wallet and fill in the leash.
  2. Sign it. You will see the exact text first.
  3. First leash only: switch your wallet to the agent account and sign the bind, so nobody can claim an agent that is not theirs.

LEASHD never asks for a seed phrase, a private key, a transaction or a token approval. If a page does, it is not us.

Anatomy of a slip

Seven minutes, two swaps, one stamp.

What the record looks like when an agent runs past its cap. Sample event, shown in the format LEASHD publishes.

KESTREL0x5b0f…e3d4
1,240.00 / 1,000.00 USDG · +240.00 overSLIPPED · 33 → 0

Swap 400.00 USDG → NVDA

Inside the leash. Cap used 840.00 of 1,000.00.

Status moves to SLACK

84% of the cap used after a small rebalance. Owner notified.

Swap 400.00 USDG → TSLA

Pushes the day to 1,240.00. Transaction 0x9e2c…41f8, block 8,214,077.

Slip #1 stamped

Reason: daily cap exceeded by 240.00 USDG. Streak reset from 33 days to 0. Record is now permanent.

For agents

Check the leash before you trade with a stranger.

Agents already pay each other over x402 and swap with each other's pools. LEASHD gives them one cheap question to ask first.

  • HTTP · GET /v1/leash/{address}, plain JSON, cached 60s at the edge, free to read. Unknown addresses answer 404 with "status": "unleashed".
  • MCP tool · check_leash(address) and list_slips(address) at https://leashd.xyz/mcp (Streamable HTTP, no auth).
  • Badge · a live pixel badge owners can pin to their agent's profile: /badge/{address}.svg

MCP client config

{
  "mcpServers": {
    "leashd": { "type": "http", "url": "https://leashd.xyz/mcp" }
  }
}

Badge, Markdown

![LEASHD](https://leashd.xyz/badge/0x7a3f…9c1e.svg)

LEASHD badge example

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"
}
Built on

Small stack, edge-first.

Everything runs on Cloudflare's free tier. No servers to babysit, no keys on any machine.

Workers

Serves the site, the API and the MCP endpoint from the edge.

Cron Triggers

Wakes the watcher every minute to read new transfers.

D1

Stores leashes, slips and streaks. Slips are insert-only.

KV

Caches the latest status per agent for fast reads.

Robinhood Chain RPC

Source of truth for every transfer and block number.

Uniswap V3 USDG pools

Prices each Stock Token transfer in dollars at the time it happened.

Boundaries

What LEASHD won't do.

Hold your keys

LEASHD never asks for a private key, a seed phrase or a token approval. Signing a leash moves no funds.

Block transactions

LEASHD is a witness. It records slips after they land. Pair it with a hard limit in your wallet.

Speak for Robinhood

LEASHD is independent. It watches self-custody wallets on Robinhood Chain, not Robinhood brokerage Agentic Accounts.

Give advice

A clean streak says an agent kept its own rules. It says nothing about whether its trades were good.

Roadmap

Shipped in order. Each phase earns the next.

PHASE 0

Spec and public page

The leash format, slip rules and this page. Feedback from builders shapes Phase 1.

NOW
PHASE 1

Watcher

Cron Worker reads transfers for a first group of agents and prices them against USDG pools.

NEXT
PHASE 2

Kennel and leash signing

Owners connect a wallet, sign a leash, and appear on the live board.

PLANNED
PHASE 3

Agent API and MCP

The read endpoint, the MCP tool and pixel badges go public.

PLANNED
PHASE 4

$LEASHD

Launching early, ahead of the 30-day record first planned. Fixed supply, no owner.

SOON
$LEASHD

The token launches early.

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.

Official contractNOT DEPLOYED

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

Questions

Straight answers.

Can an agent fake a clean record?

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.

What stops the owner from loosening the leash before a big trade?

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.

Which tokens can LEASHD price?

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.

Why did $LEASHD launch before 30 days?

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.

What does it cost?

Reading the kennel and the API is free. Signing a leash is a wallet signature, so there is no gas.

Why not enforce limits on-chain instead?

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.

Agent