withdraw function, no selfdestruct, no drain targeting player funds. The only wallet receiving a cut is the dev wallet — a fixed 5% on your own withdrawal, never from the pool principal itself.GeoConflict is a fully on-chain strategy game on BNB Smart Chain where players stake real BNB behind one of two rival geopolitical factions — WEST (US + Israel) or EAST (Iran + North Korea) — and earn yield based on which side controls the battlefield.
It is not a savings account, not a yield farm, and not an investment product. It is a competitive zero-sum strategy game with real BNB stakes. Some players will profit. Others will recover less than they deposited. Strategy, patience, and timing are the primary differentiators.
Both factions active, pools differ by more than 2%, and a clear leader exists. Winners earn 10% of the loser's net pool per 24h, weighted by TWAL lead fraction. Parity reduces earnings but never zeros them.
Activates when only one faction has deposits, or when both pools exist but their gap is 2% or less of the larger pool (ceasefire / peace threshold). All positions on both factions earn a flat 1% daily yield on effective balance. Once one side pulls ahead by more than 2%, leadership resumes and Mode A restores.
Loser net pool reaches zero. Winners earn 10% of total contract balance per 24h, TWAL-weighted. Drains down to the 0.001 BNB floor.
The minimum stake is 0.01 BNB. Transactions below this amount will be rejected by the smart contract.
The contract enforces a hardcoded pool floor of 0.001 BNB. When the contract balance reaches this floor, all withdrawals halt automatically. This prevents the contract from ever reaching absolute zero and ensures it can continue operating if new deposits arrive.
You need MetaMask or any Web3-compatible wallet configured for BNB Smart Chain (BSC Mainnet, Chain ID 56). The app will prompt you to switch networks automatically if you are on the wrong chain.
You will need native BNB — not BEP-20 tokens, not WBNB, not BUSD. The contract operates entirely in native BNB. Make sure your wallet has enough BNB to cover both your stake and the gas fee for the transaction.
Yes. One wallet can hold multiple positions with different deposit amounts, different factions, and different doctrine configurations. Each deposit creates a separate position with its own ID, its own effective weight, and its own TWAL accrual window.
This means you can hedge by depositing in both factions from the same wallet, or stack multiple positions in the same faction with different doctrine strategies.
The moment your deposit transaction confirms, the following happens atomically in a single block:
deposit.amount — immutable from this pointThere is no lock-up period. You can attempt to withdraw immediately, but your TWAL lead fraction will be near zero — meaning your claimable amount will also be near zero until sufficient lead time accumulates.
No. Both your faction and doctrine are permanently locked at the time of deposit. The contract stores them as immutable fields in your deposit struct and they cannot be modified after the transaction confirms.
If you want a different faction or doctrine, you must make a new deposit as a separate position. Your existing position continues to operate under its original settings independently.
Every time you withdraw, 50% of the withdrawn amount is debited from your position's effective weight. This is not a fee paid to anyone — it is a reduction of your own pool share.
For example, if you withdraw 0.1 BNB, your effective weight shrinks by 0.05 BNB. The smaller your effective weight, the smaller your future payouts. Patience grows your proportional share of the pool over time.
WEST players withdrawing while WEST leads receive a −2% sanctions bonus, reducing their deduction to 48% — meaning their position shrinks slightly slower than EAST players.
Your net position is calculated as Credit minus Debit — a double-entry ledger system:
deposit.amount — immutable. The net BNB recorded at deposit time. Never changes.deposit.withdrawal — accumulates with each payout. 50% of every withdrawal is added here.amount − withdrawal — your current effective weight. This determines your prize share.As your net position approaches zero, your share of payouts diminishes proportionally. A fully exhausted position earns nothing and cannot withdraw.
When your effective weight (amount − withdrawal) reaches zero, your position is considered exhausted. An exhausted position:
To continue playing after exhaustion, you must open a new position with a fresh deposit.
A flat 5% dev fee is deducted from every withdrawal at the moment it is processed. This means your net payout is always 95% of the approved claimable amount.
The dev fee applies only on withdrawals — never on deposits, and never on the pool principal itself. It is the only recurring revenue mechanism for the development team and is hardcoded into the contract at deployment.
The referral system pays commissions instantly in BNB at the moment of deposit — no waiting, no claiming. It operates three levels deep:
Any unclaimed referral level routes to the dev wallet. You must hold an active stake to qualify as a referrer and receive commissions.
TWAL stands for Time-Weighted Average Leader. It scales your prize payout by how long the winning faction actually held the lead during your specific accrual window — not just whether they're leading right now.
Every successful withdrawal resets your TWAL window to zero. This means withdrawing at a low TWAL fraction costs you the same position deduction but returns a smaller payout — the worst possible trade-off. Always check your TWAL fraction before withdrawing.
Your accrual begins the moment your deposit transaction confirms on-chain. However, the claimable amount starts from zero and grows over time based on the active mode:
You can see your live accruing income in real time on the Positions panel. The ticker updates every second.
Yes, it is possible — though total loss requires a specific combination of bad outcomes. The realistic risk scenarios are:
Never deposit more than you can afford to lose entirely. This is a competitive game, not a savings product.
This is working exactly as intended and is one of the most important mechanics to understand. Your income is not a fixed rate — it is a proportional share of the prize pool divided among all active positions in your faction by their effective weight.
The formula for your share in Prize Mode is:
(your effective weight / total faction net pool) × prize pool × TWAL fractionWhen new players deposit into your faction, the total faction net pool grows but the prize pool (sourced from the opposing faction) stays the same. Your slice of that prize shrinks proportionally because you now represent a smaller fraction of the total pool.
This dilution effect has a silver lining however. More deposits into your faction also increases your faction's net pool, which widens the gap against the opposing faction and strengthens your leadership position — meaning the mode is less likely to flip against you.
The strategic implication is clear: early depositors into a faction always have the largest proportional share. The longer you hold without withdrawing while others join, the more your relative share stabilizes as a founding position in the pool.
Counter-intuitive as it seems, aggressive doctrines often produce lower effective pool weight than balanced or tech-focused ones — and your live income is directly proportional to your effective weight, not your raw deposit amount.
Here is what happens inside the Escalation doctrine (50% Military) step by step:
drain = (5000 − 3500) / 3 = 500 bps deducted from Economy
(econEff + military) / BPS loses its Economy contribution almost entirely.
recovery = (1500 − 1500) / 4 = 0. You need Intel above 15% to get any offset.
techMul = 10000 + (2000 × 2500 / 10000) = 10500 → only 1.05× amplification, not enough to compensate for the economic collapse.
The Escalation doctrine is labeled ULTRA RISK for exactly this reason. It is only viable if you deliberately allocate enough Intel above 15% to partially recover the economic drain — and even then it rarely outperforms a Technocrat or Balanced setup in steady-state income.
If your goal is maximum live income accrual, Technocrat or Balanced doctrines consistently outperform aggressive military allocations on the ticker. Escalation is a high-risk gamble, not a high-income strategy.
Your Doctrine determines your effective pool weight — which directly controls your share of every payout. The five axes interact through a cascading formula applied in strict order:
drain = (mil − 3500) / 3recovery = (intel − 1500) / 4 restores Economy, capped at original value.BPS + (tech × 2500 / BPS) → range 1.0× to 1.25×. Pure upside, no downside.BPS + (min(dip, 3000) × 1500 / 3000) → range 1.0× to 1.15×. Caps at 30% — anything beyond has no effect.(econEff + military) / BPS × techMul / BPS × dipMul / BPS × amountThere is no universally correct answer — it depends on current pool states and your risk tolerance:
Always check the West Pool and East Pool sizes on the Home panel before deciding. A large pool disparity favors the smaller side in the long run due to the self-balancing deduction mechanic.
The optimal withdrawal timing balances three factors:
Yes — mathematically and provably. Here is why:
Every time a winning faction player withdraws, their effective weight decreases. Over time, frequent withdrawers erode their own faction's net pool. This gradually brings the two faction pools toward parity, eventually triggering a leadership flip that locks them out entirely.
Meanwhile, the patient losing faction player's pool remains untouched and grows relatively stronger with every opposing withdrawal. Simulations show that a patient losing faction with zero withdrawals will flip the leadership within approximately 20 days against a winning faction that withdraws every hour — even starting from a 2:1 pool disadvantage.
Patience is not just a virtue in GeoConflict. It is a measurable strategic weapon.
For new players, the Balanced preset (20/20/20/20/20) is the safest starting point. It avoids all overextension penalties and provides moderate multipliers across all axes.
Once comfortable, consider Technocrat (15/15/20/15/35) — Technology is the only axis with a pure upside multiplier and zero interaction penalties. A 35% Technology allocation gives a +8.75% weight boost with no risk of drain or diminishing returns.
Aggressive doctrines like Warlord and Escalation are not designed for maximum daily income — they are designed for maximum pool weight influence and faction dominance strategy. Understanding when they are useful requires thinking beyond your own ticker.
Your doctrine-scaled weight is calculated once at deposit time and added permanently to your faction's gross pool. A higher effective weight at deposit means:
The Warlord preset (34% Military) is the most strategically sound aggressive doctrine because it sits just below the 35% overextension threshold — capturing the maximum Military base weight contribution with zero economic drain penalty.
(econEff + military) base weight without triggering the drain formula — the highest safe Military allocation possible
The Escalation doctrine (50% Military) is the highest-risk, highest-pool-impact configuration in the game. Despite its poor daily income rate, there are specific scenarios where it is a rational choice:
recovery = (intel − 1500) / 4. This partially restores the economic drain, making Escalation less punishing while retaining high Military weight.
Aggressive doctrines are pool dominance tools, not income tools. Choose them when your priority is to secure or defend faction leadership with maximum weight impact per BNB — not when your priority is daily ticker accrual. The best players understand that different positions in the same wallet can run different doctrines for different strategic purposes simultaneously.
No. The contract is immutable — there are no upgrade functions, no proxy patterns, and no pause mechanisms. Once deployed, no one including the developer can alter, pause, or rewrite any rule.
There is no owner function that can withdraw player funds from the pool. The developer wallet receives only the hardcoded 5% dev fee on player withdrawals and unclaimed referral levels — both of which are transparent, predictable, and enforced by the contract itself.
Because the contract is immutable by design, there is no mechanism to patch bugs, pause execution, or recover funds if a critical vulnerability is discovered. This is the trade-off of a trustless system.
The contract has been designed with explicit security fixes including reentrancy guards, mode snapshots, zero-amount guards, and TWAL anti-gaming protections. However, no smart contract can be guaranteed 100% bug-free.
Only deposit what you can afford to lose. The immutability that protects you from rugpulls is the same immutability that prevents emergency patches.
Every aspect of the contract is publicly verifiable on BscScan. You can:
The contract address is displayed in the Info tab. You don't need to trust the UI — you can verify everything directly on-chain.
No. There is no refund, no early exit, and no stop-loss mechanism of any kind. Once your deposit transaction confirms on-chain, your BNB is in the contract under the game's rules.
You can only retrieve BNB through the Withdraw function — and only when the game mechanics permit it. If you are on the losing faction in Prize or Drain Mode, you cannot withdraw until either your faction wins, or the mode changes to Yield.
This is by design. The inability to exit arbitrarily is what creates the strategic tension that makes the game work. Treat every deposit as a committed strategic bet.
The contract source code is publicly verified on BscScan and readable by anyone. The codebase incorporates established security patterns including OpenZeppelin's ReentrancyGuard and Ownable base contracts.
A formal third-party audit has not been completed at launch. The contract has been thoroughly reviewed internally with specific security fixes documented and implemented. We encourage technically capable users to read the source code directly and draw their own conclusions.
As always — only deposit what you can afford to lose, and verify the contract yourself before participating.
CONNECT WALLET TO VIEW
GeoConflict is a fully on-chain geopolitical strategy game deployed on BNB Smart Chain where players stake native BNB behind one of two rival world powers and earn yield based on the outcome of a simulated global conflict. Every mechanic — pool balances, payout calculations, faction weights, lead time accrual, and referral commissions — is computed entirely on-chain with no off-chain dependencies, no admin keys, and no upgrade mechanisms.
Players don't just pick a side. They configure a Doctrine — a five-axis strategic allocation across Military, Intelligence, Economy, Diplomacy, and Technology — that determines their effective pool weight and therefore their share of every payout. Strategy matters. A poorly configured doctrine loses ground to a well-calibrated one even within the same faction.
The contract operates in three distinct modes that shift dynamically based on pool states and faction dominance. Payouts range from a flat 1% daily yield in peaceful conditions to aggressive 10% daily prize shares during active conflict. The longer your faction leads, the larger your slice of the opposing faction's treasury.
The world is divided. Two geopolitical blocs have emerged as the dominant forces in a shadow war fought through sanctions, proxy operations, nuclear posturing, and technological supremacy.
The Western Coalition — led by the United States and Israel — projects power through naval dominance, financial sanctions, and aerospace technology. They control the global reserve currency, operate the most sophisticated signals intelligence network on earth, and maintain a network of military alliances spanning six continents.
The Eastern Axis — Iran and North Korea — operates through asymmetric warfare, proxy networks, and weapons of mass disruption. Sanctioned from global finance, they've developed parallel economic systems, underground supply chains, and ballistic missile programs that hold regional stability hostage.
The battlefield is the BNB blockchain. Players are intelligence operatives, generals, economists, and diplomats allocating resources across the five pillars of statecraft. Every BNB staked is a resource deployed. Every doctrine configured is a strategic posture. Every withdrawal is an extraction — and it costs you.
When WEST holds the lead, its players benefit from the Sanctions Engine — a 2% reduction in the deduction rate applied to their position weight on each withdrawal. This represents the economic leverage advantage of controlling global financial infrastructure.
EAST players pay the flat 50% deduction rate regardless of who leads. Their advantage is positional — joining a smaller pool means a larger proportional share of prizes when the tide turns.
Every stake requires a Doctrine — an allocation of exactly 10,000 basis points (100%) across five axes of statecraft. Each axis interacts with others through a cascading calculation that produces your final effective pool weight.
| Axis | Role | Key Interaction |
|---|---|---|
| ⚔ Military | Primary weight driver | Overextension above 35% drains Economy |
| ◈ Intelligence | Recovery mechanism | Offsets military overextension if >15% |
| $ Economy | Base weight component | Combined with Military for base weight |
| ◎ Diplomacy | Coalition multiplier | +15% multiplier, caps at 30% |
| ◈ Technology | Pure amplifier | +25% multiplier, zero downside |
| Preset | MIL | INTEL | ECO | DIP | TECH | Risk |
|---|---|---|---|---|---|---|
| ⚖ Balanced | 20% | 20% | 20% | 20% | 20% | STABLE |
| ⚔ Warlord | 34% | 20% | 16% | 15% | 15% | AGGRO |
| 🧠 Strategist | 10% | 35% | 15% | 15% | 25% | SMART |
| 🕊 Diplomat | 10% | 15% | 25% | 30% | 20% | COALITION |
| ⚡ Technocrat | 15% | 15% | 20% | 15% | 35% | AMPLIFIED |
| ☢ Escalation | 50% | 15% | 5% | 10% | 20% | ULTRA RISK |
The contract dynamically switches between three modes based on pool states. The active mode is displayed in the ticker and globe HUD at all times.
Payouts are scaled by TWAL lead fraction. Only the winning faction can withdraw.
Flat 1% daily yield on effective weight. No TWAL scaling. All players on both factions can withdraw. Ceasefire ends automatically once one pool pulls ahead by more than 2%.
Winners drain the entire contract at 10%/day until the 0.001 BNB floor is hit. Only the winning faction can withdraw.
deposit.amountStaked event emitted on-chain| Side | Field | Description |
|---|---|---|
| CREDIT | deposit.amount | Immutable. Net BNB deposited after referral fees. Never changes. |
| DEBIT | deposit.withdrawal | Accumulates. 50% of each payout debited here. Reduces future share. |
| NET | amount − withdrawal | Your current effective weight. Determines prize share. |
| EARNED | deposit.totalWithdrawn | Running total of all BNB paid out to you. |
Every withdrawal reduces your effective weight by 50% of the payout amount. Players who withdraw frequently shrink their position faster. Players who wait let their proportional share of the pool grow relative to others who have withdrawn.
Withdraw(depositId, requestedAmount)min(accrued, requestedAmount, contractBalance − floor)Withdrawn event, recomputes leadership| Fee | Rate | Recipient | Timing |
|---|---|---|---|
| Dev fee | 5% of withdrawal | Dev wallet | At withdrawal |
| Position deduction | 50% of payout (48% with sanctions) | Burned from weight | At withdrawal |
| Referral L1 | 5% of deposit | L1 referrer | At deposit |
| Referral L2 | 3% of deposit | L2 referrer | At deposit |
| Referral L3 | 2% of deposit | L3 referrer | At deposit |
TWAL scales your prize payout by how long the winning faction actually held the lead during your specific accrual window — not just whether they're leading right now.
Without TWAL, a player could deposit 1 second before a withdrawal and claim the same rate as a player who held through a full 24-hour lead. TWAL prevents this by anchoring each player's accrual to their own deposit timestamp and only counting lead time that occurred after they joined. If a faction's lead flips mid-window, TWAL reduces earnings proportionally rather than zeroing them out.
| Scenario | leadFracBPS | Effect |
|---|---|---|
| Faction led 100% of your window | 10,000 | Full prize rate |
| Faction led 50% of your window | 5,000 | Half prize rate |
| Faction led 20% of your window | 2,000 | 20% of prize rate |
| Leadership flipped mid-window | < 5,000 | Reduced but not zero |
| Just deposited, no lead time yet | 0 | Cannot withdraw yet |
Every successful withdrawal resets your TWAL window. prizeWindowStart is set to block.timestamp and leadTimeSnapshot is updated to the current accumulator value. You cannot carry forward lead time from before your last withdrawal.
The Sanctions Engine is a mechanical advantage granted to WEST players when WEST is leading, representing the economic leverage of controlling global financial infrastructure.
| Condition | WEST Player Rate | EAST Player Rate |
|---|---|---|
| WEST is leading | 48% | 50% |
| EAST is leading | 50% | 50% |
| No leader (Yield Mode) | 50% | 50% |
The sanctions bonus does not increase your withdrawal amount. It reduces how quickly your position weight shrinks after each withdrawal. Over many withdrawal cycles this compounds into a meaningfully larger long-term position weight compared to an equivalent EAST player making identical withdrawals.
The referral system operates three levels deep and pays commissions instantly at the moment of deposit in native BNB. No claiming, no vesting, no waiting.
To receive commissions, you must have an active deposit in the contract. Wallets with no deposit cannot receive referral commissions — any commission that would go to an ineligible address routes to the dev wallet instead.
The contract explicitly rejects self-referral at the smart contract level. Attempting to use your own address as referrer will cause the transaction to revert.
| Attack Vector | Protection |
|---|---|
| Owner draining player funds | No owner withdrawal function targeting the pool |
| Contract self-destruct | No selfdestruct in contract |
| Upgrade / proxy attack | No proxy pattern, no upgrade mechanism |
| Admin parameter manipulation | All constants hardcoded, not settable post-deploy |
| Reentrancy attack | ReentrancyGuard on all state-changing functions |
| Deposit-timing exploit | TWAL anchors accrual to deposit timestamp |
| Mid-call mode drift | Mode snapshotted at top of Withdraw() call |
| Zero-amount withdrawal | require(requestedAmount > 0) upfront guard |
| Fix | Description |
|---|---|
| FIX 1 | Explicit currentLeader != NONE guards in Prize and Drain withdrawals |
| FIX 2 | require(requestedAmount > 0) prevents zero-amount call griefing |
| FIX 3 | Mode snapshot at top of Withdraw() prevents mid-call state drift |
| FIX 6 | TWAL replaces flat leaderSince reset, closing deposit-timing exploits |
| FIX G2 | Sanctions modifier computed from snapshotted leader, not live state |
Every transaction, balance, and event is publicly auditable on-chain. You don't need to trust us — the chain speaks for itself.
| Constant | Value | Meaning |
|---|---|---|
MIN_DEPOSIT | 0.01 BNB | Minimum stake amount |
MIN_BALANCE | 0.001 BNB | Contract floor, withdrawals halt here |
PRIZE_RATE | 1,000 bps (10%) | Daily prize rate in Mode A and C |
YIELD_RATE_BPS | 100 bps (1%) | Daily yield rate in Mode B |
DEDUCT_RATE | 5,000 bps (50%) | Position weight deduction per withdrawal |
PEACE_THRESHOLD_BPS | 200 bps (2%) | If pool gap ≤ 2% of larger pool, leader = NONE → Mode B (ceasefire yield) |
SANCTIONS_SLOW | 200 bps (2%) | Deduction reduction for WEST when leading |
MIL_DRAIN_THRESH | 3,500 bps (35%) | Military overextension threshold |
INTEL_REC_THRESH | 1,500 bps (15%) | Minimum Intel for recovery to activate |
DIP_CAP | 3,000 bps (30%) | Diplomacy multiplier cap |
REF_L1 | 500 bps (5%) | Level 1 referral commission |
REF_L2 | 300 bps (3%) | Level 2 referral commission |
REF_L3 | 200 bps (2%) | Level 3 referral commission |
| Function | Access | Description |
|---|---|---|
Stake(faction, doctrine, referrer) | Public | Deploy a new position |
Withdraw(depositId, amount) | Public | Claim earnings from a position |
getConflictState() | View | Full state snapshot including TWAL accumulators |
getDeposit(id) | View | Full deposit struct for any position |
previewWithdraw(id) | View | Estimated claimable (Mode A/C) |
pendingYield(id) | View | Estimated claimable (Mode B) |
leadFraction(id) | View | TWAL lead fraction in BPS |
effectiveAmount(id) | View | Current net weight of a position |
| Event | Emitted When |
|---|---|
Staked(player, faction, amount, depositId) | New position created |
Withdrawn(player, depositId, payout, deduction, yieldMode) | Payout claimed |
LeadChanged(newLeader, timestamp) | Faction leadership changes |
PoolDrained() | Contract balance hits floor |
ReferralPaid(referrer, referee, level, amount) | Referral commission sent |
Referral commissions are paid independently of faction, mode, or leadership. A player with 10 direct referrals each staking 0.1 BNB earns 0.05 BNB instantly with zero game risk. Building a deep network is the lowest-risk income stream in GeoConflict.
deposit.amount − deposit.withdrawal. Your current share-determining position size.factionGrossDeposits − factionTotalDeductions. The faction's current effective treasury.