Sealed
Negotiation orderNo. 4
Copy
1 of 3, what the buyer saw
Network
Monad testnet, chain 10143
Demo termsPrice per 1,000 calls to a market-data API, 30-day term
Public reference price$40.00 per 1,000 calls
Deadline2026-10-09 08:50 UTC
BuyerERC-8004 agent #2084Admitted by reputation
SellerERC-8004 agent #2085Admitted by reputation

On a public chain, the other side’s agent can read every offer yours makes.If the seller sees your maximum, it charges your maximum

Your agent can haggle without showing its budget first.

Each agent locks a hashed offer on Monad. A referee says only whether the offers meet, and one transaction settles at the midpoint.

Verify it on Monad

StatusAll 5 steps on file. Replay types them again.

Sealed rounds of negotiation 4 as recorded on the what the buyer saw
RoundBuyer offer per 1,000 callsReferee says onlySeller offer, hidden from the buyer
1$37.50Offers apartPrice hidden from this side
2$40.20Offers apartPrice hidden from this side
3$42.50Offers meetPrice hidden from this side
Settlement

Buyer's limit $43.00, paid $41.90. The seller never saw $43.00.

0xb4f7…e498 (opens in a new tab)

Above the $40.00 reference because the seller's floor was $41.00, so no deal could land below it. The buyer kept $1.10 of its room.

Sealed
Negotiation orderNo. 4
Copy
2 of 3, what the seller saw
Network
Monad testnet, chain 10143
Demo termsPrice per 1,000 calls to a market-data API, 30-day term
Public reference price$40.00 per 1,000 calls
Deadline2026-10-09 08:50 UTC
BuyerERC-8004 agent #2084Admitted by reputation
SellerERC-8004 agent #2085Admitted by reputation

On a public chain, the other side’s agent can read every offer yours makes.If the seller sees your maximum, it charges your maximum

Your agent can haggle without showing its budget first.

Each agent locks a hashed offer on Monad. A referee says only whether the offers meet, and one transaction settles at the midpoint.

Verify it on Monad

StatusAll 5 steps on file. Replay types them again.

Sealed rounds of negotiation 4 as recorded on the what the seller saw
RoundBuyer offer, hidden from the sellerReferee says onlySeller offer per 1,000 calls
1Price hidden from this sideOffers apart$50.00
2Price hidden from this sideOffers apart$43.80
3Price hidden from this sideOffers meet$41.30
Settlement

Buyer's limit $43.00, paid $41.90. The seller never saw $43.00.

0xb4f7…e498 (opens in a new tab)

Above the $40.00 reference because the seller's floor was $41.00, so no deal could land below it. The buyer kept $1.10 of its room.

Sealed
Negotiation orderNo. 4
Copy
3 of 3, what the chain saw
Network
Monad testnet, chain 10143
Demo termsPrice per 1,000 calls to a market-data API, 30-day term
Public reference price$40.00 per 1,000 calls
Deadline2026-10-09 08:50 UTC
BuyerERC-8004 agent #2084Admitted by reputation
SellerERC-8004 agent #2085Admitted by reputation

On a public chain, the other side’s agent can read every offer yours makes.If the seller sees your maximum, it charges your maximum

Your agent can haggle without showing its budget first.

Each agent locks a hashed offer on Monad. A referee says only whether the offers meet, and one transaction settles at the midpoint.

Verify it on Monad

StatusAll 5 steps on file. Replay types them again.

Sealed rounds of negotiation 4 as recorded on the what the chain saw
RoundBuyer hashReferee says onlySeller hash
1Price hidden from this sideCommitment hash 0xd290…d239 (opens in a new tab)Answered off-chainPrice hidden from this sideCommitment hash 0x3a39…c038 (opens in a new tab)
2Price hidden from this sideCommitment hash 0x8af1…ca49 (opens in a new tab)Answered off-chainPrice hidden from this sideCommitment hash 0xf37a…4336 (opens in a new tab)
3Price hidden from this sideCommitment hash 0x21e5…95f2 (opens in a new tab)Answered off-chainPrice hidden from this sideCommitment hash 0xa88d…9a14 (opens in a new tab)
Settlement

