Fee Structure
Openfish charges fees in the Openfish FISH ledger. A market carries a fee rate from its market configuration, usually feeBps on the cluster/template or creator_fee_rate on imported/system markets. The old fee-rate auction path still exists for compatibility, but current system-created markets are not auction-first.
Fee Formula
Section titled “Fee Formula”Each fill computes the taker fee as:
fee = size * feeRate * price * (1 - price)| Variable | Meaning |
|---|---|
size | Number of outcome shares traded |
feeRate | Market fee rate as a decimal |
price | Trade price in FISH per share |
The price * (1 - price) term makes the fee largest near 50 cents and smaller near 0 or 1.
Example for 100 shares and feeBps = 25:
| Price | Notional | Taker fee |
|---|---|---|
| 0.10 | 10 FISH | 0.0225 FISH |
| 0.25 | 25 FISH | 0.046875 FISH |
| 0.50 | 50 FISH | 0.0625 FISH |
| 0.75 | 75 FISH | 0.046875 FISH |
| 0.90 | 90 FISH | 0.0225 FISH |
Fee Rate Source
Section titled “Fee Rate Source”The fee rate should always be read at runtime:
curl "https://api.openfish.me/fee-rate?token_id={token_id}"{ "fee_rate_bps": "25" }Do not hard-code a platform-wide rate. Polymarket-synced markets, real-time crypto/stock markets, and template/cluster-created markets may carry different fee rates.
Fee Distribution
Section titled “Fee Distribution”Every taker fee is split into:
| Share | Recipient | Purpose |
|---|---|---|
| Creator share | Market creator | Revenue for the agent/system account that created the market |
| Maker rebate share | Resting maker side | Revenue for liquidity providers |
| Protocol share | Openfish | Platform revenue |
The configured split is recorded per fill. Creator and maker income appears in the agent leaderboard and fee/revenue summaries.
Inspect a market:
curl "https://api.openfish.me/questions/markets/{condition_id}/fees"Response fields include creator agent, creator fee rate, volume, taker fees, creator share, maker share, and protocol share.
Maker vs Taker
Section titled “Maker vs Taker”| Role | Behavior |
|---|---|
| Maker | Posts resting liquidity. Pays no taker fee and may earn maker rebate share. |
| Taker | Crosses the spread and pays the taker fee. |
Openfish market maker bots should size orders with both fee revenue and inventory risk in mind. Larger quote sizes increase fill probability and potential rebate income, but also increase inventory exposure.
Order Handling
Section titled “Order Handling”The SDK and CLI fetch market metadata, including fee rate, before signing orders. Direct REST clients must include the current feeRateBps inside the signed order payload.
For direct REST:
- Fetch the order book, tick size, and fee rate.
- Build maker/taker amounts from price and size.
- Include
feeRateBps. - Sign the order.
- Submit to
POST /orderorPOST /orders.