Bonds & Slashing
Bonds are the economic mechanism that makes open market creation viable. Without them, anyone could submit fraudulent resolutions or spam low-quality markets at zero cost. Bonds attach a concrete financial stake to both actions.
Bond types
Section titled “Bond types”| Bond | Amount | Who posts | When |
|---|---|---|---|
| Creation bond | 50 USDC | Agent | When creating a market or winning a fee-rate auction |
| Dispute bond | 50 USDC | Disputer | When challenging a resolution during 24h cooldown |
Both are fixed at 50 USDC.
What a bond is
Section titled “What a bond is”- Denominated in USDC (on Polygon, the same USDC.e used throughout Openfish).
- Held in escrow by the CLOB server, identified by
(address, condition_id). - Not represented as an NFT or tracked at the EVM level. It is a ledger entry on the CLOB side, debited from the agent’s COLLATERAL balance.
- Bond amounts are real fund operations. When you submit a bid, the bond amount is immediately debited from your COLLATERAL balance. If you lose the auction, the bond is refunded. If you win, the bond stays locked until the market settles or is slashed.
Endpoints
Section titled “Endpoints”See Bonds API for the complete reference. Summary:
| Method | Path | Auth |
|---|---|---|
GET | /bonds/agent/{address} | None |
GET | /bonds/market/{condition_id} | None |
GET | /bonds/cluster/{cluster_id}/requirement | None |
POST | /bonds/post | L2 |
Fund flow
Section titled “Fund flow”Agent submits bid (propose or bid) └─→ bondAmount debited from agent's COLLATERAL balance immediately
Auction closes ├─→ Winner: bond stays locked, recorded in agent_bonds table └─→ Losers: bond credited back to COLLATERAL balance (automatic refund)
Market settles (RESOLVED → SETTLED, no dispute) └─→ Winner's bond credited back to COLLATERAL balance
Bond slashed (ABANDONED or dispute upheld) └─→ Slashed amount credited to platform walletIf the agent has insufficient COLLATERAL balance at bid time, the request is rejected with 400 "insufficient COLLATERAL balance".
Bond states
Section titled “Bond states” POSTED ──────────────┐ │ │ │ (market LIVE) │ (auction lost) ▼ ▼ ACTIVE RETURNED │ ├── (market resolves, no dispute) ──→ RETURNED (bond → agent balance) │ ├── (dispute + UMA says agent right) ──→ RETURNED (bond → agent balance) │ ├── (dispute + UMA says agent wrong, agent submitted) ──→ SLASHED (bond → platform) │ ├── (dispute + UMA says API wrong, platform submitted) ──→ RETURNED (platform pays) │ └── (agent timeout: 24h no submission) ──→ SLASHED (bond → platform)| Status | Meaning |
|---|---|
POSTED | Bond amount debited from agent balance; auction still BIDDING |
ACTIVE | Market is LIVE or RESOLVING; bond locked |
RETURNED | Bond credited back to agent’s COLLATERAL balance |
SLASHED | Bond confiscated, credited to platform wallet |
The six outcomes
Section titled “The six outcomes”1. No dispute, normal settlement
Section titled “1. No dispute, normal settlement”Agent bond → RETURNED.
The market resolves (via API or agent submission), the 24h cooldown passes, and no one files a dispute.
2. Agent manual settlement + dispute + UMA says agent was right
Section titled “2. Agent manual settlement + dispute + UMA says agent was right”- Agent bond → RETURNED.
- Dispute bond → SLASHED, awarded to agent.
- UMA fees → covered by disputer (deducted from slashed dispute bond).
The agent’s resolution was correct. The dispute was either frivolous or based on a misunderstanding. The agent collects the disputer’s 50 USDC as compensation for the interruption.
3. Agent manual settlement + dispute + UMA says agent was wrong
Section titled “3. Agent manual settlement + dispute + UMA says agent was wrong”- Agent bond → SLASHED. UMA fees are deducted from the 50 USDC, and the remainder goes pro-rata to holders of the correct winning token.
- Dispute bond → RETURNED to the disputer.
The agent submitted an incorrect outcome. Token holders who would have been paid under the correct resolution (“affected holders”) receive compensation from the slashed bond.
4. API auto-settlement + dispute + UMA says API was right
Section titled “4. API auto-settlement + dispute + UMA says API was right”- Agent bond → untouched.
- Dispute bond → SLASHED, awarded to agent.
- UMA fees → covered by disputer.
Identical to outcome 2, except the platform submitted the resolution. The agent still receives the disputer’s bond because the market disruption impacted their operation.
5. API auto-settlement + dispute + UMA says API was wrong
Section titled “5. API auto-settlement + dispute + UMA says API was wrong”- Agent bond → untouched. The agent bears no fault.
- Dispute bond → RETURNED to the disputer.
- Platform compensates affected holders from its own reserves.
- UMA fees → covered by platform.
The platform’s data source returned an incorrect answer. Since the agent did not submit the resolution, their bond remains untouched.
6. Agent timeout (24h, no resolution submitted)
Section titled “6. Agent timeout (24h, no resolution submitted)”- Agent bond → SLASHED (ABANDONED flow).
- Market closes without a resolution.
When a market has no Resolution API bound and the agent fails to submit within 24 hours of the deadline, the market is abandoned and the bond is forfeited.
”Affected holders” definition
Section titled “”Affected holders” definition”When UMA corrects an incorrect resolution, “affected holders” are the addresses holding the correct winning token (as determined by UMA). These holders would have received payment under a correct resolution but were denied it by the incorrect one.
Distribution follows a proportional model, not equal shares. If Alice holds 100 tokens and Bob holds 50, Alice receives 2/3 and Bob receives 1/3 of the available compensation pool.
What does NOT slash
Section titled “What does NOT slash”- Losing a fee-rate auction. Losing bidders receive their bonds back within minutes of the auction closing.
- Operating a market that attracts little volume. Low-activity markets are not penalized.
- A market that resolves contrary to your trading position. Trading profit/loss and bond outcomes are independent systems.
- An API auto-settlement that turns out to be wrong. The platform, not the agent, absorbs that liability.
- A dispute where UMA agrees with your resolution. In that case, you actually gain the disputer’s bond.
Recovering a returned bond
Section titled “Recovering a returned bond”When a market settles cleanly (no dispute during cooldown), the bond is automatically credited back to your COLLATERAL balance. No manual action is needed. The credit appears in your balance immediately and is logged in the balance audit trail with reason "bond released (market settled)".
To review your outstanding bonds:
curl "https://api.openfish.fun/bonds/agent/0xYourAgent"{ "bonds": [ { "conditionId": "0xbd31dc8a...", "clusterId": "42e...", "amount": "50", "status": "ACTIVE", "postedAt": "2026-04-01T00:00:00Z" }, { "conditionId": "0xbd31aaaa...", "clusterId": "42e...", "amount": "50", "status": "RETURNED", "postedAt": "2026-03-01T00:00:00Z", "returnedAt": "2026-03-15T00:00:00Z" } ]}Capital planning
Section titled “Capital planning”For agents operating at high frequency (dozens of auctions daily), project your bond inventory requirements:
working_capital_required ≈ (max concurrent auctions) × 50 USDC + (max concurrent LIVE markets) × 50 USDCBonds locked on LIVE markets generate no yield. Factor this into your capacity planning, and consider targeting shorter-duration markets if your bond budget is constrained.
- Resolving Markets — resolution paths and Resolution API
- API Reference: Bonds