This document contains all smart contract addresses for the Limitless Exchange on Base (Chain ID: 8453).
The Conditional Tokens Framework (CTF) contract that manages outcome token positions:
| Contract | Address |
|---|---|
| Conditional Tokens | 0xc9c98965297bc527861c898329ee280632b76e18 |
Limitless supports multiple trading venue versions for both simple CLOB markets and NegRisk grouped markets. Each market's venue object (from GET /markets/{slug}) indicates which version to use.
Standard prediction markets with YES/NO outcomes.
| Contract | Address |
|---|---|
| CTF Exchange | 0xa4409D988CA2218d956BeEFD3874100F444f0DC3 |
| Fee Module | 0x6d8A7D1898306CA129a74c296d14e55e20aaE87D |
| Contract | Address |
|---|---|
| CTF Exchange | 0xF1De958F8641448A5ba78c01f434085385Af096D |
| Fee Module | 0xEECD2Cf0FF29D712648fC328be4EE02FC7931c7A |
| Contract | Address |
|---|---|
| CTF Exchange | 0x05c748E2f4DcDe0ec9Fa8DDc40DE6b867f923fa5 |
| Fee Module | 0x5130c2c398F930c4f43B15635410047cBEa9D6EB |
Grouped markets with multiple related outcomes sharing collateral. NegRisk markets require additional contracts for the adapter, operator, vault, and wrapped collateral.
| Contract | Address |
|---|---|
| NegRisk Adapter | 0xb8DAA4C8C9f690396f671BB601727A4c3741340C |
| NegRisk CTF Exchange | 0x5a38afc17F7E97ad8d6C547ddb837E40B4aEDfC6 |
| NegRisk Fee Module | 0x73FC1B1395bA964FEa8705BfF7eF8EA5C23CC661 |
| NegRisk Operator | 0xAE363abc7B264755e8706D81475C3586D4543992 |
| NegRisk Vault | 0x80307da4d8EA92Cd7a13bBf6B3309431Ca7a1c0E |
| NegRisk Wrapped Collateral | 0x5d6c6a4fea600e0b1a3ab3ef711060310e27886a |
| Contract | Address |
|---|---|
| NegRisk Adapter | 0x7afeB946986211950d17f24176039F12c2aB2436 |
| NegRisk CTF Exchange | 0x46e607D3f4a8494B0aB9b304d1463e2F4848891d |
| NegRisk Fee Module | 0x18B3E1192c01286050A0994Bc26f7226Ae4A483d |
| NegRisk Operator | 0xd2e4a23E57F67a90Bfc999d420fDA16De0Fb2751 |
| NegRisk Vault | 0xd7d245CB2cbE55633e270aF8379E5D4AbA87BD58 |
| NegRisk Wrapped Collateral | 0x428F0FC93221A9957dC667baa07E62d50c6b8c03 |
| Contract | Address |
|---|---|
| NegRisk Adapter | 0x6151EF8368b6316c1aa3C68453EF083ad31E712D |
| NegRisk CTF Exchange | 0xe3E00BA3a9888d1DE4834269f62ac008b4BB5C47 |
| NegRisk Fee Module | 0xfeb646D32a2A558359419a1C9c5dfb47fD92dADb |
| NegRisk Operator | 0xB7D463037836cFf84FA9ddC25c1136756B4b5F61 |
| NegRisk Vault | 0x2eC22ee9381D0b3570cCb5887960DDFd05d210b3 |
| NegRisk Wrapped Collateral | 0xBd8Ff5Ac78A3739037FEaA18278cC157C4798B01 |
When placing orders, you must use the correct exchange address as the verifyingContract in EIP-712 signing:
- Fetch market data:
GET /markets/{slug} - Check market type: Look at
typefield (single-clobvsgroup-negrisk) - Use venue from response: The
venue.exchangefield contains the correct exchange address
const market = await fetch(`https://api.limitless.exchange/markets/${slug}`);
const verifyingContract = market.venue.exchange;| Order Type | Market Type | Approve Token | Approve To |
|---|---|---|---|
| BUY | Simple CLOB | USDC | CTF Exchange |
| BUY | NegRisk | USDC | NegRisk CTF Exchange |
| SELL | Simple CLOB | Conditional Token | CTF Exchange |
| SELL | NegRisk | Conditional Token | NegRisk CTF Exchange AND NegRisk Adapter |
For programmatic use, here is the complete configuration:
{
"conditionalTokens": "0xc9c98965297bc527861c898329ee280632b76e18",
"tradingVenues": {
"simple": {
"v1": {
"ctfExchange": "0xa4409D988CA2218d956BeEFD3874100F444f0DC3",
"feeModule": "0x6d8A7D1898306CA129a74c296d14e55e20aaE87D"
},
"v2": {
"ctfExchange": "0xF1De958F8641448A5ba78c01f434085385Af096D",
"feeModule": "0xEECD2Cf0FF29D712648fC328be4EE02FC7931c7A"
},
"v3": {
"ctfExchange": "0x05c748E2f4DcDe0ec9Fa8DDc40DE6b867f923fa5",
"feeModule": "0x5130c2c398F930c4f43B15635410047cBEa9D6EB"
}
},
"negrisk": {
"v1": {
"negRiskAdapter": "0xb8DAA4C8C9f690396f671BB601727A4c3741340C",
"negRiskCtfExchange": "0x5a38afc17F7E97ad8d6C547ddb837E40B4aEDfC6",
"negRiskFeeModule": "0x73FC1B1395bA964FEa8705BfF7eF8EA5C23CC661",
"negRiskOperator": "0xAE363abc7B264755e8706D81475C3586D4543992",
"negRiskVault": "0x80307da4d8EA92Cd7a13bBf6B3309431Ca7a1c0E",
"negRiskWrappedCollateral": "0x5d6c6a4fea600e0b1a3ab3ef711060310e27886a"
},
"v2": {
"negRiskAdapter": "0x7afeB946986211950d17f24176039F12c2aB2436",
"negRiskCtfExchange": "0x46e607D3f4a8494B0aB9b304d1463e2F4848891d",
"negRiskFeeModule": "0x18B3E1192c01286050A0994Bc26f7226Ae4A483d",
"negRiskOperator": "0xd2e4a23E57F67a90Bfc999d420fDA16De0Fb2751",
"negRiskVault": "0xd7d245CB2cbE55633e270aF8379E5D4AbA87BD58",
"negRiskWrappedCollateral": "0x428F0FC93221A9957dC667baa07E62d50c6b8c03"
},
"v3": {
"negRiskAdapter": "0x6151EF8368b6316c1aa3C68453EF083ad31E712D",
"negRiskCtfExchange": "0xe3E00BA3a9888d1DE4834269f62ac008b4BB5C47",
"negRiskFeeModule": "0xfeb646D32a2A558359419a1C9c5dfb47fD92dADb",
"negRiskOperator": "0xB7D463037836cFf84FA9ddC25c1136756B4b5F61",
"negRiskVault": "0x2eC22ee9381D0b3570cCb5887960DDFd05d210b3",
"negRiskWrappedCollateral": "0xBd8Ff5Ac78A3739037FEaA18278cC157C4798B01"
}
}
}
}-
Always use
venuefrom API: While these addresses are provided for reference, always fetch the currentvenuefrom the market endpoint to ensure you're using the correct version. -
Checksummed addresses: All addresses must be EIP-55 checksummed when used in API requests.
-
Chain ID: All contracts are deployed on Base mainnet (Chain ID: 8453).
-
Version selection: The API automatically provides the correct venue version for each market. You don't need to manually select a version.