Skip to main content

Overview

Bison offers two environments:
EnvironmentAPI URLChains
Mainnethttps://api.bison.marketsBase, BSC
Testnethttps://testnet-api.bison.marketsBase Sepolia, BSC Testnet

Withdrawal Flow

Withdrawals use a two-step process:
1

Schedule Withdrawal

Request a withdrawal by signing a message (no gas required). Your withdrawal enters the queue with status pending.
2

Wait for Processing

The system processes withdrawals on a schedule. Status transitions: pendingfill-lockedunclaimed.
3

Claim On-Chain

Once your withdrawal shows unclaimed, call claimWithdraw() to receive USDC in your wallet (requires gas). If you have multiple unclaimed withdrawals, they’re claimed together in one transaction.

Processing Times

EnvironmentTime to Claimable
Testnet≤5 minutes (automatic)
Mainnet1-2 business days
On testnet, withdrawals are processed automatically every 5 minutes. On mainnet, withdrawals are processed daily.

Code Example

The SDK code is identical for both environments—only the processing time differs:
import { createBisonClient } from '@bison-markets/sdk-ts';

// Choose your environment
const client = createBisonClient({ 
  baseUrl: 'https://testnet-api.bison.markets' // or api.bison.markets
});

// Step 1: Schedule withdrawal (signature only, no gas)
const withdrawal = await client.scheduleWithdraw({
  walletClient,
  userAddress: '0x...',
  chain: 'base',
  amountUusdc: 50_000_000, // 50 USDC
});

console.log('Scheduled:', withdrawal.status); // "pending"

// Step 2: Wait for processing, then check status
const pending = await client.getPendingWithdraws({ userAddress: '0x...' });

if (pending.totalAvailableUnclaimed > 0) {
  // Step 3: Claim on-chain
  const txHash = await client.claimWithdraw({
    walletClient,
    publicClient,
    userAddress: '0x...',
    chain: 'base',
  });
  console.log('Claimed:', txHash);
}

Environment Differences

FeatureMainnetTestnet
USDCReal USDCMockUSDC (mintable)
Withdrawal processing1-2 business days≤5 minutes
Kalshi APIMainnet KalshiDemo Kalshi
Chain IDsBase (8453), BSC (56)Base Sepolia (84532), BSC Testnet (97)

Getting Testnet Tokens

To get started on testnet:
  1. Get testnet ETH from a faucet:
  2. The MockUSDC contract allows anyone to mint tokens for testing
Testnet tokens have no real value. Never send real funds to testnet addresses.