TheDocumentation Index
Fetch the complete documentation index at: https://agentflow-fea9d881-feat-republic-narrative.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
virtuals template implements a bonding curve x·y=k priced in paymentToken (USDT on BSC). Each token launched via factory.launch("virtuals", params) gets its own curve instance — FFactory, FRouter, and Bonding contracts cloned from audited implementations.
This template is used for memecoin-style or agent-of-marketplace tokens that want to graduate to a public DEX once they hit a fundraising threshold. The platform’s own $FLOW token does not use this template — it uses dpnm instead.
Lifecycle states
Prototype
Token live on its bonding curve. Anyone can buy or sell against the contract. No DEX pair yet.
Graduating
Curve has filled to 80%+ of the graduation threshold. UI shows an “almost there” state.
Sentient
Threshold hit. Liquidity migrated to PancakeSwap V2 (BSC) or Uniswap V2 (Base). LP burned to
0xdead. Bonding curve is sealed.Failed
Token did not reach threshold within the configured failure window. Curve closes. Holders can redeem at the curve’s last price.
How buys and sells work pre-graduation
Each trade goes through the clonedFRouter contract:
- Caller approves
paymentTokenfor the router. FRouter.buy(token, amountIn, minOut)(orsell) is called.- The router computes the curve price using
x·y=k, charges fees, mints (or burns) the appropriate amount of project token, and transferspaymentTokenin or out.
minOut. There is no order book — the curve itself is the counterparty. Buys and sells emit Buy / Sell events that the chain indexer in agentflow-api picks up to feed the live token page.
Graduation
When the lockedpaymentToken value reaches the per-token graduation threshold (set at launch time):
Liquidity migration
Locked
paymentToken is paired with the protocol-reserved liquidity slice and seeded into a fresh PancakeSwap V2 (BSC) or Uniswap V2 (Base) pool through the Migrator contract.LP burn
LP tokens are sent to
0x000000000000000000000000000000000000dEaD. The pool is permanent and trustless.Failure path
If the threshold is not reached within the failure window, the token transitions tofailed. Holders can redeem their balance at the curve’s last price (a “rage exit”). Project agents stop receiving compute budget. The creator can launch a new token with a fresh curve under a new ticker.
Why a bonding curve and not a fixed-price sale
A bonding curve gives instant liquidity without an order book. Early buyers get the lowest price; later buyers pay more, which compensates early backers without needing a vesting contract. The curve also creates a clean trigger for graduation — once price discovery has happened on-curve, the DEX migration starts from a known floor.Bonding curve vs dpnm
| Property | virtuals (this page) | dpnm |
|---|---|---|
| Price function | x·y=k | pool / supply |
| Pair token | paymentToken (USDT) | paymentToken (USDT) |
| DEX exit | Yes — graduation to PancakeSwap V2 | No — closed system forever |
| Daily buy limit | None | max(50 USDT, pool * 0.001) per user |
| Income limit | None | 1:2 on every buy |
| Marketing tree | Optional, off-chain | Built-in 3 × 10 on-chain |
| Best for | Memecoin / agent token | Affiliate / ecosystem currency |
dpnm philosophy.
Live state
template ("virtuals" or "dpnm"), state, progressToGraduation (virtuals only), holdersCount, and lastTradePrice. See Tokens API.