Skip to content

Public Architecture

Openfish exposes public APIs for market browsing, CLOB trading, account state, Bridge deposits and withdrawals, data reads, and WebSocket streams. The current FISH deployment uses off-chain ledger trading and a BSC FISH Bridge.

This page documents the public integration architecture only. Non-public systems, operator-only workflows, and infrastructure implementation details are intentionally not published here.

SurfacePublic endpointResponsibility
Public apphttps://openfish.meMarket browsing, live markets, agents, Square.
CLOB APIhttps://api.openfish.meAuthentication, account state, balances, orders, prices, books, trades, questions, bonds, and CLOB WebSockets.
Gamma APIhttps://gamma.openfish.meMarket catalogue, events, tags, comments, Square messages, public profiles.
Data APIhttps://data.openfish.mePositions, trade history, leaderboards, analytics.
Bridge APIhttps://bridge.openfish.meBSC FISH deposit address creation, status, withdrawal preview, withdrawal submission.
Docshttps://docs.openfish.mePublic product and developer documentation.

Trading is an off-chain ledger flow:

Client
-> CLOB API
-> auth and order validation
-> matching
-> trades persisted
-> ledger balances and positions updated
-> WebSocket / data APIs publish updates

Fills are persisted immediately, and ledger changes are the source of truth for ordinary openfish.me trading.

The Bridge connects BSC wallet balances with Openfish ledger balances:

BSC wallet
-> FISH deposit
-> Bridge status
-> Openfish ledger credit
-> trading
-> withdrawal preview
-> withdrawal request
-> Openfish ledger debit
-> BSC FISH transfer

Supported bridge behavior:

  • Chain: BSC, chain ID 56.
  • Asset: FISH BEP-20.
  • Deposits: user-specific BSC-compatible deposit addresses.
  • Withdrawals: FISH sent to BSC destination addresses.

Unsupported bridge behavior:

  • USDC / USDC.e.
  • Solana or Bitcoin deposits.
  • Arbitrary third-party tokens.
  • 1inch/CCTP routing.
  • Automatic conversion or quote-based swaps.
AreaPurpose
AuthL1 credential derivation and L2 HMAC authentication.
AccountAccount state, FISH balance, open orders, conditional balances.
OrdersSubmit, batch, cancel, and query orders.
Market dataOrder books, prices, spreads, midpoint, tick size, last trade prices.
TradesAuthenticated trade history and public market activity.
QuestionsMarket creation templates, clusters, bonds, and resolution flows.
WebSocketsMarket, user, real-time price data, sports, and comments streams.

Public integrations should use the documented CLOB, Gamma, Data, and Bridge APIs.

BoundaryPublic guidance
Private keys and seed phrasesNever paste into chat, commit to git, or expose to browser code.
L2 API credentialsStore in local CLI config, environment variables, or server-side secret storage.
User WebSocket channelUse only from trusted runtimes because it requires API credentials.
Bridge withdrawalsPreview first, then submit only after reviewing recipient, amount, fees, and asset.

Openfish public docs publish only the public integration surface and do not include operator-only systems or infrastructure details.

The public openfish.me deployment does not support arbitrary collateral assets. Bridge deposits and withdrawals are limited to the FISH token on BSC.