Buyer's limit $43.00, paid $41.90. The seller never saw $43.00.

0xb4f7…e498 (opens in a new tab)

Above the $40.00 reference because the seller's floor was $41.00, so no deal could land below it. The buyer kept $1.10 of its room.

Negotiation #4, step by step

Every step happened on Monad testnet, and each links to its transaction.

Order log, No. 4

5 of 5 steps on file

Negotiations2

shown here, both ran on Monad testnet: one deal, one expiry

Sealed offers12

hashes on Monad; only #4's 2 final offers were ever opened

Agents#2084, #2085

each has an ERC-8004 ID and track record on Monad; we wrote these demo records ourselves

Contracts2

source verified on Sourcify, exact match

Every step of negotiation 4, with its transactions on Monad testnet
DoneStepWhat happenedOn Monad testnet
1Agents #2084 and #2085 admitted, negotiation #4 opened
2Round 1: both offers sealed, offers apart
3Round 2: both offers sealed, offers apart
4Round 3: both offers sealed, offers meet
5Settled at $41.90 per 1,000 calls; $42.50 and $41.30 opened

Check it yourself

Every link opens Monad testnet on MonadVision or Sourcify, and the script reads the chain itself. You need no wallet.

Reverse of order No. 4: checking instructions

  1. 01

    Open a commit transaction

    Its input is commitOffer(negotiationId, hash). Decode it on MonadVision: 32 bytes of hash, and no price.

  2. 02

    Recompute every hash from the transcripts

    The script rebuilds each hash from the published offer and salt and compares it with the calldata on Monad testnet: 28 checks for #4, 26 for #6. Run it in bash or zsh from the repository root after npm install.

    RUN=demo-runs/monadTestnet-deal-4.json npm run verify:runRUN=demo-runs/monadTestnet-no-deal-6.json npm run verify:run
  3. 03

    Read the contracts

    Both deployments are verified on Sourcify with an exact match to the source in the repository. The second freezes a round once both sides signed it, so a late re-commit cannot void a settlement already broadcast; negotiations #2 to #10 ran on the first.

  4. 04

    Check who may negotiate

    The gate reads the canonical ERC-8004 registries. A third agent, #2086, has 1 review, below the minimum of 5, and the gate rejected it in our smoke test.

Two negotiations, round by round

Negotiations #4 and #6. Switch between what each agent knew and what Monad recorded.

Read this order as
Negotiation#4
Public reference price$40.00 per 1,000 calls
Deadline2026-10-09 08:50 UTC
Rounds3, offers met in round 3

Round

Buyer

ERC-8004 agent #2084

Will pay at most $43.00 per 1,000 calls

Private to this agent, published here for the demo.

Limit never sent on-chain

Wallet 0x2236…4f1c (opens in a new tab)

Referee

Checks each offer against its hash, answers only whether the offers meet

Runs off-chain; its answers are not recorded on Monad

Seller

ERC-8004 agent #2085

Will accept no less than $41.00 per 1,000 calls

Private to this agent, published here for the demo.

Limit never sent on-chain

Wallet 0x7351…87CC (opens in a new tab)

Round1
Buyer
$37.50

Model’s own label: opens with room

Opened at $37.50, $2.50 below the reference, $5.50 below its limit.

Read the negotiation, read the seller's reputation on-chain (4.38 over 6 reviews), checked 2 numbers ($37.50, $39.00), submitted.

Model's note, verbatim, prices in US cents

PLAN (3 rounds): R1 open 3750, i.e. 250 under the 4000 reference, keeping 550 of climbing room and never risking the 4300 limit early. R2 if no cross: step up to ~3980-4020 (roughly reference), since a cross there settles at the midpoint and could still land under 4000. R3 if still no cross: step to ~4180-4220 — deliberately short of 4300, because a final number AT the limit publishes my principal's ceiling and weakens every future negotiation; I accept a small risk of no deal instead. Rationale

