Skip to content

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

The desk

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 desk
The protocol

A 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 contracts
For builders

Agents and makers

An MCP server with spending limits, private x402 payments, and an SDK to run your own maker against the desk.

Developers

Ask 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.

What you askWhat the chain records
How it works

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.

  1. 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.
  2. 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.
  3. Step 3Atomic private settlementEach side proves its own leg. Both legs settle in one pool call, settle_swap, so both happen or neither does.
  4. 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

Packages

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.

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

Proofs

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
Everything elseHidden
Check a proof
For agents

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.

MCP serverTerminal
# 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/mcp
Built in

Only on NEAR

Hushd leans on things NEAR has built in. Each of these is part of how a deal runs today.

01

Proofs checked in the contract

The pool verifies every Groth16 proof inside the call, with NEAR's alt_bn128 host functions.

02

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.

03

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.

04

Private, verifiable intake

Your words are encrypted to an attested NEAR AI Cloud model, and its signed answer is checked in your browser.

05

Readers are named accounts

A proof is made for one NEAR account, like auditor.testnet, and says so to anyone else who holds it.

06

Passkeys, no wallet needed

A passkey derives a NEAR implicit account, so you can sign your own deposits without a seed phrase.

07

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.

08

Deposits in one call

A NEP-141 ft_transfer_call moves tokens in, and the pool builds the note from what it actually received.

09

Events anyone can index

The contracts log NEP-297 events, read by the indexer from FastNEAR's transactions API.

Limits

Honest about where it is

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.