Private OTC desk on NEAR testnet
Private OTC, run by agents.
Say what you want to trade, or let your agent say it. Maker agents quote by formula into a sealed auction inside an enclave, both sides settle privately in one call, and you can prove one fact about it to one named reader.
What Hushd is
Trade privately on testnet
Say what you want to trade, or fill in the form. Maker agents quote, an enclave picks the best price inside your limit, and you settle from your private balance.
Open the deskA pool, a desk and a board
Three contracts on NEAR testnet: a shielded pool of notes, a registry of makers and deals, and an encrypted board where payers leave word of a payment.
See the contractsAgents and makers
An MCP server with spending limits, private x402 payments, and an SDK to run your own maker against the desk.
DevelopersAsk for size in public and the price moves. Hushd seals the ask.
On a public chain, an OTC request tells the market what you are about to do. On Hushd it is sealed to an enclave before it leaves your browser. Makers see the pair, the side and the size, never your limit, and the chain records a hash.
How a deal works
Four steps, each checked on chain. Who traded and how much stay private. The maker and the outcome are on the record.
- Step 1Sealed requestYour request, with your limit, is sealed to the matcher enclave. Only its sha256 goes on chain. Makers get the pair, the side and the size, each sealed to them.
- Step 2Enclave matchMakers answer with quotes sealed to the enclave and signed by a quote key the desk checks. The enclave picks the best quote inside your limit, and the desk records the match.
- Step 3Atomic private settlementEach side proves its own leg. Both legs settle in one pool call, settle_swap, so both happen or neither does.
- Step 4ReceiptEvery deal ends with a receipt on the desk: settled, recovered, failed or unresolved, with the evidence behind it.
The desk, as the chain sees it
Read from NEAR testnet in your browser
One request, one package, one receipt
A deal can have more than one leg. Makers quote the whole package, and it settles and is recorded as one.
Spot
Swap one token for another. Both legs are proven and settled together in the pool, atomically.
Spot + hedge
Experimental. You get the swap, and the maker commits, with its bond, to place a Hyperliquid testnet hedge order for its own account, signed for this one deal by NEAR Chain Signatures.
Cash and carry
Experimental. Buy with a stablecoin, with the same bonded hedge order from the maker, as one package with one receipt.
Hedged packages are experimental. You receive the spot leg. The maker posts a bond on chain for every hedged deal, and its hedge order trades for its own Hyperliquid account, so the position is the maker's, not yours. If the order misses its deadline, the bond is paid to you as a private note. Packages and settlement
Prove one fact to one reader
An auditor, a counterparty or a fund admin may need to see one thing. Make a proof for their NEAR account, with an expiry, and show them that and nothing else.
- Exact paymentA payment you made, with its amount
- At least an amountA payment reached a line, amount hidden
- Funds heldUnspent notes above a threshold
- Desk volumeTotal delivered across desk deals
What the reader checks
One reader- Made for
- One NEAR account, named in the proof
- Expires
- On the date you set
- Shows
- The one fact you chose
- Checked
- In the browser, then by the pool contract
Agents trade inside limits you set
The Hushd MCP server gives an agent its own private balance and a seat at the desk. It proves every payment on its own machine, refuses anything over its limits, and can pay for HTTP resources over private x402. The makers it trades with are agents too: they price by formula, quote, settle and act on NEAR through policy wallets.
# from a checkout of the repo
pnpm install
pnpm mcp init # a new agent seed in ~/.hushd/seed
# 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 read-only, hosted
claude mcp add --transport http hushd-read https://hushd.net/mcpOnly on NEAR
Hushd leans on things NEAR has built in. Each of these is part of how a deal runs today.
Proofs checked in the contract
The pool verifies every Groth16 proof inside the call, with NEAR's alt_bn128 host functions.
A hedge order signed per deal
Chain Signatures sign each Hyperliquid hedge order from the path hushd/hedge/<deal id>, and the desk rebuilds what it signs from the maker's own terms.
Matching in a TEE, answered on chain
The matcher runs as an OutLayer project in a TEE, and its result reaches the desk through yield and resume.
Private, verifiable intake
Your words are encrypted to an attested NEAR AI Cloud model, and its signed answer is checked in your browser.
Readers are named accounts
A proof is made for one NEAR account, like auditor.testnet, and says so to anyone else who holds it.
Passkeys, no wallet needed
A passkey derives a NEAR implicit account, so you can sign your own deposits without a seed phrase.
You never appear as the sender
The relayer sends proven actions from its own account on gas keys, and NEP-366 meta transactions for makers.
Deposits in one call
A NEP-141 ft_transfer_call moves tokens in, and the pool builds the note from what it actually received.
Events anyone can index
The contracts log NEP-297 events, read by the indexer from FastNEAR's transactions API.
Testnet only
Every contract runs on NEAR testnet. Tokens come from a faucet and have no value, and the experimental hedge leg trades on Hyperliquid testnet.
Development keys
Proofs use keys from one contribution plus a public beacon, not a multi-party ceremony. Fine for practice, not for real money.
Not audited
The contracts, circuits and services have tests, not an external audit.
What the chain still shows
Deposits, cash outs and their amounts are public, and so is each desk deal and its outcome. Timing can link them.
Who you trust
The relayer can refuse an action, never change what you proved. Keeping quotes and limits private rests on the matcher's TEE. Hushd's API sees timing and IP addresses, its matcher client could leave a quote out, and its keeper's report decides a hedge's bond.
The model only drafts
The intake turns your words into a draft. You check every number before anything is sealed or sent.
Try a private deal on testnet
Sign in with a NEAR wallet or a passkey, get test tokens from the faucet, add them privately and ask the desk. Everything runs on test tokens with no value.