Opportunities
The one opportunity the agent committed on-chain, with every number it rests on.
What you are looking at
An opportunity is one proposed trade: buy 350 iPhone 16 Pro clear cases (phone cases, not phones) from one listing and sell them into another for a profit. The agent proposed it, the identity gates confirmed both listings are the same product, and then the contract re-calculated the profit itself before accepting it. There is exactly one real opportunity in the run, and this is it.
The contract works in whole cents and refuses any claim that does not match its own arithmetic. That refusal is called a revert. Below: the trade, the arithmetic line by line, and the 12 checks it passed.
iPhone 16 Pro Clear MagSafe Case IDENTITY LOCKED COMMITTED ON-CHAIN
FIXED SNAPSHOT · 2026-10-03 SKU CASE-IP16PRO-CLEAR-MAG-001 (iPhone 16 Pro Clear MagSafe Case). Listing prices as of 2026-10-03 15:39:11 UTC: a fixed snapshot of listings that does not update. The buy price is the reference price before shipping, tax and fees; the landed cost adds shipping and fixed assumptions for duty, tax and fees. These are test listings: no real stock or delivery is implied.
Expected profit if every unit sells as listed: $913.50 ($2.61 × 350). That is the figure the contract verified before it let the agent lock any money.
The arithmetic, line by line
- landed590+42+12+8+5+2$6.59Everything it costs to put one unit in stock: buy price, shipping, duty, tax, procurement fee and payment fee, added up in whole cents.
- marketplaceFeeceil(1099*800/10000)$0.88The marketplace keeps 8% (800 bps; 1 bps = 0.01%) of the $10.99 sell price. Rounded up to the next cent, so rounding never flatters the result.
- returnReserveceil(1099*200/10000)$0.222% (200 bps) of the sell price is set aside for returns. Also rounded up.
- net1099-88-65-22-659-4$2.61What one unit really earns: sell price minus marketplace fee, fulfilment, return reserve, landed cost and on-chain cost. This is the number the agent must report and the contract re-derives.
- marginBpsfloor(261*10000/1099)2374 bps · 23.74%Net as a share of the sell price, rounded down. 2374 bps = 23.74%, against the owner's floor of 18.00%.
- totalCost659+88+65+22+4$8.38All costs per unit added up, with fees taken at this sell price. The true break-even price is a little lower, because fees fall with the price.
0x93f6fb43754a60f6afec7ed6e9c33232fb8983b3ff12f00640d02f1ddd918f89 0x30b03dbaf54acd3f9d0065272d52f366b43faaf6eb04070003f9464ea28d76da What the contract checked
In the order the Solidity runs them. If any one fails, the whole transaction is refused and nothing changes. All 12 passed for this opportunity. Checks the run also tried to break on purpose are marked, with the sentence the contract returned.
-
Caller is the agent Unauthorized
sent by 0x3EC91B…1818, the registered agentOnly the agent can act as agent; only the owner can change policy, payees or withdraw. The owner can only become the agent by replacing it with setAgent, which is on chain.
-
Owner has not paused the vault Paused
vault was runningThe owner can pause every agent action instantly.
-
Quote matches its hash BadQuoteHash
keccak256 of the 11 quote fields = 0xdfbb50d1…25b1The agent commits a hash of the quote it used; submitting a different quote is refused.
Tried in the run. The quote hash does not match the quote that was submitted. Rejected. -
Observation is not from the future FutureObservation
observed at or before the block timeThe agent cannot claim an observation from the future to defeat the freshness check.
-
Opportunity is new Replay
oppHash 0x93f6fb43…8f89 derived on-chain, not seen beforeThe opportunity id is keccak256(productHash, quoteHash, snapshotHash), so the same id cannot be committed twice, and each commit is bounded by the per-trade and daily caps. The agent supplies the snapshot hash, so a new snapshot hash is a new id: the caps, not the id, limit how often the same quote can be committed.
Tried in the run. This exact opportunity was already committed. Replay blocked. -
Quote is inside the freshness window Stale
inside the owner's 180s window, by the observation time the agent suppliedThe age check uses the observation time the agent supplies, so it limits how stale the agent’s own claim can be, not the real age of the source data. The snapshot hash binds the data that was shown.
Tried in the run. Quote is 781s old; the policy allows 180s. Rejected. -
Inputs inside hard bounds OutOfBounds
350 units; every quote field is small enough that arithmetic cannot wrapEvery quote field and unit count has a hard upper bound, so arithmetic cannot overflow or wrap.
-
Spend under the per-trade cap SpendCap
$2,306.50 (659¢ × 350) ≤ $2,500.00Spend is derived as landed cost × units, never supplied by the agent, then compared with the owner’s cap.
Tried in the run. Spend $2,636.00 exceeds the per-execution cap of $2,500.00. Rejected. -
Commitments under the daily cap DailyCap
$2,306.50 committed today ≤ $5,000.00A running total of new commitments per UTC day; the agent cannot split a big purchase into many small ones to dodge it. It limits commitments, not cash-out: opportunities do not expire, so commitments banked on earlier days can be funded later. Across a midnight, up to twice the cap can be committed within 24 hours. What actually leaves the vault is bounded by the vault’s free balance; each lot is at most the per-trade cap.
-
Agent’s claimed economics equal the derived ones MathMismatch
claimed $2.61 and 23.74% = derived $2.61 and 23.74%The contract recomputes net and margin from the quote. If the agent’s claim differs by even one cent it reverts and shows both numbers.
Tried in the run. Agent claimed net $3.90 but the contract derived $2.61 from the quote. Rejected. See the reverted transaction. -
Net is positive NonPositiveNet
$2.61 per unit > $0.00A loss-making opportunity is never committed.
-
Margin clears the floor MarginTooLow
23.74% ≥ 18.00%Net margin below the owner’s floor is refused. Rounding always favours caution.
Not on this list: whether the two listings are the same product. That is the identity gates’ job and it happens off-chain; the contract only records a hash of the product. All guardrails
What the agent did not choose FIXED SNAPSHOT
The agent’s first proposal passed every gate and every limit, so no proposal was rejected in this run. The other 7 of the 10 offers failed an identity gate; the agent’s own reasoning names the tempting ones it skipped. Each tile shows the first failing gate. Full evidence per offer
- shopee-6120REJECTED$3.60model: galaxy s25
- shopee-9902REJECTED$3.80magsafe: missing
- lazada-2207REJECTED$4.10model: iphone 15 pro
- lazada-3051REJECTED$4.50model: Pro Max
- shopee-7710REJECTED$5.20pack: 2
- shopee-8841LOCKED$5.90Chosen buy. iPhone 16 Pro
- lazada-4410LOCKED$10.59iPhone 16 Pro
- google-5501LOCKED$10.99Chosen sell. iPhone 16 Pro
- google-5503REJECTED$11.99model: Pro Max
- google-5502REJECTED$12.49model: iphone 15 pro