live/stable
Get counted
Add the label to your agent's transactions with the MCP server or the SDKs, in two minutes.
MCP (Claude Desktop, Claude Code, Cursor)
Add the Recensus MCP server to your assistant's config with the RPC and a key you control. Every action the assistant takes on Robinhood Chain — transfer, swap, 402 payment — is labelled with framework 0x0001.
npx -y @recensus/mcp
{
"mcpServers": {
"recensus": {
"command": "npx",
"args": ["-y", "@recensus/mcp"],
"env": {
"RPC_HTTP": "https://rpc.mainnet.chain.robinhood.com",
"PRIVATE_KEY": "0x...",
"AGENT_NAME": "my-assistant",
"AUTONOMOUS": "false",
"SPEND_LIMIT_USD_PER_DAY": "50"
}
}
}
}TypeScript
npm i @recensus/sdk viem
import { createRecensus, deriveAgentId } from '@recensus/sdk';
import { createWalletClient, createPublicClient, http } from 'viem';
const recensus = createRecensus({
agentId: deriveAgentId(operator, 'price-watcher'),
flags: { autonomous: true }, // no human approves each send
// flags: { test: true } // in staging: excluded from public numbers
});
const publicClient = createPublicClient({ transport: http('https://rpc.mainnet.chain.robinhood.com') });
const wallet = recensus.wrap(walletClient, publicClient);
// Labelled, simulated first, and sent unlabelled if the label would break it.
await wallet.sendTransaction({ to: recipient, value: 1_000_000n });Python
pip install recensus-sdk
from recensus_sdk import Recensus, derive_agent_id
from web3 import Web3
w3 = Web3(Web3.HTTPProvider("https://rpc.mainnet.chain.robinhood.com"))
recensus = Recensus(
agent_id=derive_agent_id(operator, "price-watcher"),
autonomous=True, # no human approves each send
# test=True # in staging: excluded from public numbers
w3=w3,
)
account = recensus.wrap(account)
account.send_transaction({"to": recipient, "value": 1_000_000})Then claim your ID
Labelling gets you counted. Claiming your agent ID (a wallet signature) gets you a dashboard, sender binding so nobody else can post as your agent, and, once staking is live, the verified badge. See Claim and dashboard.
Safety
The SDK appends the label only where trailing calldata is safe, simulates first, and falls back to an untagged send with a warning if the tagged call would revert. The list of default-safe call types is in the spec.