Skip to content
Network

Agents

Give an agent a private balance and a seat at the desk. It pays, trades and proves through MCP, acts on NEAR through a policy wallet, and never spends past the limits you set.

Run it with the agent's own seed

The MCP server runs next to the agent. It proves every payment in its own process, so the seed never leaves the machine. Each token needs a limit per payment and per day; a token with no limit cannot be spent.

Local MCP server
# from a checkout of this repo
pnpm install
pnpm mcp init        # writes a new agent seed to ~/.hushd/seed (mode 600)

# Claude Code: the agent's own wallet, inside its limits
claude mcp add hushd \
	-e HUSHD_LIMIT_PER_PAYMENT="USDC=100,wNEAR=50" \
	-e HUSHD_LIMIT_PER_DAY="USDC=500,wNEAR=250" \
	-- pnpm --silent --dir "$PWD" mcp

Or connect to the hosted, read-only server

Hosted MCP
# read-only: status, makers, deals, proof checks
claude mcp add --transport http hushd-read https://hushd.net/mcp

Policy wallets

An agent that needs its own NEAR account can have one without ever holding its key. The key is made and kept in OutLayer's TEE; the agent holds only an API key, and the TEE checks the owner's policy before every signature. The owner stores the policy on chain and is the only account that can freeze it.

Hushd's agentsOwner hushd.testnet

Who enforces what

OutLayer's TEE

Before every signature, whatever asks for it

  • Contract calls only, and only to Hushd's contracts
  • NEAR attached per transaction and per day
  • Calls per hour
  • Hours of the day, in UTC, when you set them
  • Your freeze: a frozen wallet signs nothing

The Hushd MCP server

Before every payment, in the agent's own process

  • Token amounts per payment and per day, since the TEE does not read call arguments
  • The day the limits end
  • Who the agent may pay
  • No spending at all while the wallet is frozen

The TEE's rules hold even if the agent's machine is taken over. The server's limits run beside the agent: they stop an agent that gets it wrong, but whoever holds the key can call the TEE directly, inside the TEE's rules.

Your policy wallets

Checking for a wallet…

Tools (22)

  • hushd_address, hushd_balanceThe agent's receive address and private balance
  • hushd_policyIts NEAR account: a policy wallet's owner, TEE rules and frozen state, or its own key
  • hushd_faucet, hushd_shieldTestnet tokens to its NEAR account, then into the pool
  • hushd_send, hushd_cash_outPay a hushd1… address, or out to a NEAR account
  • hushd_pay_link, hushd_claim_link, hushd_my_links, hushd_take_back_linkPay anyone as a claim link, claim one, see where each stands, and take back one nobody claimed
  • hushd_tradeAsk the desk's makers, match in the enclave, settle privately
  • hushd_pay_x402Pay a 402 resource from the private balance
  • hushd_prove, hushd_my_paymentsA payment, funds or volume proof for one named reader
  • hushd_limits, hushd_my_dealsWhat it may spend and what it traded
  • hushd_status, hushd_makers, hushd_desk_deals, hushd_deal, hushd_verify_proofRead tools, also on the hosted server

Private x402

The makers sell indicative quotes over HTTP 402. The price is paid as a private note to the maker's hushd1… address; the request carries the note's opening sealed to the maker, who checks that the pool created exactly that note. The chain shows a pool transaction, not who paid whom or how much. hushd_pay_x402 does all of this inside the agent's limits.

A 402 answer
curl -i "https://api.hushd.net/makers/steady/quote?sell=usdc.hushd.testnet&amount=1000000000&buy=btc.hushd.testnet"
# HTTP/1.1 402 Payment Required
# {"x402Version":1,"accepts":[{"scheme":"hushd","network":"near-testnet",
#   "maxAmountRequired":"10000","asset":"usdc.hushd.testnet","payTo":"hushd1…", …}]}

For coding agents

The repo carries an agent skill at skills/hushd/SKILL.md, an AGENTS.md, and llms.txt for the whole site.