OddMaki
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:

  1. Through the OddMaki protocol app UI — connect your wallet and use the guided flow
  2. 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

ParameterTypeDescriptionRecommended Default
namestringDisplay name for your venueYour brand name
venueFeeuint256Your revenue per trade, in basis points (1 bp = 0.01%)100 (1%)
creatorFeeuint256Fee paid to market creators, incentivizes quality markets50 (0.5%)
marketCreationFeeuint256One-time fee to create a market on your venue0
feeRecipientaddressWhere venue fees are sentYour wallet
tickSizeuint256Minimum price increment in cents1
umaRewarduint256USDC reward for correct oracle assertions (6 decimals)5000000 (5 USDC)
umaBonduint256USDC bond required to make an assertion (6 decimals)10000000 (10 USDC)
umaLivenessuint256Challenge window duration in seconds (min 7200)7200 (2 hours)
tradingAccessControladdressContract that gates who can trade. 0x0 = open to all0x0
marketCreationAccessControladdressContract that gates who can create markets. 0x0 = open to all0x0

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 →