Help Center
The Consensus platform,
documented completely.
Everything from your first deposit to 50× leveraged positions — every feature, every formula, every directive, explained clearly.
Max leverage
50×
Loyalty tiers
4 tiers
Sports leagues
12+
Support desk
Support engineers work directly with the trading and infrastructure teams to provide accurate, context-aware responses.
support@besc.services
Available 09:00 – 18:00 UTC
Response time
< 2 hours
Provide your wallet address, order ID, and a screenshot when contacting support — this allows faster diagnosis.
01 — Getting started
From zero to your first trade
Consensus Markets runs on BESC Hyperchain — a high-throughput EVM chain. All trading is gasless on the platform side: you never sign wallet transactions to place orders. Your funds sit in the settlement wallet and are moved on-chain only when you withdraw.
Setup walkthrough
- 1
Create your account
Visit /register and enter your email + password. A confirmation email is sent immediately. - 2
Confirm your email
Click the link in the confirmation email. Check spam if it doesn't arrive within 2 minutes. - 3
Log in and go to Wallet
Navigate to /wallet. Your unique BESC Hyperchain deposit address is generated automatically — no action needed. - 4
Send wUSDC to your deposit address
Send wUSDC from any BESC Hyperchain wallet. The backend scans for transfers every minute and credits your balance automatically. - 5
Start trading
Browse /live for active markets, or the home page for featured ones. Click any market to open the orderbook.
Key directives
Account recovery
If you forget your password, use /forgot-password to receive a reset link. Links expire after 1 hour. Contact support if you've lost access to your registered email.
02 — Deposits & withdrawals
Moving funds on and off the platform
Accepted tokens
| Token | Contract | Notes |
|---|---|---|
| wUSDC | 0x7c69C30D42Db01B420E4eF02F11CbaF938BF3d4e | Primary settlement currency |
| WBESC | 0x33e22f85cc1877697773ca5c85988663388883a0 | Rate fetched from GeckoTerminal · converted to USD on arrival |
How deposits work
The backend maintains a dedicated deposit scanner that runs every minute. It monitors on-chain transfers to each user's deposit address and credits the matching account balance as soon as the transfer is confirmed. No minimum deposit amount. WBESC deposits are converted at the current pool rate (refreshed every 5 minutes) before being credited as USD.
Withdrawals
- 1
Navigate to /wallet and click Withdraw
Enter the destination BESC Hyperchain address and the amount you want to withdraw. - 2
Confirm the transaction
The settlement wallet initiates an on-chain wUSDC transfer. No gas is required from you. - 3
Track your withdrawal
The transaction hash is stored. You can verify it on BESC Hyperchain's block explorer at any time.
03 — Market mechanics
How prediction markets work
Every market on Consensus resolves to one of two outcomes: YES or NO. Each contract pays exactly $1.00 to the winning side. The price of a contract at any moment represents the market's implied probability of that outcome occurring.
The math
Price interpretation
YES at $0.72 means the market implies a 72% probability the event resolves YES. NO is always implied at $0.28 — the two always sum to $1.
Profit calculation
Buy 100 YES @ $0.65 → cost $65.00. If YES resolves: receive $100.00 → profit $35.00 − fees. If NO resolves: position is worth $0.00.
Implied NO price
You can always calculate: NO price = $1.00 − YES price. Selling YES is equivalent to buying NO at the implied price.
Market lifecycle
- 1
Created
Admin or AI creates market with open date, close date, and resolution criteria. - 2
Seeded
System LP places initial orders at $0.48 / $0.52 bid/ask to bootstrap liquidity before real traders arrive. - 3
Open
Anyone can place buy or sell orders. Price moves continuously based on supply and demand. - 4
Closed
At the close date, no new orders are accepted. Existing positions remain open. - 5
Resolved
Oracle (sports score, AI, or admin) determines the YES or NO outcome. - 6
Settled
Winning contracts are credited $1.00 each. Losing contracts expire worthless.
Key concepts
Spot position
Buying YES or NO contracts at market price. Max loss is the cost of the position. Max gain is $1.00 per contract held.
Price discovery
The displayed price follows the last matched trade. As new information surfaces (news, scores, events) traders adjust their bids and asks, shifting the consensus.
Early exit
You don't have to hold to resolution. Sell your YES or NO position at any time at the current market price to lock in profit or cut losses.
04 — Trading engine
The centralized limit orderbook
Consensus runs a centralized limit orderbook (CLOB) — the same model used by Polymarket and professional exchanges. Orders are matched server-side with sub-second latency. Because execution happens off-chain, no gas is required to place or cancel orders.
Engine parameters
How matching works
When you place a buy order at a price ≥ the best ask, it matches immediately (taker). If your price is below the best ask, it rests on the book (maker) until a seller meets it. Matching is price-time priority: best prices fill first; ties go to earlier orders.
Real-time data feeds
| Endpoint | Refresh | Contents |
|---|---|---|
| /live_markets | Background cache · 30s TTL | All active markets with depth + fair value |
| /orderbook | 4 – 4.5s polling | Full bid/ask ladder for YES and NO |
| /market_metrics | 15s polling | Sparkline, 24h volume, fair value, mid delta |
| /market_trades | 8s polling | Last 80 trades for a market |
05 — Order types
Limit, market, IOC, FOK, and post-only
All order types
| Type | Behavior | Use when |
|---|---|---|
| Limit | Rests on book at your exact price. Fills when market reaches it. | You have a specific price target and aren't in a hurry. |
| Market | Sweeps the book at the best available prices until your full size is filled. | You need immediate execution and accept price slippage. |
| IOC — Immediate or Cancel | Fills as much as possible at your price right now, cancels any unfilled remainder. | You want partial fills but no resting order. |
| FOK — Fill or Kill | Fills the entire order at your price or cancels completely. No partials. | You need the full size or nothing — avoids partial exposure. |
| Post-Only (Maker) | Guarantees your order only rests on the book. Rejected if it would cross and take. | You want to earn the maker rebate and never pay taker fees. |
How to cancel an order
Open orders are listed in your portfolio. Click the cancel button next to any order, or use the API endpoint:
POST /cancel
{ "orderId": "abc123", "marketAddress": "0x..." }
Cancellation is instant. Locked balance from the cancelled order is released back to your available balance immediately.
Order flow directives
06 — Fees & rebates
The Kashi-style probability fee curve
Consensus uses a curve-based fee model where fees scale with the uncertainty of the market, not a flat percentage. Fees are highest at 50/50 and approach zero as prices near $0.01 or $0.99.
Fee formulas
Taker fee (market or crossing limit)
fee = 2% × P × (1 − P) × contracts
Rounded up to the next cent.
Maker fee (resting limit order)
fee = 1% × P × (1 − P) × contracts
Rounded up to the next cent. Applied when your order executes.
Fee examples
| Scenario | Taker fee | Maker fee |
|---|---|---|
| 100 contracts @ $0.50 (50/50 market) | $0.50 | $0.25 |
| 100 contracts @ $0.70 | $0.42 | $0.21 |
| 100 contracts @ $0.30 | $0.42 | $0.21 |
| 100 contracts @ $0.20 | $0.32 | $0.16 |
| 100 contracts @ $0.90 | $0.18 | $0.09 |
| 50 contracts @ $0.50 | $0.25 | $0.13 |
| 1,000 contracts @ $0.50 | $5.00 | $2.50 |
Loyalty tier rebates
Reaching higher loyalty tiers reduces your effective taker fee through a rebate applied at settlement. Maker fees are not currently rebated.
| Tier | Points required | Taker rebate |
|---|---|---|
| Bronze | 0 + | 0% |
| Silver | 2,500 + | 0.1% off taker fee |
| Gold | 5,000 + | 0.2% off taker fee |
| Emerald | 10,000 + | 0.35% off taker fee |
Fee settlement
Fees accumulate in backend ledgers per wallet. They are periodically remitted from the settlement pool on schedule. You can view your accrued taker fees via /fees/taker.
07 — Leverage trading
Up to 50× on prediction markets
Leverage lets you control a larger notional position than your posted margin. Consensus uses isolated margin — your maximum loss is capped at the margin you post for that specific position. Leverage positions share the same orderbook as spot, so the same price discovery applies.
System parameters
Worked example
Position: Open YES at $0.50, 10× leverage, $50 margin
Notional: $50 × 10 = $500 (1,000 YES contracts)
Maintenance margin: 0.5% × $500 = $2.50
Liquidation triggered when: equity < $2.50
Liquidation fee: 0.5% × $500 = $2.50
Max loss: $50 margin (isolated — nothing else at risk)
How to open a leverage position
- 1
Preview your position
GET /v2/leverage/preview?marketAddress=…&direction=YES&leverage=10&margin=50Returns the estimated cost, liquidation price, and notional before any funds move. - 2
Open the position
POST /v2/leverage/openwithmarketAddress,direction(YES or NO),leverage, andmargin. - 3
Monitor your positions
GET /v2/leverage/positionsreturns all open positions with current mark, equity, and liquidation price. - 4
Set trigger orders (optional)
Auto-close at a target price — equivalent to take-profit or stop-loss. Set via the portfolio page or POST /v2/leverage/triggers. - 5
Close the position
POST /v2/leverage/closewith yourpositionId. Margin minus any losses is returned to your balance.
08 — Points & loyalty
Earn, level up, and reduce your fees
The loyalty system rewards active participation. Points accumulate across trading volume, liquidity provision, daily check-ins, early market participation, and referrals. Higher tiers reduce your taker fee through rebates that are applied at settlement.
How to earn points
| Activity | Points earned | How to trigger |
|---|---|---|
| Trading volume | 0.02 pts per $1 traded | Automatic on every fill |
| Liquidity provision | 0.02 pts per $1 on book | Automatic when resting orders earn |
| Early market participation | 35 pts (one-time per market) | Be among the first traders in a new market |
| Daily login | 10 pts per day | POST /points/login after each sign-in |
| Referral (you refer someone) | 100 pts | POST /points/referral once they register |
| Referral (new user bonus) | 55 pts | Automatic when your referrer's code is applied |
How to claim your daily login bonus
After logging in each day, trigger the bonus by calling:
POST /points/login
// requires Auth header: Bearer <token>
One bonus per calendar day. The frontend triggers this automatically on sign-in.
Loyalty tiers
| Tier | Points required | Taker rebate | Badge |
|---|---|---|---|
| Bronze | 0 – 2,499 | 0% | Default |
| Silver | 2,500 – 4,999 | 0.1% | Silver glow |
| Gold | 5,000 – 9,999 | 0.2% | Gold glow |
| Emerald | 10,000+ | 0.35% | Emerald glow |
How to refer a user
Once the referee has registered and logged in, submit the referral:
POST /points/referral
{
"referrer": "your-wallet-or-email",
"referee": "their-wallet-or-email"
}
09 — Liquidity programs
USD rewards for market makers
Liquidity programs are admin-created incentive schemes tied to specific markets. They pay USD rewards to participants who provide consistent, tight liquidity near the midpoint. Programs run for a defined period and distribute rewards proportionally based on participation scores.
How scoring works
The backend samples active orderbooks every few seconds. Orders closer to the current midpoint receive higher scores than orders far from it (within LIQUIDITY_MAX_DISTANCE_TICKS ticks). Volume and consistency of presence are both weighted. Scores accumulate throughout the program's lifetime.
Viewing active programs
GET /liquidity_programs/active
// shows programs you qualify for (requires auth)
GET /liquidity_programs
// lists all programs (public)
GET /liquidity_programs/:id/payouts
// payout history for a specific program
Directives for participants
Reward distribution
At program end (or at the scheduled payout interval), rewards are distributed from the settlement pool proportionally to each participant's share of the total score. Payouts are credited directly to your trading balance.
10 — Market resolution
How outcomes are determined and settled
Markets resolve through one of three paths depending on the market type. Once resolved, winning positions are automatically settled at $1.00 per contract. Losing positions expire at $0.00.
Resolution paths
Path 1 — Automatic (hourly cron)
Every hour, the backend scans all markets whose close date has passed. It evaluates the outcome using the AI oracle (Grok-3) and routes the result to the admin review queue. Admin approves or rejects before settlement is finalized.
Path 2 — Sports (ESPN live scores)
Sports markets linked to a specific game query the ESPN scoreboard API. When the game ends and a final score is confirmed, the market resolves automatically without manual intervention.
Path 3 — Admin (manual)
Any market can be resolved manually by an admin. Markets flagged as requiring admin resolution skip the auto path and sit in the queue until an admin acts.
AI oracle — Grok-3
The AI oracle (powered by xAI's Grok-3 model) evaluates the market question against real-world information to determine whether the outcome is YES or NO. The oracle result is not final — it is submitted to the admin queue for human verification before settlement executes.
Settlement mechanics
- 1
Resolution determined
Outcome set to YES or NO by oracle, sports score, or admin. - 2
Settlement runs
All positions in the market are evaluated. YES holders receive $1.00 per contract; NO holders receive $0.00 (and vice versa). - 3
Balances credited
Winnings appear in your account balance immediately after settlement completes. - 4
Fees applied
Any accrued taker/maker fees for this market are settled from the fee pool on schedule.
11 — Sports markets
Live score resolution across 12+ leagues
Sports markets resolve automatically using the ESPN scoreboard API — a free, real-time data source. When a market's question references a supported sport or team, the backend detects the correct league and fetches live scores. No API key is required.
Supported leagues
| League | Key phrase to trigger | Season |
|---|---|---|
| NFL | "NFL", team names | Sep – Feb |
| NBA | "NBA", team names | Oct – Jun |
| MLB | "MLB", team names | Apr – Oct |
| NHL | "NHL", team names | Oct – Jun |
| FIFA World Cup | "World Cup", "FIFA" | Quadrennial |
| Copa América | "Copa America", "CONMEBOL" | Biennial |
| CONCACAF Gold Cup | "Gold Cup", "CONCACAF" | Biennial |
| UEFA Champions League | "Champions League", "UCL" | Sep – Jun |
| UEFA Euro | "Euro", "UEFA Euro" | Quadrennial |
| MLS | "MLS" | Mar – Nov |
| EPL / Premier League | "EPL", "Premier League" | Aug – May |
| MMA / UFC | "UFC", "MMA" | Year-round |
How sport auto-detection works
When a market is created, the question text is scanned for keyword signals. The first matching phrase determines which ESPN endpoint is polled. If no sport keyword matches, the market falls back to EPL as default, then to the AI oracle if no score is found.
Off-season behavior
When an ESPN endpoint returns a 400 (no data for the date), the system logs the response and returns an empty score set. The market does not resolve on empty data — it waits for the next resolution cycle. This is expected for out-of-season leagues.
Creating sports markets
fifa.world endpoint.12 — Dispute system
Challenge a market resolution
If you believe a market was resolved incorrectly, you can file a formal dispute. Disputes are reviewed by the admin team who compare the resolution criteria against available evidence before making a final determination.
How to file a dispute
- 1
Prepare your evidence
Gather links, screenshots, or on-chain data that supports your interpretation of the resolution criteria. - 2
Submit via the market page or API
Navigate to the resolved market and click "Dispute resolution", or call:POST /disputewithmarketAddress,reason, andevidence. - 3
Await admin review
The support team receives a notification and reviews the evidence against the market's resolution criteria. You will be notified by email when a decision is made.
Dispute rules
What happens after submission
Status: Open
Dispute received. Admin review in progress.
Status: Upheld
Resolution overturned. Settlement re-runs with corrected outcome. Affected positions are credited accordingly.
Status: Rejected
Original resolution stands. The rejection reason is noted in the dispute record.
Dispute decisions are logged permanently. If your dispute is rejected and you have additional evidence, contact support at support@besc.services.
13 — Portfolio & history
Track positions, orders, and transfers
Where to find everything
| What | Where | API endpoint |
|---|---|---|
| Available balance | /wallet | /me (balances field) |
| Spot positions | /portfolio | /positions |
| Leverage positions | /portfolio | /v2/leverage/positions |
| Open orders | /portfolio | /orders/:wallet |
| Trigger orders | /portfolio | /v2/leverage/triggers |
| Trade history | /portfolio → Trades tab | /market_trades?marketAddress=… |
| Transfer history | /wallet | /transfers |
| Profit leaderboard | /leaderboard | /leaderboard/profits |
| Points summary | /points | /points?wallet=… |
| Settlement info | /status | /settlement_info |
P&L tracking
Realized P&L on each position is the difference between your average entry cost and the exit price (or settlement price at $1.00 / $0.00). Unrealized P&L is based on the current market midpoint. Both are shown in the portfolio view.
Locked vs. available balance
When you place a resting limit order, the notional cost is moved from your available balance to a locked balance. Locked funds are released when the order fills, cancels, or expires. You can only withdraw available (unlocked) balance.
Leaderboard
The profit leaderboard at /leaderboard ranks wallets by realized trading profit. It updates in real time as trades settle. Top 10 shown by default; the limit can be adjusted via the API.
/market_trades for any market. Combine with /transfers for a complete audit trail suitable for tax reporting.14 — Platform infrastructure
The technology stack underneath
Chain & settlement
Backend architecture
Scheduled jobs
| Job | Cadence | Purpose |
|---|---|---|
| Market resolution | Every hour | Scan expired markets, run AI oracle, queue for admin |
| Deposit scanner — wUSDC | Every 1 minute | Index new wUSDC transfers to deposit addresses |
| Deposit scanner — WBESC | Every 1 minute | Index new WBESC transfers, convert to USD |
| Leverage liquidation | Every 5 seconds | Check all open positions against maintenance margin |
| Trigger order execution | Every 5 seconds | Fire take-profit / stop-loss triggers |
| Auto-cancel stale orders | Every 5 minutes | Cancel orders past their expiry |
| Deposit sweeper | Hourly (at :15) | Consolidate deposit wallet balances |
| Liquidity settlement | Every 10 minutes | Score and distribute LP rewards |
| Fee settlement | Configurable | Remit accrued fees to settlement pool |
Status monitoring
The /status page shows real-time health for 5 subsystems: market sync, RPC connectivity, orderbook engine, resolver services, and API latency. All data is fetched fresh on each page load.
15 — Frequently asked questions
FAQ
Why do I need to confirm my email before trading?▾
Email confirmation ties your account to a recoverable identity. Without it, if you lose your password there is no way to regain access. It also protects against bots creating accounts in bulk.
I sent wUSDC but my balance hasn't updated — what do I do?▾
The deposit scanner runs every minute. If 5 minutes have passed with no update, verify that you sent to the correct BESC Hyperchain address shown in /wallet (not BSC or another EVM chain), and that the transaction is confirmed on-chain. Contact support with your transaction hash if the issue persists.
Can I lose more than I deposit?▾
On spot markets: no. Your maximum loss on a spot position is the amount you paid for the contracts. On leverage: no — Consensus uses isolated margin, so the worst case on a leverage position is the margin you posted, not your full account balance.
Why is the orderbook price different from what I'm quoted?▾
The UI polls the orderbook every 4 seconds. Fast markets can move between polls. The price you see reflects the last snapshot; the actual fill price is set at the moment your order reaches the matching engine.
What happens to my open orders when a market closes?▾
When the market's close date passes, the engine stops accepting new orders. Existing resting orders are automatically cancelled and your locked balance is released. No manual action is required.
How are leverage positions liquidated?▾
Every 5 seconds, the engine compares each open position's current mark price (orderbook midpoint) against its maintenance margin threshold. If equity falls below 0.5% of notional, the position is liquidated: closed at market, a 0.5% liquidation fee is deducted, and remaining margin is returned to your balance.
Can I set a stop-loss or take-profit on a leverage position?▾
Yes — these are called trigger orders. After opening a position, set a price target via the portfolio page. When the mark price crosses your target, the position is automatically closed. Multiple triggers per position are supported.
Why can't I open a leverage position on a specific market?▾
Leverage requires at least 150 shares of orderbook depth and a bid/ask spread narrower than $0.12. Newly created or very illiquid markets may not meet these requirements yet. Check the market depth in the orderbook view.
How do loyalty rebates work in practice?▾
When your taker fee is calculated at settlement, the backend checks your current tier and subtracts the rebate from the fee before deducting it from your balance. For example, an Emerald member paying a $1.00 taker fee effectively pays $0.9965 after a 0.35% rebate.
Where do my points go after I reach Emerald?▾
Points continue to accumulate above 10,000. There is currently no tier above Emerald — the rebate cap is 0.35%. Future tiers may be introduced; existing points will count toward them automatically.
Why is my sports market showing UNKNOWN for the score?▾
If the sport is currently out of season, ESPN returns a 400 response (no data). The market won't resolve on empty data — it waits for the next resolution cycle when the game data becomes available. This is expected behavior and not an error.
How long does a dispute take to resolve?▾
Most disputes are reviewed within 24 hours. Complex cases (ambiguous resolution criteria, missing data) may take up to 72 hours. You'll receive an email notification when admin makes a decision.
Can I withdraw funds while I have open orders or positions?▾
You can withdraw your available (unlocked) balance at any time. Funds locked in open orders are not available until those orders fill or are cancelled. Open leverage positions lock their margin — close the position first to free it.
Is my deposit address the same as my blockchain wallet?▾
No. The deposit address is a platform-controlled address on BESC Hyperchain that the backend monitors for incoming transfers. Think of it as a receiving address, not a wallet you control. Funds are credited to your platform balance, not to a wallet you hold keys for.
Why does the status page show UNKNOWN for Orderbook Engine?▾
The platform tracks when the last order was processed. Immediately after a deployment, this clock resets. If no orders have been placed since the last server restart, the engine shows UNKNOWN (meaning no recent activity) rather than OK. This is a monitoring display issue — the engine is running. It will update to OK after any order is placed.
16 — Contact support
Get direct help
When contacting support, always include your wallet address, the relevant market address or order ID, and a description of what you expected vs. what happened. Screenshots and transaction hashes allow faster resolution.
Support is available 09:00 – 18:00 UTC, Monday through Friday. We aim to respond within 2 hours during business hours. Urgent incidents are escalated immediately regardless of hour.