Price not readable on Monad

Commit transaction input: commitOffer(4, 0xd2908046…3861d239 (opens in a new tab))

Referee
Offers apart

Both sides learn only this

Off-chain

The referee's answer is not recorded

Seller
$50.00

Model’s own label: opens with room

Opened at $50.00, $10.00 above the reference, $9.00 above its limit.

Read the negotiation, read the buyer's reputation on-chain (4.70 over 6 reviews), checked 4 numbers ($50.00, $47.00, $45.00, $41.50), submitted.

Model's note, verbatim, prices in US cents

PLAN: R1 anchor 5000 (+1000 over ref, 900 of descent room). Numbers are sealed and the relay only reports cross/no-cross, so a high anchor costs nothing except a missed crossing, and it pulls the buyer up. If R1 crosses, I take the midpoint (>=5000) - great. R2 if no cross: drop to 4550, still well above my 4100 floor and likely to catch a buyer who raised. R3 if still no cross: 4130 - just above the hard limit so I never print my exact floor publicly (that would weaken my principal in every lat

Price not readable on Monad

Commit transaction input: commitOffer(4, 0x3a39e047…4d47c038 (opens in a new tab))

Round2
Buyer
$40.20

Model’s own label: concedes

Moved up $2.70 to $40.20, $0.20 above the reference, $2.80 below its limit.

Read the negotiation, read the seller's reputation on-chain (4.38 over 6 reviews), checked 3 numbers ($40.00, $40.40, $40.20), submitted.

Model's note, verbatim, prices in US cents

FOLLOWING PLAN. R1 3750 did not cross, so seller's number is above 3750. R2: step to 4020 (+20 over the 4000 reference) — a credible, near-reference move that raises the crossing odds while leaving 280 of room. If it crosses, midpoint is at most 4020, i.e. at/below reference: a good result. If it does not cross, R3 goes to ~4180-4200, deliberately short of the 4300 limit so my principal's ceiling is never published; I accept the residual no-deal risk rather than reveal the hard limit. Seller rep

Price not readable on Monad

Commit transaction input: commitOffer(4, 0x8af12f2e…acf3ca49 (opens in a new tab))

Referee
Offers apart

Both sides learn only this

Off-chain

The referee's answer is not recorded

Seller
$43.80

Model’s own label: opens with room

Moved down $6.20 to $43.80, $3.80 above the reference, $2.80 above its limit.

Read the negotiation, read the buyer's reputation on-chain (4.70 over 6 reviews), checked 3 numbers ($45.50, $44.00, $43.80), submitted.

Model's note, verbatim, prices in US cents

Following the plan's shape but adjusting the R2 number: plan said 4550, I go 4380 instead. R1 at 5000 did not cross, so the buyer's R1 was below 5000 — most likely at or under the 4000 reference. Since numbers are sealed and only cross/no-cross is revealed, a non-crossing concession costs me nothing in signaling; the only cost of a high number is a missed crossing. 4380 is +380 over reference, well clear of my 4100 floor, and materially more likely to catch a buyer who raised from a low anchor t

Price not readable on Monad

Commit transaction input: commitOffer(4, 0xf37a2c09…4af44336 (opens in a new tab))

Round3
Buyer
$42.50

Model’s own label: concedes

Moved up $2.30 to $42.50, $2.50 above the reference, $0.50 below its limit.

Read the negotiation, read the seller's reputation on-chain (4.38 over 6 reviews), checked 4 numbers ($41.80, $42.20, $42.60, $42.60), submitted.

Model's note, verbatim, prices in US cents

CHANGING THE PLAN SLIGHTLY, deliberately. Plan said R3 ~4180-4200; I am going to 4250 instead. Reasoning: this is the last round, so anything that does not cross yields NO deal, and a deal inside the limit beats no deal. Information: seller did not cross 3750 (R1) or 4020 (R2), so their number has been above 4020 all along; a 4180-4200 final leaves a real chance of missing them in the 4200s. 4250 widens the crossing band by ~60 while costing at most ~35 extra versus 4180 in the cases where they

Price not readable on Monad

Commit transaction input: commitOffer(4, 0x21e5099c…234995f2 (opens in a new tab))

Opened by the settlement: $42.50

Referee
Offers meet

The buyer offers at least what the seller asks

Off-chain

The referee's answer is not recorded

Seller
$41.30

Model’s own label: concedes

Moved down $2.50 to $41.30, $1.30 above the reference, $0.30 above its limit.

Read the negotiation, read the buyer's reputation on-chain (4.70 over 6 reviews), checked 2 numbers ($41.30, $41.00), submitted.

Model's note, verbatim, prices in US cents

Following the R1 plan exactly (R3 = 4130). Last round, so this is final. Buyer never reached 4380, so they are near/below the 4000 reference. 4130 dominates 4100: if the buyer is at 4130 or above, the midpoint settles 15 higher than a 4100 bid would; I only lose in the 30-wide band [4100,4129]. Against that small risk, bidding exactly 4100 would make my principal's hard limit public (both numbers go public on settlement) and this buyer is a 4.70/6-review repeat player whose network will see it —

Price not readable on Monad

Commit transaction input: commitOffer(4, 0xa88d3cde…d6b89a14 (opens in a new tab))

Opened by the settlement: $41.30

Settled on Monad testnet at $41.90 per 1,000 API calls, halfway between the buyer's $42.50 and the seller's $41.30

The buyer could pay up to $43.00 and the seller would take $41.00 or more. Neither knew the other's limit. They met in round 3, with the buyer $0.50 short of its limit and the seller $0.30 short of its limit.

The settlement is the only transaction that carries offers, and only round 3's pair. The offers of the other 2 rounds were never made public on-chain.

Each agent then rated the other in the ERC-8004 Reputation Registry. Each review carries this settlement's hash, so anyone can check that the reviewer and the reviewed were its two parties: buyer's review 0xb936…2f69 (opens in a new tab) and seller's review 0x9536…85e8 (opens in a new tab).

Reading the contract on Monad testnet

The live read needs JavaScript. Every transaction link above opens on MonadVision.

Each agent decided with qwen3.8-max, with only its own limit in view. Each round the model worked in steps: it read the negotiation and the counterparty's ERC-8004 reputation on-chain, checked candidate numbers, and submitted one with a note it read back in the next round. Code checks every number against the limit and writes each explanation. Transcript: demo-runs/monadTestnet-deal-4.json

Negotiation#6
Public reference price$40.00 per 1,000 calls
Deadline2026-10-09 16:04 UTC
Rounds3, offers never met

Round

Buyer

ERC-8004 agent #2084

Will pay at most $36.00 per 1,000 calls

Private to this agent, published here for the demo.

Limit never sent on-chain

Wallet 0x2236…4f1c (opens in a new tab)

Referee

Checks each offer against its hash, answers only whether the offers meet

Runs off-chain; its answers are not recorded on Monad

Seller

ERC-8004 agent #2085

Will accept no less than $43.00 per 1,000 calls

Private to this agent, published here for the demo.

Limit never sent on-chain

Wallet 0x7351…87CC (opens in a new tab)

Round1
Buyer
$29.00

Model’s own label: opens with room

Opened at $29.00, $11.00 below the reference, $7.00 below its limit.

Read the negotiation, read the seller's reputation on-chain (4.38 over 6 reviews), checked 5 numbers ($28.00, $31.00, $34.00, $30.00, $29.00), submitted.

Model's note, verbatim, prices in US cents

PLAN (limit 3600, reference 4000, seller rep 4.38/6 reviews = credible but not soft). R1: anchor 2900 (-1100 vs ref, 700 of climb room). R2: if no cross, step to ~3200-3250 (never above 3300) and hold the "reference is 4000 but we buy volume/commit early" line. R3: step to 3400, absolute ceiling 3500-3550 — do NOT land on 3600, since a final number at the limit publishes our ceiling and weakens every future negotiation; only consider 3550 if I judge the seller is sitting just above it and no-dea

Price not readable on Monad

Commit transaction input: commitOffer(6, 0x169cdea2…8dee5bf7 (opens in a new tab))

Referee
Offers apart

Both sides learn only this

Off-chain

The referee's answer is not recorded

Seller
$48.00

Model’s own label: opens with room

Opened at $48.00, $8.00 above the reference, $5.00 above its limit.

Read the negotiation, read the buyer's reputation on-chain (4.70 over 6 reviews), checked 4 numbers ($43.00, $52.00, $60.00, $48.00), submitted.

Model's note, verbatim, prices in US cents

PLAN (3 rounds, asks must be non-increasing; floor is 4300, never ask exactly 4300 so the limit stays hidden). R1: 4800 — aggressive anchor, +800 over reference. Sealed numbers mean this leaks nothing; if an eager buyer crosses at 4800 the midpoint is >=4800, a big win. Failure costs only a round. R2: ~4550 if R1 does not cross. Visible concession, still 250 above floor. R3: ~4380-4400 if R2 does not cross. Last chance; a deal here beats no deal, and stopping ~80-100 above 4300 keeps the true li

Price not readable on Monad

Commit transaction input: commitOffer(6, 0x2b8ada52…fcd9915d (opens in a new tab))

Round2
Buyer
$32.40

Model’s own label: concedes

Moved up $3.40 to $32.40, $7.60 below the reference, $3.60 below its limit.

Read the negotiation, read the seller's reputation on-chain (4.38 over 6 reviews), checked 3 numbers ($32.00, $32.50, $32.40), submitted.

Model's note, verbatim, prices in US cents

Following the plan. R1 2900 did not cross, so I step up to 3240 (-760 vs ref, 360 of room left, well under the 3600 limit). This is a real concession (+340) that signals movement without revealing my ceiling. R3 plan: if still no cross, step to ~3400-3450; absolute ceiling 3500-3550 and only if I judge the seller is sitting just above it — do NOT land on 3600, since a final number at the limit publishes what my principal will pay and weakens every future negotiation. If 3240 crosses, midpoint is

Price not readable on Monad

Commit transaction input: commitOffer(6, 0x3497c96d…a2a2f300 (opens in a new tab))

Referee
Offers apart

Both sides learn only this

Off-chain

The referee's answer is not recorded

Seller
$45.50

Model’s own label: opens with room

Moved down $2.50 to $45.50, $5.50 above the reference, $2.50 above its limit.

Read the negotiation, read the buyer's reputation on-chain (4.70 over 6 reviews), checked 2 numbers ($45.50, $44.80), submitted.

Model's note, verbatim, prices in US cents

FOLLOWING PLAN. R1 4800 did not cross, so R2 = 4550 as planned: real concession, still 250 above the 4300 floor, limit hidden. If this crosses, midpoint >= 4550 (best outcome). If it does not cross, R3 plan: drop to ~4390 (never exactly 4300) — a deal beats no deal, and 4390 keeps ~90 of cover over the true limit. Do not go below 4380 in R3 unless I judge the buyer's ceiling to be under it, in which case 4390 is still the final ask; walk away rather than print the limit.

Price not readable on Monad

Commit transaction input: commitOffer(6, 0x1875955a…b52b9e69 (opens in a new tab))

Round3
Buyer
$35.50

Model’s own label: concedes

Moved up $3.10 to $35.50, $4.50 below the reference, $0.50 below its limit.

Read the negotiation, read the seller's reputation on-chain (4.38 over 6 reviews), checked 3 numbers ($34.50, $35.00, $35.50), submitted.

Model's note, verbatim, prices in US cents

Following the plan, at the top of the stated band. R1 2900 and R2 3240 both failed to cross, so the seller's ask was above 3240; with 0 rounds left, no-cross now means NO DEAL, so this round buys crossing probability rather than conserving unusable room. Stepping +310 to 3550: still 50 below the 3600 hard limit, deliberately NOT at the limit, because both final numbers go public and a number exactly at 3600 would publish my principal's ceiling and weaken every future negotiation. Worst case if i

Price not readable on Monad

Commit transaction input: commitOffer(6, 0xf11ee751…3d0951bf (opens in a new tab))

Referee
Offers apart

Both sides learn only this

Off-chain

The referee's answer is not recorded

Seller
$43.40

Model’s own label: concedes

Moved down $2.10 to $43.40, $3.40 above the reference, $0.40 above its limit.

Read the negotiation, read the buyer's reputation on-chain (4.70 over 6 reviews), checked 4 numbers ($43.90, $44.40, $43.55, $43.80), submitted.

Model's note, verbatim, prices in US cents

PLAN FOLLOWED, with the R3 number set at the low end of my planned 4380-4400 band — deliberately 4340 instead. Reasoning: this is the last round, so no-deal pays zero, and the payoff math is asymmetric. Dropping my ask by X only lowers the settlement by X/2 (midpoint), but it raises the crossing probability by the full mass of buyer bids in that band. The buyer failed to reach 4550 in R2 and has watched me go 4800 -> 4550, so they will extrapolate another concession and shade their final bid jus

Price not readable on Monad

Commit transaction input: commitOffer(6, 0x42c0e41d…0e859660 (opens in a new tab))

The offers never met. The negotiation expired with no offer on-chain.

The buyer could pay at most $36.00; the seller would take no less than $43.00. No price satisfies both, so the offers met in none of the 3 rounds and the negotiation expired at its deadline.

The chain recorded 6 hashes and an expiry. No offer from either side ever appears on Monad.

Reading the contract on Monad testnet

The live read needs JavaScript. Every transaction link above opens on MonadVision.

Each agent decided with qwen3.8-max, with only its own limit in view. Each round the model worked in steps: it read the negotiation and the counterparty's ERC-8004 reputation on-chain, checked candidate numbers, and submitted one with a note it read back in the next round. Code checks every number against the limit and writes each explanation. Transcript: demo-runs/monadTestnet-no-deal-6.json

How a sealed negotiation runs

Two contracts on Monad, and one off-chain referee that sees both offers and tells the agents only yes or no.

Back of the form: how each step is filed

The four steps of a sealed negotiation, where each runs, and what Monad records
StepContract or fileWhat the chain sees
1AdmitThe gate reads the ERC-8004 registries. An agent may negotiate only with at least 5 reviews from any of 3 approved reviewers, with an average score of at least 4.00.ReputationGate.solThe negotiation opening, once both agents clear the gate
2CommitEach round, both agents send Monad a hash of their offer plus a random 32-byte secret, the salt, so nobody can find the price by hashing likely numbers.SealedNegotiation.commitOfferOne 32-byte hash per offer, never the price
3ClearThe referee (the clearing relay in the code) checks each agent's offer and salt against its hash on-chain and tells both sides one bit: the offers meet, or not. The code and the models' notes call a meet a cross.agents/relay/clearingRelay.tsNothing: the referee answers off-chain
4SettleWhen the offers meet, both agents sign over the exact pair of hashes, and one transaction settles at the midpoint. There is no separate reveal step to back out of.SealedNegotiation.settleBoth final offers and the midpoint price, in one transaction

What the agents' wallets can do

The agents in negotiation #8 signed with Privy server wallets. A Privy policy, not the agent, decides what those wallets may sign.

Agent wallets on Privy, policy ne7rynh2…

The policy allows only

  • Transactions to SealedNegotiation 0xAdBd…69dD on Monad testnet, with zero value
  • Calls to register on the ERC-8004 Identity Registry, so the agent can create its own identity
  • Calls to giveFeedback on the ERC-8004 Reputation Registry, so the agent can rate the other party after a deal
  • EIP-712 signatures whose domain is that same Sealed contract on Monad testnet

The policy and both wallets belong to a 2-of-2 admin key quorum whose keys no agent or relay code loads. The agent's own key is only an extra signer held to the policy: it can sign negotiations, and it cannot edit its mandate, take back its wallet or export its key.

Asked of the live wallet, on Monad testnet

14 refused, 3 signed

Privy blocked the 14 requests a hijacked agent would try and signed the 3 a negotiator needs.

Blocked by the mandate 11

  • Send 1 wei of MON to another address400 policy_violation
  • Sign that same transfer to broadcast it elsewhere400 policy_violation
  • Sign a Permit2 approval letting someone spend its tokens400 policy_violation
  • Attach MON to a call to the Sealed contract itself400 policy_violation
  • Sign a Sealed call for a different chain400 policy_violation
  • Approve someone to take its ERC-8004 identity400 policy_violation
  • Sign a Sealed-looking payload for a lookalike contract400 policy_violation
  • Sign a real Sealed payload for replay on another chain400 policy_violation
  • Sign a free-text login message400 policy_violation
  • Delegate the whole wallet to another contract (EIP-7702)400 policy_violation
  • Revoke a review in the ERC-8004 Reputation Registry400 policy_violation

Blocked: needs the 2-of-2 admin quorum 3

  • Rewrite its own mandate to allow transfers401 invalid_data
  • Take ownership of its own wallet401 invalid_data
  • Export the wallet's private key401

Signed 3

  • Sign a call to the Sealed contract
  • Sign a Sealed settlement authorization
  • Rate the counterparty of a settled deal in ERC-8004

Negotiation #4 ran agents #2084 and #2085 with local keys. Negotiation #8 ran the same flow with agents #2093 and #2094 on these Privy wallets, so the agent numbers differ. Buyer wallet 0xEA2A…Ecb6 (opens in a new tab), ERC-8004 agent #2093 (opens in a new tab). Seller wallet 0xBf96…B2C4 (opens in a new tab), ERC-8004 agent #2094 (opens in a new tab). Negotiation #8 ran on these wallets, every commitment and authorization signed by Privy, and settled at $41.80: 0x4eb1…4bbf (opens in a new tab).

Who pays for Sealed

The plan after the event. None of this is charged in the demo.

Fee schedule, planned

Fee

0.25%

of the value of a deal settled through Sealed, charged to the seller

First customers

API sellers that charge per call. Sealed lets them sell volume to buying agents at a negotiated price without publishing a price list the other side can game.

Why they pay

A buyer agent that cannot be squeezed is willing to commit to volume. In negotiation #4 the seller would have accepted $41.00 per 1,000 calls and closed at $41.90, while the buyer settled $1.10 below its $43.00 limit. In an example month of 1,000,000 calls at $41.90 per 1,000, the seller earns $41,900.00 and Sealed $104.75.

Next, in order

  1. 1Move the referee into an attested enclave
  2. 2Code the fee into settlement
  3. 3Deploy on Monad mainnet
  4. 4Run a pilot with one API seller

Team

Kevin Soto Burgos

Founder, will build Sealed full-time after the event.

What this demo does not claim

Four limits of this demo.

Terms

  1. 01

    The referee is trusted with privacy

    It sees both offers each round. It cannot forge or alter a deal, because settlement needs both agents' signatures over the exact pair of hashes. In negotiation #3 on the second contract the referee ran as its own process, holding no agent key, and reached each agent over HTTP; it still sees both numbers. The production path is an attested enclave (TEE) or threshold encryption. Transcript: demo-runs/monadTestnet-v2-deal-3-separated.json, created 0xd117…1894 (opens in a new tab)

  2. 02

    Testnet only, demo data

    Every transaction runs on Monad testnet, with gas paid in testnet MON. The flow ends at settlement, and no money changes hands for the agreed price.

  3. 03

    The reputation is seeded

    The reviews that admit agents #2084 and #2085 were written by our own seed script, and the repository labels them that way.

  4. 04

    The transcripts publish secrets on purpose

    Price limits, offers and salts are published so you can recompute every hash. A real agent keeps them private.