1 Summary
OptimusFlow is a set of smart contracts on BNB Smart Chain (chain ID 56). Users deposit USDT (BEP-20) into one of seven plans. Each plan pays a fixed percentage on a fixed schedule. Users who invite others earn a share of their network's returns. Longer plans also create an allocation of OPT, a separate BEP-20 token, which can be staked in its own contract.
Everything below follows from three design facts:
- One shared pool. All deposited USDT sits in a single PancakeSwap V3 liquidity position (an NFT) owned by the OptimusFlow contract. No individual has a separate vault.
- Immutable rules. OptimusFlow has no owner, no admin functions and no proxy. All rates, limits and fee wallets are constants or are set in the constructor.
- Lazy accounting. Returns are recorded on-chain as numbers and only become USDT when someone calls a function that settles them. Accruing a number does not move any USDT.
2 Architecture
OptimusFlow.sol
Registration, deposits, plans, settlement, claims, compounding, the 21-level referral tree, ranks and salary. Holds the PancakeSwap V3 LP NFT. Immutable, no owner.
OptimusToken.sol (OPT)
BEP-20 token with an 100M hard cap. Mints reward allocations into per-user vesting schedules, applies buy/sell tax on the PancakeSwap pair. Immutable, ownership renounced.
OptimusStaking.sol
Locks OPT for 175 days and mints 7% of the stake every 28 days, six times. Rewards share the 96M reward pool. Immutable, no owner.
External dependencies
- USDT at
0x55d3…7955, Binance-Peg BSC-USD with 18 decimals. - PancakeSwap V3 NonfungiblePositionManager at
0x46A1…4364. Used forincreaseLiquidity,decreaseLiquidityandcollecton one fixedlpPositionId. - OpenZeppelin
SafeERC20andReentrancyGuard. Every state-changing user function isnonReentrant.
Launch gate
The constructor requires a launchDate in the future. Until block.timestamp ≥ launchDate, every user function reverts with NotLaunched().
3 Registration
A wallet must call register(referrerUsername) once before it can deposit.
- Your username is generated for you. It is
OFplus an 8-digit number derived fromkeccak256(timestamp, difficulty, sender, nextUserId), e.g.OF37289345. If it collides, up to 10 retries are made. Leading zeros are dropped, so some names are shorter than 8 digits. - Referrals are compulsory. You must provide a referrer username to register. Empty strings are rejected. You can't refer yourself.
- The referrer must exist and qualify. The referrer must be registered and have at least $50 in active deposits (
REFERRAL_QUALIFICATION). A wallet that has reached 1000 positions qualifies on lifetime deposits instead. - Your referrer can't be changed. The upline is permanent once set.
4 Deposits & custody
deposit(amount, planId) takes USDT that you approved beforehand. Checks:
- $1 ≤ amount ≤ $100,000 per call (
MINIMUM_DEPOSIT,MAXIMUM_DEPOSIT). planId0–6, and fewer than 1000 positions in this wallet (MAX_POSITIONS).- Plan 0 (Free Flow): maximum 2 deposits per calendar month. Tracked via
lastNoLockDepositMonth(YYYYMM format) andnoLockDepositCountThisMonth(counter 0-2). Counter resets automatically when a new month is detected.
Sequence inside one transaction
safeTransferFrommoves the USDT from you to the contract._addLiquidityToPoolcallsincreaseLiquidityon the LP NFT. Any USDT the pool doesn't accept is sent back to you, and only the accepted amount (actualUsed) counts from then on.- A 1.25% token burn allocation is computed on
actualUsedand withdrawn from the pool with_withdrawFromPool. This USDT is used to buy OPT tokens from the market and burn them permanently, reducing circulating supply. The buyback and burn happens off-chain.totalBuybackBurnedtracks the total USDT allocated for this purpose. - A
Depositrecord is created at the fullactualUsedamount. ROI is calculated on this full amount. - Your
totalDepositedandtotalActiveDepositgrow, and every upline's team volume and leg totals are updated (up to 100 levels deep). Ranks are re-evaluated along the way. - Direct investment bonus: your level-1 referrer is credited 2% and your level-2 referrer 1% of the deposit, unconditionally. This goes to their
networkRewardAvailable. - On plans 3–6,
OptimusToken.mintRewardis called to create your OPT allocation (see §11).
How payouts leave the pool
_withdrawFromPool(amount, to) first uses any USDT already owed to the position. Otherwise it converts the shortfall to V3 liquidity units with the fixed constant USDT_TO_LIQUIDITY_RATE, calls decreaseLiquidity, then collects straight to the recipient. If the position has less liquidity than needed, the call reverts with "Insufficient LP", and the whole transaction fails, whether it is a claim, a deposit fee withdrawal or anything else.
5 Plans & ROI maths
The seven plans are set in the constructor as PlanConfig(duration, dailyROI, totalROI, tokenReward, planType), with rates in basis points (1 bp = 0.01%).
Free Flow (planType 0)
Accrues every second with no end date. Credited when _settleLockedPlans runs (on claim or on Free Flow capital withdrawal). Capital can be moved to your claimable balance with withdrawNoLockCapital(index) once the position is at least 24 hours old. That ends the position.
Fixed Flow (planType 1)
Nothing is credited before maturity. On the first settlement after startTime + duration × 1 day, capital plus the full return goes to your claimable balance and the position is closed. Capital cannot leave early under any circumstances.
Flow Bonds (planType 2)
Only complete 7-day blocks count. Partial weeks wait. At maturity any rounding remainder of the total return is credited and the capital is returned. For the 84-, 168- and 336-day bonds the term is an exact number of weeks (12, 24 and 48).
Referrers also receive up to 44% + 14% of each $63 unlock, plus 3% of the deposit at entry. All of it comes from the same pool.
6 Settlement & claims
Each user has two internal balances:
dailyRewardReserveholds your own ROI and returned capital.networkRewardAvailableholds direct bonuses, the referral ROI share and leadership differentials.
What settles what
| Function | Free Flow ROI | Fixed Flow maturity | Bond weeks & maturity |
|---|---|---|---|
claimRewards | yes | yes | yes |
withdrawNoLockCapital | yes | yes | no |
compoundRewards | no | no | yes |
Each time ROI is settled for you, the same amount is passed into the referral (§8) and leadership (§9) distributions for your upline. Your upline only earns from your ROI when you, or the batch processor, trigger settlement.
claimRewards(amount)
- Settles as shown above. Passing 0 claims everything available.
- Reverts if nothing is available, if the amount exceeds the balance, or if it is below $1.
- Takes from
dailyRewardReservefirst, then fromnetworkRewardAvailable. - Withdraws exactly that amount of USDT from the LP position to your wallet. No fee is charged on claims.
7 Compounding
compoundRewards(amount, newPlanId) turns claimable balance into a new position. The minimum is $10, and the 700-position limit applies.
- No USDT moves. The contract does not call
increaseLiquidity. It just lowers your claimable balance and records a newDepositfor the same amount. The pool's USDT doesn't change, but its obligations grow. - No platform allocation and no direct investment bonus are triggered.
- It does follow the same fee structure as deposits: 100% added to LP, then 7.25% removed for fees (5% admin + 1% marketing + 1.25% burn).
- It does trigger direct investment bonuses (2% L1 + 1% L2) for uplines.
- It does count toward upline team volume and legs, so it can affect ranks.
- It does not settle Free Flow ROI or matured Fixed Flow positions first. To include those, claim, or let the batch processor run, before compounding.
- The OPT allocation call passes a deposit size tier (
_getDepositTier: 0–5) where a plan ID is expected. In practice, compounds into plans 3–6 only receive OPT when the amount is $5,000 or more, at the rate of plan 3, 4 or 5 depending on the tier. See §15. - Free Flow's 2-per-month limit applies to compounds into Plan 0. Each compound into Free Flow increments the monthly counter.
8 Referral network
8.1 Direct investment bonus
On every new USDT deposit, your level-1 referrer gets 2% and your level-2 referrer gets 1%. No qualification is needed.
8.2 21-level ROI share
When a downline's ROI is settled, the contract walks up 21 referrers. For each level whose requirements that upline currently meets, it credits ROI × REFERRAL_REWARDS[level]. If an upline doesn't qualify, that share is not paid to anyone. It isn't passed further up.
8.3 Qualified directs
A direct counts as "qualified" if their first deposit brought their active deposit to $50 or more. This is checked once, inside _updateTeamCounters on that first deposit. A direct who starts below $50 and tops up later never becomes qualified. A qualified direct who later withdraws everything stays counted.
8.4 Own active deposit
"Own active deposit" means your totalActiveDeposit, or lifetime deposits if you hold 700 positions. It drops when positions mature or Free Flow capital is withdrawn, so levels can close again.
9 Ranks & leadership
9.1 Legs
For each of your directs, the contract tracks the active volume of that direct's entire subtree (directLegDeposit). Leg 1 is the largest single line. Leg 2 is the total of all other lines. A rank needs both legs to reach its threshold, so one strong line on its own isn't enough.
9.2 Rank table
Ranks are recalculated (_updateRank) whenever your team count or team volume changes. They can go down as well as up when downline positions mature. Any rank change resets the salary counter.
9.3 Leadership differential
When a downline's ROI is settled, the contract walks up to 100 uplines while keeping track of highestPctPaid. Each upline whose rank requirements are met at that moment and whose rank rate is higher than highestPctPaid receives:
The walk stops once 14% has been reached. The most paid out in total across the whole chain is therefore 14% of the ROI. Example: on a $100 settlement, a Rank 2 (4%) upline nearest the user receives $4, and a Rank 5 (10%) upline further up receives $6.
9.4 Same-rank holder bonus
When two IDs hold the same rank, the immediate upline receives an additional 5% bonus calculated on their direct downline's rank income:
Important: This bonus applies only to the direct upline relationship. There is no cascade effect through the network. Both users must hold the same active rank and meet all rank requirements.
Example: If your direct downline (who has the same rank as you) earns $100 in rank income from their team's ROI, you receive an additional $5 bonus. This encourages direct mentorship and team building while maintaining sustainable payout obligations.
10 Rank salary
claimSalary() can be called by a ranked user every 30 days, up to 6 times per rank. The counter resets whenever the rank changes.
10.1 Payment structure
Rank salary is paid 100% in OPT tokens:
- 100% OPT tokens: Minted at current market rates with rank-based vesting (10-20% monthly unlock)
- No USDT withdrawal: Preserves pool liquidity and supports sustainable growth
10.2 Example calculation
The OPT vesting speed depends on your rank: No Rank = 10% monthly, up to Rank 7 = 20% monthly. All tokens are vested to prevent immediate dumping.
10.3 Claim limits
Each rank tenure allows 6 salary claims (6 months). When you achieve a new rank, the counter resets and you can claim another 6 times at the new rate.
11 OPT token
11.1 Supply
- Absolute maximum: 100,000,000 OPT. Initial mint: 4,000,000 to the deployer.
- Reward mint cap: 96,000,000. This covers deposit allocations and staking rewards from both contracts.
- Only authorised minters (OptimusFlow and OptimusStaking) can mint. The minter list is permanently locked.
11.2 Deposit allocation
Deposits under $100 get nothing. The rates are 25, 30, 40 and 50 bps for plans 3, 4, 5 and 6. optPriceUSD is a reference price ($0.05 at launch), not a market price. So $1,000 in the 336-day bond gives $5 ÷ $0.05 = 100 OPT.
11.3 Vesting
Each allocation becomes its own VestingSchedule held by the token contract. One tranche is available straight away, and another unlocks every 30 days from the deposit. The tranche size is the rank-based rate in RANK_MONTHLY_UNLOCK_BPS: 10% with no rank, rising to 20% at Rank 7. The vesting rank is stored in the token contract (userRank). Claim with claimVestedTokens() or per schedule.
11.4 Trading tax
A 1% tax applies on buys from the PancakeSwap pair and 5% on sells to it. Wallet-to-wallet transfers are untaxed. Collected OPT is swapped to USDT once 1,000 OPT has built up and sent to the liquidity wallet.
12 OPT staking
stakeOPT(amount): minimum 100 OPT. Each stake is tracked separately.claimStakingRewards(index): for each full 28 days since the stake began, up to 6 periods, the contract mints 7% of the stake. Unclaimed periods build up.withdrawPrincipal(index): available from day 175. Returns exactly the OPT that was staked.- Total reward per stake is 42%. Rewards are minted from the shared 96M reward pool.
Period 6 is claimable on day 168, and principal unlocks on day 175. Rewards are new OPT, which adds to circulating supply. Staking does not touch the USDT pool.
13 Batch processor
calculateDailyRewards(length) can be called by anyone. It processes up to length users at a time, one day at a time since launch. For each user it computes that day's pro-rata ROI on Fixed Flow and Flow Bond positions, credits it to dailyRewardReserve, and runs the referral and leadership distributions on it.
This means a user's balance and their upline's rewards can grow even when the user takes no action. Gas is paid by the caller, and there's no reward for calling it. See §15 for how it interacts with on-demand settlement.
14 Trust model
| Who | Can | Cannot |
|---|---|---|
| Nobody (OptimusFlow) | — | Change rates, pause, upgrade, withdraw the pool, move the LP NFT |
| Burn wallet 0xC8D2…D9A9 | Receive 1.25% allocation for OPT buyback & burn | Touch the pool directly, change tokenomics |
| Nobody (OPT) | — | Change tax, mint beyond cap, modify tokenomics, pause, blacklist |
| Any address | Run calculateDailyRewards | Move other users' balances |
15 Wallets & safety
This site works with any EIP-1193 wallet. Installed browser wallets such as MetaMask, SafePal, Trust Wallet, OKX, Rabby, Coinbase Wallet and Binance Wallet are detected through EIP-6963. On mobile, deep links open the site inside the wallet's own browser. WalletConnect is available once a project ID is configured.
- Use the BNB Smart Chain network (chain ID 56). The site will offer to switch.
- Deposits need two transactions:
approve(only the exact amount is requested) and thendeposit. - Always check the contract address in your wallet before you sign. Nobody from OptimusFlow will ever ask for your seed phrase.
16 Function reference
| Function | Contract | Effect |
|---|---|---|
register(string) | Flow | Join under a referrer username |
deposit(uint256,uint8) | Flow | New position, fee withdrawal, direct bonus, OPT allocation |
claimRewards(uint256) | Flow | Settle, then send USDT to your wallet (0 = all) |
compoundRewards(uint256,uint8) | Flow | Turn balance into a new position |
withdrawNoLockCapital(uint256) | Flow | Close a Free Flow position into your balance |
claimSalary() | Flow | Rank salary: 100% vested OPT tokens (see §10) |
calculateDailyRewards(uint256) | Flow | Batch accrual, anyone can call |
getUserInfo / getUserTeamInfo / getAvailableRewards | Flow | Read account, team and balances |
getDepositInfo / getWeeklyROIAvailable | Flow | Read positions |
claimVestedTokens() | OPT | Release unlocked OPT tranches |
stakeOPT / claimStakingRewards / withdrawPrincipal | Staking | Stake, claim periods, exit at day 175 |
17 Glossary
- Active deposit
- The total of your open positions. It drops when positions mature or are withdrawn.
- bps
- Basis points. 100 bps = 1%.
- Claimable balance
dailyRewardReserve + networkRewardAvailable. Internal numbers, not USDT, until you claim.- LP NFT
- The PancakeSwap V3 position token that represents the pool's liquidity. Owned by the contract.
- Leg
- The subtree of one of your directs. Leg 1 is the largest, leg 2 is everything else.
- Settlement
- Converting accrued ROI into claimable balance and triggering upline rewards.
- Upline / downline
- Referrers above you / people who joined below you.