Skip to content

Fee and affiliate settings, and the rest of Settings ​

Admins change the platform's settings on the Settings page without a deploy. Nothing is sent until Save, which lists every change (old and new value) for confirmation; every change is written to the audit log, and customers see it on the site within about 30 seconds. Money is typed in dollars and stored exactly; rates are typed as percentages and stored as whole basis points.

Trading fee ​

SettingDefaultWhat it does
Fee rate (fee.tradeBps)5%Charged on the buyer of every fill, as a share of what they pay. At most 20%. Frozen onto each order at placement. 0% charges nothing and pays no commission
Profit cap (fee.maxProfitShareBps)50%The fee is never more than this share of what the bet can win, so a share bought at 95¢ pays less than the full rate. The page says where the cap starts to bite
Exempt the house (fee.exemptHouse)onThe house market maker pays no fee

The exchange's fee ceiling must never be below the fee rate

With trading from wallets, the CTF Exchange contract has its own ceiling on the fee the operator may charge per fill, maxFeeRateBps, set when the exchange was deployed (EXCHANGE_MAX_FEE_RATE_BPS, 500 = 5% by default) and changeable only by the owner Safe (setMaxFeeRate). The platform's fee rate must never exceed it. A fee above the ceiling makes the exchange refuse every buy: every match fails on chain and every trade is undone.

To raise the fee rate above the ceiling: have the Safe's signers call setMaxFeeRate on the exchange to the new rate first, then raise the Fee rate here. To lower it, lower the rate here first and the ceiling after, or leave the ceiling where it is. Keep the ceiling equal to the rate: the ceiling is also what a stolen operator key could charge every customer, so a ceiling above the rate is pure risk. Check the current ceiling with getMaxFeeRate() on the exchange's page on BscScan. See Keys and roles.

Affiliate programme ​

SettingDefaultWhat it does
Commissions on (affiliate.enabled)onThe master switch. Off, no commission is recorded on any trade
Upline's share of the fee (affiliate.shareBps)50%How much of each fee goes to the trader's upline; the rest stays with the platform
Split across the three levels (affiliate.levelBps)50 / 30 / 20Level 1 is the direct referrer, level 2 theirs, level 3 theirs again. Together at most 100%; anything unassigned stays with the platform
Levels paid by default (jurisdiction.default)3For countries with no rule of their own
Countries with their own terms (jurisdiction.rules)nonePer country: how many levels are paid (0 to 3), optionally its own share and split for bets its traders place, and a staff note (counsel's advice, licence status, date reviewed)

The page works out what the rates mean for one bet as you type: at the defaults, 1.25% of each bet to level 1, 0.75% to level 2, 0.50% to level 3. A level is paid only if both the trader's and that affiliate's country allow it; what is not paid stays with the platform. Commissions are a share of fees already paid, never issued credits.

With trading from wallets, commissions are paid out of the fee vault when a referrer presses Collect; the vault's per-payout and daily limits are set on chain by the Safe, not here (Recurring tasks). Without a fee vault configured, no commission is recorded on wallet trades and every fee is the platform's.

Resolution ​

Dispute window (resolution.disputeWindowMinutes, default 120): the floor every proposal gets. A resolver cannot propose with a shorter window; an admin can. Set it to what holders need to notice and dispute. See Resolving and disputes.

Play money, Demo and growth ​

  • Play money: starting credits ($1,000), the daily top-up ($500) and the balance below which it is offered ($100).
  • Demo mode: on or off, and its starting virtual money ($10,000). Off hides the Live | Demo switch.
  • Growth: the referral bonus ($50, play money), the daily check-in bonus ($5) and the streak's length (7 days).

Site and features ​

  • Banner: a notice across the top of every page, with a tone (notice or warning) and an optional link (a path on the site or an https address). "Markets on the Kenyan election close at 18:00 EAT on polling day."
  • Suggestions and Comments: switch either part of the site off without a deploy.

Categories and countries ​

What customers browse by, in the order you put them in. Each row has a switch and up and down buttons.

SettingDefaultWhat it does
Categories (browse.categories)all nine, Politics firstThe categories the site's category bar and footer, the Telegram Mini App, the app and the suggestion form list, in this order. At least one stays on
Country markets (browse.countries)Nigeria, Kenya, South Africa, Ghana, Egypt, Uganda, Ethiopia, TanzaniaListed after the categories, each as its flag and name in the customer's language, opening that country's markets: every event whose country codes name the country. May be none

Switching a category off takes it out of every customer-facing list and picker, and the API refuses a new suggestion in it. It hides no market: events already in the category stay tradable, open by their link, in search, in Trending and in every "All" list, and a link with ?category= still filters, so nobody holding a position loses sight of it. Staff can still create and edit markets in a switched-off category; the forms mark it "(hidden)". The AI listing scout is told only the categories that are on and asked to favour the country markets that are listed.

The home page's category shelves and the footer's market links are the first five categories that are on.

AI ​

  • AI listing ideas (ai.listingIdeas, on): every two hours the AI drafts listings for staff to list or dismiss on the AI ideas page. Off stops new drafts; the ideas already drafted stay.
  • Automatic resolution (ai.autoResolve, on): once an event has closed, the AI looks for its result and proposes it; the dispute window runs as for any proposal, but at least 12 hours long (the platform's window when that is longer). Off stops new looks and proposals.

Both do nothing until the operations team has set the API's ANTHROPIC_API_KEY. See The AI: listing ideas and automatic results.

Crypto (USDT) ​

The Crypto (USDT) section (networks, minimum deposit and withdrawal, withdrawal fees, auto-approval limits, two-step for money moves, pause withdrawals, the declared reserve, the payout-wallet cooling-off) belongs to the vault model, in which customers paid into Jua's vault and withdrew from it. With trading from wallets there are no deposits or withdrawals, and these settings do nothing to trading; keep two-step for money moves on regardless, and leave the rest alone unless the vault is still running for balances from before the switch.

Telegram ​

The Mini App's switches (open or paused, the bot's messages, announcements in Telegram, its banner) are on the Telegram page beside the bot's status: Telegram.

Settings that need a deploy ​

Everything else about a deployment (the fee vault, the exchange and its chain, the TON exchange, alert webhooks, the Telegram bot's token) is an environment variable or secret, changed by whoever operates the platform: Deploying.

Jua Markets · Africa's prediction market.