Quick Start
Create a Venue
Register your venue on-chain by calling createVenue() with your fee structure, oracle settings, and access control configuration.
What is a Venue?
A venue is your on-chain identity on the OddMaki protocol. It stores your fee configuration, oracle settings, and access control rules. Every market created on your venue, every trade executed, and every fee collected is tied to your venue ID.
How to Create a Venue
You can create a venue in two ways:
- Through the OddMaki protocol app UI — connect your wallet and use the guided flow
- Via the SDK — programmatically call
createVenue()for full control
Using the SDK
import { createOddMakiClient } from '@oddmaki/sdk';
const client = createOddMakiClient({
chainId: 8453, // Base
});
const tx = await client.venue.createVenue({
name: 'My Prediction Market',
venueFee: 100, // 1% (in basis points)
creatorFee: 50, // 0.5%
marketCreationFee: 0, // free to create markets
feeRecipient: '0xYourAddress',
tickSize: 1, // minimum price increment (in cents)
umaReward: 5000000, // 5 USDC reward for correct assertions
umaBond: 10000000, // 10 USDC bond for assertions
umaLiveness: 7200, // 2 hour challenge window (in seconds)
tradingAccessControl: '0x0000000000000000000000000000000000000000', // open to all
marketCreationAccessControl: '0x0000000000000000000000000000000000000000', // open to all
});
const venueId = tx.venueId; // uint256 — your venue identity
console.log(`Venue created with ID: ${venueId}`);Parameters Explained
| Parameter | Type | Description | Recommended Default |
|---|---|---|---|
name | string | Display name for your venue | Your brand name |
venueFee | uint256 | Your revenue per trade, in basis points (1 bp = 0.01%) | 100 (1%) |
creatorFee | uint256 | Fee paid to market creators, incentivizes quality markets | 50 (0.5%) |
marketCreationFee | uint256 | One-time fee to create a market on your venue | 0 |
feeRecipient | address | Where venue fees are sent | Your wallet |
tickSize | uint256 | Minimum price increment in cents | 1 |
umaReward | uint256 | USDC reward for correct oracle assertions (6 decimals) | 5000000 (5 USDC) |
umaBond | uint256 | USDC bond required to make an assertion (6 decimals) | 10000000 (10 USDC) |
umaLiveness | uint256 | Challenge window duration in seconds (min 7200) | 7200 (2 hours) |
tradingAccessControl | address | Contract that gates who can trade. 0x0 = open to all | 0x0 |
marketCreationAccessControl | address | Contract that gates who can create markets. 0x0 = open to all | 0x0 |
What You Get Back
A venue ID (uint256) — this is your unique identity on the protocol. You'll need this ID to configure your frontend and for all venue operations.
The venue is immediately active. Markets can be created and trades can happen as soon as the transaction confirms.
Next Step
Now that your venue exists on-chain, let's deploy the frontend app →