Quote the same prediction market on two venues at once: rest BUY quotes on Limitless (the maker side, where you capture the spread and earn maker rebates) and hedge any fill straight back on Polymarket so your net position stays ~flat. You’re earning the cross-venue spread, not taking a directional bet. This ships as theDocumentation Index
Fetch the complete documentation index at: https://docs.limitless.exchange/llms.txt
Use this file to discover all available pages before exploring further.
cross-market-mm strategy in
agents-starter —
a runnable skill you can take from clone → dry-run → live → flat. Its
SKILL.md
is the canonical guide; this page is the Limitless-framed quickstart.
This is for traders, builders, and AI agents running their own
market-making bot. Limitless is the venue you quote on; Polymarket is a
secondary hedge venue with a one-time setup. If you’re building a platform
where other users trade through your product, see
Programmatic API instead.
How it works
The wallet model — one key
Everything is controlled by one dedicated EOA private key. That key signs on both chains; funds live in a few places:| Identity | What it is | Holds |
|---|---|---|
Your EOA (PRIVATE_KEY) | the key you control | Base USDC + a little ETH (Limitless collateral + gas) |
| Limitless | trades from the EOA directly (EIP-712) | — (uses the EOA’s USDC) |
| Polymarket deposit wallet | a key-less ERC-1271 proxy derived from your EOA | pUSD (the hedge collateral) |
Polymarket’s CLOB rejects orders from a Gnosis Safe maker, so even existing
Safe users trade via the deposit-wallet flow (signature type 3). pUSD must
live in the deposit wallet — it’s a separate address from your Polymarket
UI login, so it won’t show in the UI.
npm run cross-market-mm:status is how you
see it.Quickstart — dry-run in under 10 minutes (no real money)
Watch the full cross-venue loop — quote on Limitless, compute and log the Polymarket hedge, return delta-flat — signing nothing and funding nothing. You only need a Limitless scoped HMAC token for this.Pick an equivalent pair
Go live (one-time, ~20–30 minutes — honest)
Going live means funding two chains and deploying the Polymarket deposit wallet. Most of the time is moving funds, not running commands.Deploy the deposit wallet (gasless)
Add a Polymarket relayer key to Derives + deploys your deposit wallet and approves pUSD (buy) and CTF
(sell) on Polymarket’s v2 exchanges. Prints the address — set it as
.env (RELAYER_API_KEY +
RELAYER_API_KEY_ADDRESS), then:poly_funder with poly_signature_type: 3.Fund
Base: USDC + ~$1–2 ETH → your EOA. Polygon: pUSD → the
deposit-wallet address (not your EOA / Safe / UI login). Confirm with
npm run cross-market-mm:status.Approve the Limitless exchange (one-time, per exchange)
Lifecycle commands
| Command | What it does |
|---|---|
npm run cross-market-mm:find-pairs | Liquidity-ranked shortlist of equivalent cross-venue pairs |
npm run cross-market-mm:setup-poly | One-time: deploy the Polymarket deposit wallet + approvals |
npm run cross-market-mm:preflight | Validate auth, funding, sig type, approvals, pairs (gate before live) |
npm run cross-market-mm | Run the bot (DRY_RUN by default) |
npm run cross-market-mm:status | Cross-venue portfolio: Limitless + the deposit wallet’s pUSD/positions + net delta |
npm run cross-market-mm:close | Exit to flat on both venues |
npm run cross-market-mm:analyze | Summarize a run (orders, fills, how flat it stayed, hedges) |
Safety
- Loss circuit-breaker (
max_loss_usd, default $10): halts on drawdown. - Flatten on stop: Ctrl-C or a tripped breaker cancels all orders and sells inventory to flat on both venues — a stop never leaves unhedged directional risk.
- Settled reads: fills and hedges re-read a settled position before acting, so a lagged read can’t double-fill or double-hedge.
- Dedicated wallet, small
order_size,DRY_RUNdefault. If anything looks wrong: halt, flatten, checkstatus.
Economics & rewards
Your Limitless quotes are maker liquidity, and makers pay no Limitless fee (fees apply to takers only). Your only direct cost is the Polymarket FAK hedge’s taker fee. Revenue comes from three places:- Cross-venue spread — the margin you quote inside the Polymarket book, captured when both legs fill.
- Maker rebates — when a taker fills your resting order, a share of their taker fee is rebated to makers pro-rata, paid daily in USDC. Only executed fills earn. Current config rebates 100% of eligible taker fees on Daily, Hourly Crypto, and 15-minute Crypto markets.
- LP rewards — daily USDC for orders resting within a spread of the midpoint, above a per-market minimum size — paid for quote presence, not fills. Closer to mid + more size = larger share.
To actually earn the reward programs, size up and target eligible markets.
order_size: 5 is a smoke-test size — below typical LP-reward minimums and
too small for meaningful rebate credit. Short-window crypto (Hourly /
15-minute) is both 100%-rebate-eligible and the cleanest cross-venue match.
Reward parameters are the program’s current config and can change.Honest caveats
- You need liquidity on both venues at once — Limitless takers to fill
your maker quotes, and a Polymarket book to hedge into. The venues don’t
always overlap; the cleanest matches are crypto price markets, recurring macro
prints, and neg-risk winner markets (sports
finals, elections).
find-pairsranks candidates, but you confirm the resolution criteria match. - The binding constraint is fill rate, not fees. Rebates and LP rewards only pay where your maker liquidity is actually used — eligible markets with real taker flow on both venues. Far-dated winner futures look balanced but trade thinly; short-window crypto is where the flow and the eligibility line up.
Learn more
Build a trading agent
The single-venue starter and the four built-in Limitless strategies.
Authentication
Scoped HMAC tokens — the Limitless credential this skill uses.
Maker rebates & LP rewards
Daily USDC for maker liquidity — the real profit engine when sized to qualify.
Migrate from Polymarket
Concept + endpoint mapping if you’re coming from Polymarket.
SKILL.md,
QUICKSTART.md,
GO-LIVE.md,
DEMO.md.