Skip to main content
All contracts are deployed on BNB Chain Testnet (Chain ID 97) and verified on BSCScan.

Complete Contract List

Core Contracts

ContractAddressPurpose
ConditionalTokens0x1E98E6F28A44c3F7a8Ce8ff93312eB32d3782841ERC1155 token factory for YES/NO positions
WrappedCollateral0xc209DAE9D9Eda311c80a105420f849f32BB15c54Wraps USDT into wUSDT for trading
CTFExchange0xA78dFb49Fc0A2907e8991a28a7F65218b4A3F40dMain orderbook settlement contract
TestUSDT0xe8eDFeF8d10F960053927E10732e11000D23c8c0Testnet USDT with faucet function

Oracle Contracts

ContractAddressPurpose
UmaCompatibleCtfAdapter0x1Ea9a6086724D8e15933b911b2095aa249475D48Oracle adapter for binary markets
UmaCtfAdapterNegRisk0xa92DDe2473b02eDc02DAB845518A68B3EaBbe1BbOracle adapter for multi-outcome markets

Multi-Outcome (NegRisk) Contracts

ContractAddressPurpose
NegRiskAdapter0xA3d57621d45aB0b83c993c4852abF4Eaece46B8AAdapter for multi-outcome betting
NegRiskOperator0x952dcD3707c018Df1634EeA56d868F4b5bf988E6Operator for NegRisk positions
NegRiskCtfExchange0x7019ef0cd211078068E37968F49f6d5dAbDc8727Exchange for multi-outcome markets
NegRiskFeeModuleV20x2dAf69C6d704AC024E3E8b1068D240cDE9c24369Fee calculation for NegRisk

Helper Contracts

ContractAddressPurpose
RegisterTokenHelper0xA89FB30D4A4E7236AdD685af21Ac3e6108a94C0aRegisters new token types
Mayybee uses a pure CLOB (Central Limit Order Book) model. There is no AMM or FixedProductMarketMaker contract.

Contract Deep Dive

ConditionalTokens

The core contract that creates conditional tokens representing market outcomes. Key Functions:
FunctionDescription
prepareConditionCreates a new condition for a market
splitPositionConverts collateral into YES and NO tokens
mergePositionsConverts YES and NO back to collateral
redeemPositionsClaims winnings after resolution
Token Creation Flow: Token ID Calculation:
collectionId = keccak256(conditionId, indexSet)
tokenId = keccak256(collateralToken, collectionId)

Split Operation

Convert wUSDT into equal amounts of YES and NO tokens:

Merge Operation

Convert equal amounts back to collateral:
Merge requires equal amounts of YES and NO tokens.

Redeem After Resolution

When the oracle reports the outcome:

WrappedCollateral

Converts USDT to wUSDT for use with ConditionalTokens. Why Wrap?
  • Standard USDT is not compatible with ConditionalTokens
  • wUSDT maintains 1:1 peg with USDT
  • Required for all trading operations
Wrap/Unwrap Flow:

CTFExchange

The main contract for settling trades from the orderbook. Order Structure:
FieldTypeDescription
saltuint256Random unique number
makeraddressOrder creator
signeraddressSignature provider
takeraddressSpecific counterparty or 0x0
tokenIduint256Token to trade
makerAmountuint256Amount maker provides
takerAmountuint256Amount maker receives
expirationuint256Order expiry timestamp
nonceuint256For cancellation
feeRateBpsuint256Fee in basis points
sideuint80 for BUY, 1 for SELL
signatureTypeuint81 for EIP-712
Settlement Flow:

Gas Costs

All gas is paid by the Operator wallet, not users.
OperationGas UnitsCost on BSC
fillOrderapproximately 150,000approximately $0.02
splitPositionapproximately 200,000approximately $0.03
mergePositionsapproximately 180,000approximately $0.025
approveapproximately 50,000approximately $0.007

Full Contract Addresses (JSON)

For integration purposes:
{
  "chainId": 97,
  "network": "BSC Testnet",
  "contracts": {
    "conditionalTokens": "0x1E98E6F28A44c3F7a8Ce8ff93312eB32d3782841",
    "wrappedCollateral": "0xc209DAE9D9Eda311c80a105420f849f32BB15c54",
    "ctfExchange": "0xA78dFb49Fc0A2907e8991a28a7F65218b4A3F40d",
    "umaCompatibleCtfAdapter": "0x1Ea9a6086724D8e15933b911b2095aa249475D48",
    "negRiskAdapter": "0xA3d57621d45aB0b83c993c4852abF4Eaece46B8A",
    "negRiskOperator": "0x952dcD3707c018Df1634EeA56d868F4b5bf988E6",
    "negRiskFeeModuleV2": "0x2dAf69C6d704AC024E3E8b1068D240cDE9c24369",
    "registerTokenHelper": "0xA89FB30D4A4E7236AdD685af21Ac3e6108a94C0a",
    "negRiskCtfExchange": "0x7019ef0cd211078068E37968F49f6d5dAbDc8727",
    "umaCtfAdapterNegRisk": "0xa92DDe2473b02eDc02DAB845518A68B3EaBbe1Bb",
    "testUSDT": "0xe8eDFeF8d10F960053927E10732e11000D23c8c0"
  },
  "operator": "0x7aDB49aE5DF789EE9B9F82614609967cCe4eE23d"
}