Become a market maker
A market maker (historically called a filler) responds to short-lived RFQ quote windows with on-chain-verifiable signed offers.
- Options RFQ: sign a FixedPackage offer and the taker fills with
executeFixedPackageIntent. InventoryexecuteIntent, Dutch, and Authority are separate paths. On-chain fill modes - Borrow RFQ: coming soon. Lend against opshun collateral via MarginRFQCore. Not live; do not build production bots against Borrow feeds yet.
Same access model for both when Borrow ships.
Build bots with @opshuns/sdk (../sdk): startMakerSession, signRfqPackageOffer, placeBid. Guide: TypeScript SDK.
Access model
Maker rights come from maker organizations, not from bonding to an APIBond contract.
Applicant
→ /makers form (Web3Forms)
System admin
→ creates maker org (admin wallet address)
Organization owner / manager
→ SIWE logs in, issues member API keys, may transfer admin
Member bot / wallet
→ uses SIWE token or API key to post offers + join streams
An address has maker rights when it is:
- an organization admin, owner, or manager, or
- holds at least one enabled member key
GET /api/me then returns tier: "maker" with role: "admin" | "owner" | "manager" | "member".
Apply
Use the trading app form at /makers. Applications are submitted through Web3Forms (not the Opshuns API). A system admin creates the org before GET /api/me returns tier: "maker".
Admin setup
System admins (seeded via ADMIN_ADDRESS, managed under /admin) create orgs:
POST /api/admin/maker-organizationsPUT /api/admin/maker-organizations/:id(reassign admin)
Org admin: issue keys
Authenticated as the org owner/manager. Adding or removing member addresses, and transferring admin, also require a wallet signature from that admin:
| Method | Path |
|---|---|
GET | /api/maker/keys |
POST | /api/maker/keys |
DELETE | /api/maker/keys/:id |
PUT | /api/maker/organization |
Signed plaintext (personal_sign) starts with Opshuns maker admin action and includes Action: add_member | remove_member | transfer_admin. See Authentication.
Browser UI: trading app /makers: apply via Web3Forms (with hCaptcha), SIWE as a maker wallet, and (owner/manager) add or remove member addresses or transfer admin.
Legacy
POST /api/premium/activate is removed (410). Do not use SignUp bond stakes for API maker access.
Exclusive-fill fill bond minima still come from GET /api/bond-requirements. Orders & exclusive fills.
End-to-end maker checklist
- Apply at
/makers(Web3Forms), then wait for the org to be created. - SIWE login or store the API key securely.
- Read networks for mothership / CLOB addresses on your chain.
- If you skip the Opshuns auction and settle yourself: Settle matched intents with your own RFQ. Book-only: Call the CLOB directly.
- Register pubsub and join
quotes:<chain_id>:requests. - On each request, price → EIP-712 sign →
POSToffer. - Keep inventory / approvals ready so takers can settle on-chain.
Dev bootstrap
With mix dev.local, a fake market maker is started as a maker org admin and posts signed offers on Anvil. Useful for exercising the trading UI, not for production pricing.
Next
- Fill options RFQ quotes
- On-chain fill modes. FillMatched, Dutch, Authority
- TypeScript SDK:
@opshuns/sdkfrom../sdk - CLOB
- Respond to Borrow RFQs. coming soon
- Borrow fees. coming soon
- EIP-712 signing