# Multi-Chain Token Launchpad for BNB Smart Chain and Robinhood Chain

## Technical report and reference specification

*Research date: 2026-10-07. Every chain parameter, address and ecosystem figure here can change. Check each one against the cited primary source before deployment.*

---

## 0. Executive summary

- **The two chains are both EVM, but they behave very differently at runtime.** One Solidity codebase can target both, provided chain-specific behavior sits behind small adapters.
  - BSC is a PoSA L1. Since the Fermi hard fork it has 0.45 s blocks and fast finality [S16].
  - Robinhood Chain is an Arbitrum Orbit/Nitro L2 that settles to Ethereum [S3][S10]. It uses ETH for gas [S4], orders transactions first-come-first-served through a centralized sequencer [S3], and that sequencer screens out sanctioned addresses [S3].
- **Tax (fee-on-transfer) tokens are the biggest design constraint.**
  - Uniswap's v3 documentation states that "Fee-on-transfer tokens will not function with our router contracts" [S14].
  - Uniswap v2-style routers do offer `...SupportingFeeOnTransferTokens` swap variants [S34].
  - So asymmetric buy/sell taxes should either migrate to a **V2-style pair** or be implemented as **pool-level hook fees** (Uniswap v4 / PancakeSwap Infinity) instead of inside the token's `transfer`. This is an inference from [S14][S22]; §4.4 covers it.
  - A production BSC launchpad (Flap) already ships asymmetric tax tokens with vaults, dividends, burn and LP splits. It migrates through both a `V2_MIGRATOR` and a `PCS_INFINITY_CL_MIGRATOR` [S26][S27].
- **Tokenized stocks can be quote or reward assets, but with constraints.**
  - Robinhood Stock Tokens are 18-decimal ERC-20s. Robinhood Assets (Jersey) Limited issues them as tokenised debt securities [S1].
  - Corporate actions use an ERC-8056 `uiMultiplier()` rather than rebasing [S1][S5][S15].
  - Their price oracles follow 24/5 market hours and pause during corporate actions [S6].
  - They may not be offered to US persons, or in the UK, Canada, Switzerland and other jurisdictions [S1].
  - A launchpad that pairs tokens against stocks takes on these properties and restrictions.
- **The best-documented launchpad failure class is migration.**
  - Four.meme lost about $183k on 2025-02-11 because its migrator reused an attacker-pre-created pool without checking its price [S23].
  - It was exploited again later through pre-launch transfers to the predicted pair address [S24][S25].
  - The migration specification in §4.10 is written against both failures.

### Evidence legend used throughout

| Tag | Meaning |
|---|---|
| **[F]** | Fact, stated in the cited source. Primary sources are marked with ★ in §11. |
| **[I]** | Inference or design recommendation by the author, drawn from the cited facts. Not a claim made by the source. |
| **[U]** | Uncertain: sources conflict, the source is secondary or promotional, or the information may be stale. |
| **[Q]** | Open question this research could not answer. Collected in §10. |

Paragraphs that only describe the proposed design (specifications, interfaces, pseudocode) are **[I]** unless they carry a citation.

---

## 1. Scope and method

**Question.** What contracts, integrations, architecture, and security/gas/compliance measures does a launchpad need to support BSC and Robinhood Chain? The launchpad must offer bonding curves, migration to DEXes, configurable tax/vault/dividend/burn/lock features, and custom quote tokens including tokenized stocks.

**Method.** I read official documentation (Robinhood Chain docs, BNB Chain blog, Uniswap and PancakeSwap developer docs, EIP repository, Flap docs) and security post-mortems. I used secondary sources only where no primary source was found, and tagged those [U].

**Limits.**
- No contract was deployed or tested on-chain, and no address was checked against an explorer by me.
- Several primary pages (e.g., the Robinhood token registry) render live data that the fetch tool could not see.
- This report is engineering guidance, not legal advice.

---

## 2. Platform facts: BSC vs Robinhood Chain

| Property | BNB Smart Chain | Robinhood Chain |
|---|---|---|
| Type | EVM L1, PoSA with fast finality [F][S16] | Ethereum L2 built on Arbitrum Orbit / Nitro [F][S3][S10]. Uses Ethereum blob DA [U][S11] |
| Chain ID | 56 (well known; not re-verified in this session) [U] | 4663 mainnet, 46630 testnet [F][S10][S9] |
| Gas token | BNB | ETH. No native chain token [F][S4] |
| Block time / confirmation | 0.45 s since Fermi, activated 2026-01-14 02:30 UTC (BEP-619) [F][S16] | About 100 ms soft confirmation target. Hard finality comes after posting to and confirmation on Ethereum [F][S3][S10] |
| Fee floor | Validators cut the minimum gas price from 0.1 to 0.05 gwei (proposed 2025-09) [U][S18][S19]. The current value is unverified | Two components: L2 execution plus an L1 data fee that scales with calldata [F][S4]. Base fee reported at about 0.05 gwei [U][S11] |
| Ordering / MEV | PBS: builders submit bundles to validators [F][S29]. Builder market is highly concentrated (top two above 96%, per one 2026 paper) [U][S30] | First-come-first-served by sequencer arrival. No priority gas auctions [F][S3] |
| Censorship / screening | No protocol-level screening documented [Q] | The sequencer excludes transactions that involve sanctioned addresses [F][S3] |
| `block.number` | Native L1 block number | Estimate of the **L1** block number. Use `ArbSys(0x64).arbBlockNumber()` for the L2 block [F][S3] |
| Randomness | — | `prevrandao`/`difficulty` are constant. Use a VRF [F][S3] |
| Max contract size | 24 KB (EVM default) [U] | 96 KB code, 192 KB init code [F][S3] |
| Account abstraction | EIP-7702 since the Pascal hard fork (mainnet 2025-03-20) [F, secondary][S17] | Account abstraction documented. UserOperations recommended for batching [F][S4] |
| Main DEXes | PancakeSwap v2 Factory `0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73`, Router `0x10ED43C718714eb63d5aA57B78B54704E256024E` [F][S21]. v3 Factory `0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865`, NPM `0x46A15B0b27311cedF172AB29E4f4766fbE7F4364` [F][S20]. Infinity (Vault + CL/Bin pool managers + hooks) [F][S22] | Uniswap v2, v3, v4 and UniswapX live since launch [F][S12]. v3 Factory `0x1f7d7550b1b028f7571e69a784071f0205fd2efa`, UniversalRouter `0x8876789976decbfcbbbe364623c63652db8c0904` [F][S13] |
| Canonical quote assets | WBNB, stablecoins (addresses not collected here) [Q] | WETH `0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73`, USDG `0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168` [F][S7] |
| Tokenized stocks | Ondo Global Markets expanded to BNB Chain (announced 2025-10-29). Non-US only, with due diligence for mint/redeem/transfer [F, secondary][S31][S32] | Robinhood Stock Tokens. RHJ issuer, ERC-20, 18 decimals, ERC-8056 multiplier, Chainlink feed per asset [F][S1][S5] |
| Bridging | — (out of scope) | Canonical Arbitrum bridge: about 10 min deposits, about 7 day withdrawals. Also LayerZero/Stargate, CCIP, Relay, Across, LiFi/0x [F][S8] |
| Launch timeline | — | Testnet 2026-02-10, mainnet 2026-07-01 [F][S10][S11] |

**Ecosystem context [U].**
- One secondary source reports the following for Robinhood Chain [S33]:
  - Robinhood subsidized gas for Robinhood Wallet transactions until 2026-09-29.
  - A launchpad called Pons created about 646k tokens between July and late September 2026.
  - Uniswap v3/v4 carry about 78% of volume.
- None of these figures were verified against primary data.
- DefiLlama lists Flap on BSC, X Layer, Monad and Robinhood Chain [U][S28-search].
- Flap documents a Robinhood-mainnet `IndexVaultFactory` [F][S28].

---

## 3. System architecture overview [I]

```
                     ┌──────────────────────── Frontend (one dApp) ────────────────────────┐
                     │ Chain switcher · Launch wizard · Trade/curve view · Portfolio · Admin│
                     └──────────────┬───────────────────────────────────┬──────────────────┘
                                    │ REST/GraphQL + WS                 │ wallet RPC (viem/wagmi)
                     ┌──────────────▼──────────────┐                    │
                     │ Unified API / aggregation    │                    │
                     │ (chain-tagged entities)      │                    │
                     └───┬───────────────────┬─────┘                    │
               ┌─────────▼─────┐     ┌───────▼────────┐                 │
               │ Indexer: BSC  │     │ Indexer: RH    │   ← per-chain finality/reorg policy
               └─────────┬─────┘     └───────┬────────┘                 │
                         │                   │                          │
   ┌─────────────────────▼───────┐   ┌───────▼──────────────────────────▼──┐
   │ BSC contracts               │   │ Robinhood Chain contracts            │
   │ LaunchFactory · CurveEngine │   │ (same bytecode, different adapters)  │
   │ QuoteRegistry · Migrator(s) │   │ QuoteRegistry incl. StockToken adapter│
   │ ModuleRegistry · Locker     │   │ Migrator(s) → Uniswap v2/v3/v4       │
   │ → PancakeSwap v2/v3/Infinity│   │                                      │
   └─────────────────────────────┘   └──────────────────────────────────────┘
```

**Design principles.**
1. **One audited core, chain adapters at the edges.**
   - Shared core: the factory, curve engine and token templates.
   - Chain adapters:
     - DEX migrators
     - quote-asset adapters
     - an "L2 utils" library for block numbers, sequencer uptime and gas info.
   - Basis: [F] Robinhood docs say Solidity contracts deploy unchanged [S3]. [I] The adapters are only needed for the semantic differences listed in §2.
2. **Independent deployments per chain.** Tokens are launched natively on one chain. Cross-chain is a data and UX concern (§6), not a token-bridging concern by default.
3. **Immutable economics, minimal admin surface.**
   - Tax rates, splits and curve parameters are fixed at creation, or can only *decrease*.
   - Protocol-level parameters go behind a timelock.
4. **Composable modules from an allowlist.** Creators combine audited modules (§4.11). Arbitrary user code is supported only through an explicitly "unaudited" vault path, as Flap does with custom vault factories [F][S27][S28].

---

## 4. Smart contract specification

### 4.1 Factory and token templates

**[I] Specification.**
- `LaunchFactory.create(LaunchParams p)` deploys the token as an **EIP-1167 minimal-proxy clone** of an audited template. Templates include `PlainERC20`, `TaxTokenV1` and `ScaledReward`.
  - Clones keep deployment gas low, which matters for high-volume meme launches.
- Use `CREATE2` with a user-supplied salt so vanity addresses are possible.
  - Flap documents exactly this pattern: use the tax-token implementation address as the clone base for vanity salts [F][S26].
- The factory mints the whole supply to the `CurveEngine` in the same transaction. The creator never holds unlaunched supply.
- Optional atomic **dev-buy**: the creator can buy on the curve inside the creation transaction, with the amount capped by `maxDevBuyBps`.
- **Before migration, transfers are restricted.**
  - The token allows transfers only to and from the `CurveEngine` and `Migrator`.
  - Nobody else can transfer until `launched == true`.
  - This must hold **for every code path**, including any "buy-and-send-to" helper.
  - Four.meme's second exploit came from a function that let unlaunched tokens move to the predicted LP address [F][S24][S25].

```solidity
struct LaunchParams {
    string name; string symbol; bytes32 salt; string metadataURI;
    address quoteToken;          // address(0) = native (wrapped internally)
    CurveConfig curve;           // §4.2
    MigrationConfig migration;   // §4.10
    TaxConfig tax;               // §4.4 (zeroed = no tax)
    ModuleConfig[] modules;      // vault, dividend, locker, burn... (§4.11)
    uint64 tradingStart;         // optional delayed start
    uint16 maxWalletBps;         // optional anti-whale window
    uint32 antiSnipeSeconds;
}
```

### 4.2 Bonding curve engine

**[I] Recommended default: a virtual-reserve constant-product curve.** It is simple and can be priced in closed form. Its final price also equals the price of the DEX pool it migrates into, which avoids an arbitrage gap at migration.

Let `T_v` be the virtual token reserve and `Q_v` the virtual quote reserve. Let `s` be the tokens sold so far and `q` the quote raised. Then:

- Invariant: `(Q_v + q) · (T_v − s) = k = Q_v · T_v`
- Spot price: `P(s) = (Q_v + q) / (T_v − s) = k / (T_v − s)²`
- Buy with `Δq` (after fee): `Δs = (T_v − s) − k / (Q_v + q + Δq)`
- Sell `Δs`: `Δq = (Q_v + q) − k / (T_v − s + Δs)`
- Graduation happens when `s ≥ S_grad` (or `q ≥ Q_grad`). The last trade is clipped so the curve never oversells. Any excess input is refunded.

**Migration price continuity [I].**
- At graduation the curve price is `P* = (Q_v + q)/(T_v − S_grad)`.
- The migrator seeds the DEX with `q_net` quote and `t_LP = q_net / P*` tokens.
  - `q_net` is `q` minus fees. On v3 and v4 it is converted to the matching `sqrtPriceX96`.
- Choose `S_grad` and total supply so that `t_LP` is exactly the reserved LP allocation. Any remainder is burned.
- Four.meme reportedly reserves 20% of supply for the DEX pool [U][S35], and Flap exposes graduation thresholds such as `TWO_THIRDS` and `FOUR_FIFTHS` [F][S27]. The parameters are therefore product choices.

**Configurable curve families.**
- Constant-product (default).
- Linear `P = a + b·s`.
- Exponential.
- Fixed-price "fair launch" batch auction. Uniswap also documents a "Liquidity Launchpad" with deployments on Robinhood Chain [F][S13-search]; this report has not analysed it in detail [Q].

Each family is a stateless library behind `ICurve { quoteBuy; quoteSell; graduated; }`, so curves can be swapped without touching custody.

**Precision and decimals [I].**
- Normalize every quote asset internally to 18 decimals. USDG decimals were not confirmed [Q].
- Use `mulDiv` with explicit rounding: round **against** the trader on buys and on sells.

**Fees.**
- A protocol fee in bps on each curve trade. Four.meme reportedly charges 1% [U][S35].
- An optional creator fee.
- Fees are taken in the quote asset to avoid token-side sell pressure.

**Slippage and deadline.** Every buy and sell takes `minOut` and `deadline`. On BSC, 0.45 s blocks make stale signatures expire quickly, so the frontend should set short deadlines [I][S16].

### 4.3 Quote-token abstraction (native, stablecoins, crypto, stocks/RWA)

**[I] `QuoteRegistry` (protocol-governed allowlist).** Each entry records:

```solidity
struct QuoteInfo {
    bool enabled;
    uint8 decimals;
    QuoteKind kind;          // NATIVE_WRAPPED, STABLE, CRYPTO, STOCK, RWA_OTHER
    address oracle;          // optional, for USD display & caps
    uint256 minRaise;        // per-asset graduation bounds
    uint256 maxRaise;
    bytes32 dexProfile;      // which migrators / fee tiers are allowed
    bool requiresHoursGate;  // stock-like assets
}
```

**Rules.**
- **Native gas tokens** (BNB, ETH) are wrapped to WBNB/WETH on entry. All internal accounting uses the ERC-20 form.
  - Flap documents `address(0)` → wrapped native in the same way [F][S26].
- **Reject fee-on-transfer, rebasing and hook-heavy quote assets.**
  - Measure the balance delta on every `transferFrom`. Revert if the received amount differs from the requested amount.
  - Uniswap documents that rebasing tokens make LPs bear negative rebases, and that fee-on-transfer tokens do not work with its routers [F][S14].
- **Robinhood Stock Tokens as quote assets.**
  - Verify the canonical address. "A token with a matching name/ticker but a different contract address is not a Robinhood Stock Token" [F][S7]. Source addresses from `GET https://api.robinhood.com/rhj/assets` → `deployments[]` [F][S2].
  - The raw `balanceOf` stays constant across splits and dividends because the multiplier changes instead [F][S5][S15]. **Do all curve and pool accounting in raw units.** Show UI amounts as `raw · uiMultiplier() / 1e18` [F][S5].
  - For USD display, the on-chain Chainlink feed is **already multiplier-adjusted**. Do not apply the multiplier twice [F][S5][S6].
  - The REST `/prices` values are *raw* underlying prices, so apply `currentMultiplier` to them [F][S2].
  - Gate on `tradingCapabilities` and `isTradingHalt` from the API, which is off-chain and advisory [F][S2]. Gate on `oraclePaused()` on-chain [F][S6].
  - Corporate actions publish a pending multiplier with `effectiveAt()` [F][S5]. **[I]** Block graduation within a configurable window around `effectiveAt` so the pool is not seeded at a price that is about to jump in UI terms.
- **BSC tokenized stocks (e.g., Ondo Global Markets).**
  - Ondo reports due-diligence requirements to mint, redeem *or transfer* [F, secondary][S31][S32].
  - **[I]** If the token enforces transfer allowlists on-chain, a launchpad contract that receives it must itself be allowlisted, or transfers will revert.
  - Each such asset needs a dry-run compatibility test before it is enabled [Q].
- **Pricing in multiple quotes.** The backend normalizes market cap to USD with oracles. The contracts never depend on oracle prices for curve math. Oracles are used only for optional USD-denominated caps, display and analytics. This keeps oracle failure out of the trade path [I].

### 4.4 Tax tokens with asymmetric buy/sell taxes

**Facts.**
- Uniswap v3 routers do not support fee-on-transfer tokens, and Uniswap says it will not build such a router [F][S14].
- Uniswap v2 Router02 has `swapExactTokensForTokensSupportingFeeOnTransferTokens` and related functions. These measure actual received balances, and no exact-output fee-on-transfer variants exist [F, secondary][S34].
- Flap's `FlapTaxTokenV3` implements the following [F][S26][S27]:
  - Independent `buyTaxRate` and `sellTaxRate`, in bps. The example uses 300 buy and 1000 sell.
  - `taxDuration` and `antiFarmerDuration`.
  - Splits `mktBps` / `deflationBps` / `dividendBps` / `lpBps`.
  - An adaptive liquidation threshold for swapping accumulated tax tokens back to the quote token.
  - A capped commission.
- Four.meme reportedly offers fixed tax rates (1/3/5/10%) applied only after graduation [U][S-search four.meme].

**Two implementation strategies [I].**

| | A. Token-level fee-on-transfer (classic) | B. Pool-level hook fee (v4 / Infinity) |
|---|---|---|
| Where tax is charged | `_update()` override detects transfers to or from a registered pool | `beforeSwap`/`afterSwap` hook takes a fee delta in the quote asset |
| DEX compatibility | V2 pairs only, using the `SupportingFeeOnTransfer` router functions. Not Uniswap v3 routers [S14] | Uniswap v4 (live on Robinhood Chain [S12]) and PancakeSwap Infinity hooks [S22]. Hook fee capabilities must be checked per protocol [Q] |
| Wallet-to-wallet transfers | Usually untaxed (needs a pool registry) | Never taxed, because the token is a plain ERC-20 |
| Aggregator support | Often broken or needs special flags | Native to v4/Infinity routers |
| Swap-back sell pressure | The token sells its own tax balance into the pool | The fee is taken in the quote asset, so no swap-back is needed |
| Evasion | Routing through unregistered pools or v3 avoids the tax | Trading in other pools avoids the hook. Mitigate by keeping only one canonical pool liquid |

**Recommended specification (A, for V2 targets).**
- `buyTaxBps` and `sellTaxBps` are independent, with a hard cap. **[I]** Suggest ≤ 1000 bps (10%). The Flap docs examined give no maximum, and a third-party site claims 10% [U].
- Taxes can only be lowered after launch, never raised. Optional auto-decay to zero after `taxDuration`, as in Flap [F][S26].
- No tax while the token is on the curve. The curve's own fees apply there. This matches Four.meme's reported behavior [U]. **[Q]** The Flap docs did not clearly say whether sell tax applies on the curve.
- Buy/sell detection: `from ∈ pools` means buy, `to ∈ pools` means sell. The pool set is written once by the migrator and is append-only through a timelocked function.
- Exempt addresses: the curve engine, migrator, vault and locker only. No discretionary exempt list for creators, because hidden exemptions are a common rug vector [I].
- Swap-back:
  - The token accumulates tax and sells it when `balance ≥ threshold`, guarded by an `inSwap` reentrancy flag.
  - Cap each swap at a percentage of pool reserves to limit price impact.
  - Never swap back during a buy.
  - Flap's bidirectional adaptive threshold is a production-tested reference [F][S26].
- The output in the quote asset is split by bps into marketing/treasury, burn, dividends, auto-LP and vault. The splits must sum to 10000.

**Recommended specification (B, for v4/Infinity targets).**
- The token is a plain ERC-20.
- The launchpad deploys one audited `LaunchTaxHook` per chain and registers a pool per token with `hookData` holding the tax config.
- The hook charges the buy fee or sell fee as a delta on the quote side and routes it to the token's `FeeProcessor`.
- **[Q]** Hook permission flags, fee-delta limits and audit status must be confirmed in the Uniswap v4 and PancakeSwap Infinity docs. This research did not confirm that Infinity hooks can collect custom fees [S22].

### 4.5 Programmable vaults

**[F] Reference design: Flap.**
- `VaultPortal.newTokenV6WithVault` creates the token and its vault in one transaction [S27].
- Vault factories derive from `VaultFactoryBaseV2`/`VaultBaseV2`.
- Custom factories can be pasted in the UI.
- Indexers should check `vaultFactory` against an allowlist [S28].

**[I] Interface.**

```solidity
interface ILaunchVault {
    function onTaxReceived(address quote, uint256 amount) external; // pushed by FeeProcessor
    function onMigrated(address pool) external;
    function description() external view returns (string memory);  // for UI
}
interface ILaunchVaultFactory {
    function create(address token, bytes calldata data) external returns (ILaunchVault);
    function schema() external view returns (string memory);        // JSON schema → auto-generated UI form
}
```

**Built-in vault types [I].**
1. Buyback-and-burn.
2. Buyback-to-LP.
3. Dividend vault in any asset (see §4.6).
4. **Stock/RWA basket vault.** This buys a fixed basket of tokenized stocks with tax proceeds and distributes a basket token. Flap's `IndexVaultFactory` exists on both BNB mainnet and Robinhood mainnet [F][S28]. On BSC, its examples pay out in "NVDAon/AAPLon/TSLAon/MSFTon"-style tokens [F][S28].
5. Milestone treasury: release to the creator by market-cap milestones, with oracle-free market cap computed from pool reserves using a TWAP.
6. Vesting vault (see §4.8).

**Safety [I].**
- Vaults receive funds only through push calls, and never get token admin rights.
- A failing vault call must not block the token's transfers. Wrap it in `try/catch` and accrue the funds for later retry.

### 4.6 Dividends and burns

**Dividend accounting [I].** Use the standard **magnified dividend-per-share** pull pattern: `magnifiedPerShare += amount · 2^128 / eligibleSupply`. Each holder's `withdrawable = (magnifiedPerShare · balance + correction) / 2^128`, and corrections update on every balance change. This gives:
- O(1) gas per transfer.
- No loops over holders.
- Payouts in the token itself, the quote asset, or any asset with a registered swap path. Flap supports exactly these three cases with a `SwapRegistry` [F][S26].

**Exclusions and claims [I].**
- Exclude pools, the burn address, lockers and vaults from `eligibleSupply`.
- Enforce `minimumShareBalance`, a Flap parameter [F][S27], to stop dust farming.
- Claims are pull-based. Optionally, a keeper bot auto-claims for the top N holders, paid from the vault.

**Burns [I].**
- Real burn reduces `totalSupply`, which is preferable for transparency.
- Sending to `0x…dEaD` is an alternative only where a template cannot reduce supply.
- Burn sources: a tax split, buyback vaults, and leftover tokens at migration.

**Stock-token rewards [I].**
- If rewards are paid in Robinhood Stock Tokens, record raw amounts.
- The UI should show `balanceOfUI` [F][S5].
- Re-check jurisdiction gating in the frontend before *showing* claim buttons (§9).

### 4.7 Liquidity controls

**LP disposition at migration [I].** Choose one, and display it immutably in the UI:
- (a) Burn LP. For V2 pairs, send LP tokens to dead. For v3/v4, send the position NFT to an unowned contract that only collects fees.
- (b) Lock LP in `Locker` until a set time.
- (c) Lock LP while sending fee collection rights to the creator or vault. Infinity and v4 positions allow fee claims without removing liquidity.

CoinMarketCap reports that Four.meme burns LP after migrating to PancakeSwap V3 [U][S-search four.meme].

**Launch-window protections [I].**
- `maxWalletBps` and `maxTxBps` for the first `antiSnipeSeconds` after migration.
- `tradingStart` delay.
- Optional per-block buy limits.
- All automatically expire. None can be re-enabled.

**Chain-specific MEV notes.**
- BSC sandwich exposure is significant under PBS with near-zero gas [F, secondary][S29][S30]. Recommend routing frontend swaps through private or "MEV-protected" RPC endpoints offered by builders [I]. Specific providers are not verified [Q].
- Robinhood Chain uses FCFS ordering with no priority auctions [F][S3]. This removes gas-price frontrunning, but latency-based racing is still possible [I].

### 4.8 Token lockers and vesting

**[I] `Locker` contract (one per chain, non-upgradeable).** It provides:
- `lock(token|lpNFT, amount, unlockTime, beneficiary)`.
- `vest(token, total, start, cliff, duration, beneficiary, revocable=false)`, with linear or step release.
- `extendLock` only. No early unlock.
- Events indexed for public lock pages.

**Design rules [I].**
- Support ERC-20 LP tokens (V2) and ERC-721 positions (v3/v4/Infinity).
- Revoke only if `revocable` was set at creation and is shown in the UI.
- **Robinhood-specific.** `block.number` is an L1 estimate, so all schedules **must use `block.timestamp`**, never block numbers [F][S3].
- Vested Stock Token amounts stay in raw units and the UI applies the multiplier [F][S5].

### 4.9 Multi-pool and stock-paired designs

**[I] Options.**
1. **Stock-paired launch.** A creator's token uses a Stock Token (e.g., a Robinhood AAPL token) as its quote asset on the curve. It migrates to a Uniswap v3/v4 `TOKEN/STOCK` pool. Considerations:
   - **Market hours.** Stock feeds update 24/5 [F][S6]. On-chain swaps continue 24/7 [F][S12], but arbitrage against the underlying is weaker outside market hours. Expect wider spreads at weekends [I].
   - **Corporate actions.** Raw balances in the pool are unchanged [F][S5], so the AMM price in raw units stays consistent. UI prices must apply the multiplier.
   - **Liquidity depth.** The pair is two hops from USD (token→stock→USDG). The frontend router should quote multi-hop paths through Uniswap's UniversalRouter [F][S13].
2. **Multi-pool.**
   - The migrator splits graduation liquidity across `TOKEN/WETH` and `TOKEN/USDG`, or `TOKEN/WBNB` and `TOKEN/stable`.
   - Tax tokens must register every pool in the token's pool set (strategy A).
   - **[I]** Fragmentation lowers depth per pool. Recommend at most two pools, with ≥ 70% in the primary pool.
3. **Index-paired / basket.**
   - Rewards are paid in a basket token wrapping N stock tokens, following Flap's `IndexVaultFactory` [F][S28].
   - Compared with a stock-paired pool, this keeps the trading pair simple (WBNB/WETH) while still giving "stock exposure" as rewards. **[I]** This is the lower-risk default.

### 4.10 Migration (curve → DEX)

**Known failures to design against.**
- **Pre-created pool with a manipulated price.** Four.meme's migrator called `createAndInitializePoolIfNecessary`. When the pool already existed with an attacker-set `sqrtPriceX96`, the migrator deposited about 24 WBNB and 200M tokens at the wrong price. Loss was about $183k on 2025-02-11 [F][S23].
- **Token transfer before launch to the predicted pair.** The attacker moved restricted tokens to the not-yet-created pair address and front-ran the launch. Loss reported at about $120k [F, secondary][S24][S25].

**[I] Migration specification.**
1. Graduation sets `graduated = true` atomically. The curve stops trading in the same transaction as the final buy.
2. Migration is **atomic in the final buy**, or is callable only by the migrator role within N blocks, with a public fallback after that.
3. **Pool existence handling.**
   - **V2:** If the pair exists, read its reserves. If `totalSupply > 0` or the reserves deviate from `P*`, then either:
     - "sync and correct": donate the one-sided balance and call `skim`/`sync` safely, or
     - abort to the fallback path, a protocol-owned alternative fee tier or pool.
     - Never `addLiquidity` blindly.
   - **v3/v4/Infinity:**
     - Compute the target `sqrtPriceX96` from `P*`.
     - If the pool exists and `|slot0.sqrtPriceX96 − target| > tolerance`, choose one:
       - a different fee tier or hook that does not exist yet (preferred on v4, where the hook address can be launchpad-specific), or
       - a corrective swap capped by a strict budget, then add liquidity.
     - Always pass `amount0Min`/`amount1Min` derived from `P*`.
4. **Pre-launch transfer lock.** Covers all transfer paths. Only `CurveEngine → buyer` and `CurveEngine/Migrator → pool` are allowed until `launched`.
5. Mint LP, apply the LP disposition (§4.7), and register pools in the tax token (§4.4).
6. Emit `Migrated(token, dex, pool, quoteAmt, tokenAmt, sqrtPriceX96, lpDisposition)` for indexers.

**DEX targets.**

| Target | Chain | Use for | Notes |
|---|---|---|---|
| PancakeSwap v2 | BSC | Tax tokens (strategy A), simple LP burn | Factory and router per [S21] |
| PancakeSwap v3 | BSC | Non-tax tokens, concentrated full-range | Factory and NPM per [S20]. Fee-on-transfer tokens are unsafe [I by analogy to S14] |
| PancakeSwap Infinity CL/Bin | BSC | Hook-based tax (strategy B), cheaper pool creation through singleton | Architecture per [S22]. Flap ships `PCS_INFINITY_CL_MIGRATOR` [F][S27]. Addresses not collected [Q] |
| Uniswap v2 | Robinhood | Tax tokens (strategy A) | Live per [S12]. Addresses not collected [Q] |
| Uniswap v3 | Robinhood | Non-tax tokens | Addresses per [S13] |
| Uniswap v4 | Robinhood | Hook-based tax, custom curves | Live per [S12]. Third-party PoolManager address listings need explorer checks [U] |

### 4.11 Mix-and-match component model

**[I] Module registry.**
- `ModuleRegistry` stores `(moduleId → implementation, version, audited, chainMask, incompatibleWith[])`.
- `LaunchParams.modules` is validated against a **compatibility matrix** at creation. Examples:

| Module ↓ / combines with → | Tax (A) | Tax (B hook) | v3 migration | Stock quote | Dividend | LP burn | Locker |
|---|---|---|---|---|---|---|---|
| Tax (A, fee-on-transfer) | — | ✗ | ✗ (router incompatible [S14]) | ⚠ allowed, tested | ✓ | ✓ | ✓ |
| Tax (B, hook) | ✗ | — | ✗ (v4/Infinity only) | ⚠ | ✓ | ✓ | ✓ |
| Stock quote | ⚠ | ⚠ | ✓ | — | ✓ | ✓ | ✓ |

- The frontend wizard reads the matrix plus each vault factory's `schema()` to render valid options only.
- Simulate the whole configuration with `eth_call` and present it before signing.
- The resulting **"launch manifest"** (JSON) is hashed and stored on-chain in the creation event, so explorers and users can check what was configured.

---

## 5. Chain-specific implementation notes

**Robinhood Chain (Arbitrum Nitro) [F unless tagged].**
- Use `ArbSys.arbBlockNumber()` instead of `block.number` for any per-block limit [S3]. Use timestamps for schedules [I].
- Do not use `prevrandao` for randomness, such as fair-launch lotteries. Use a VRF [S3].
- Check Chainlink's **L2 Sequencer Uptime Feed** with a grace period before trusting any price [S6]. Reject stale and non-positive prices [S6].
- L1→L2 messages see an aliased `msg.sender`. Any admin action relayed from L1, such as a timelock on Ethereum, must use the alias [S9].
- The fee contains an L1 data component that scales with calldata [S4]. Pack calldata (see §8).
- The 96 KB contract limit [S3] permits larger contracts. **[I]** Still keep bytecode under 24 KB so the same artifacts deploy on BSC.
- Withdrawals through the canonical bridge take about 7 days [S8]. Do not design flows that require fast L2→L1 settlement.
- The sequencer excludes sanctioned addresses [S3]. **[I]** Reads still work, so indexers will see balances of screened addresses, but those addresses cannot transact.

**BSC [F unless tagged].**
- 0.45 s blocks [S16]. BNB Chain advises time-sensitive apps to review confirmation and polling assumptions [S16].
- **[I]** Use block-count windows only with constants derived from the 0.45 s interval, and re-derive them at each hard fork. Prefer timestamps.
- Fast finality is the recommended confirmation mechanism [S16]. **[I]** Indexers should mark events "final" using the finalized block tag, not a fixed depth.
- EIP-7702 is available [S17]. **[I]** It enables batched approve+buy and sponsored-gas onboarding from the same smart-account flow as on Robinhood.

---

## 6. Frontend and backend architecture

### 6.1 Backend

**[I] Per-chain indexers.** Self-hosted (e.g., Ponder, Subsquid, or a custom indexer on `eth_getLogs` + WebSocket `newHeads`) or managed (The Graph/Goldsky). Chainstack documents WS `eth_subscribe` and debug/trace support on Robinhood [F][S10], and Bitquery offers Four.meme/Flap/Robinhood datasets [F, vendor][S-search].

- **Finality policy per chain.**
  - BSC: `pending → unsafe → finalized` using the fast-finality finalized tag [S16].
  - Robinhood: `soft-confirmed (sequencer) → L1-posted → L1-final` [S3].
  - The UI shows trades immediately with a "confirming" badge. Rewards, migration status and lock unlocks are shown as authoritative only after the chain's finalized state.
  - Reorg handling: idempotent upserts keyed by `(chainId, txHash, logIndex)`, with rollback to the last finalized block.
- **Entity model.** Every row carries `chainId`. Tokens are keyed `(chainId, address)`. A `globalTokenId` exists only for deliberately multi-chain projects (§6.3).
- **Price service.**
  - Curve price comes from on-chain state, and DEX price from pool `slot0`/reserves.
  - USD conversion uses Chainlink feeds, with sequencer and staleness checks on Robinhood [S6].
  - For Stock Tokens, combine the REST API (cache 15 s for prices, 1 h for corporate actions [S2]) with on-chain feeds, applying the multiplier exactly once (§4.3).
  - Respect the 60 req/s limit [F][S2].
- **Compliance service** (§9): geo/IP and wallet screening, a per-asset jurisdiction matrix, and an audit log.
- **Simulation service.** `eth_call`/`debug_traceCall` of the launch transaction and of the first buy/sell. Flag honeypot-like behavior, such as sells reverting or effective tax above the displayed tax. Run this for *imported* tokens too.
- **Keepers.** Migration fallback, swap-back nudges, dividend auto-claims, and vault `dispatch()` (cf. Flap `processor.dispatch()` [F][S26]). Each keeper has a per-chain gas budget.

### 6.2 Frontend

**[I] Stack.**
- One Next.js/React app with `wagmi`/`viem` multi-chain config (chains 56 and 4663).
- WalletConnect plus injected wallets, plus Robinhood Wallet where it supports dApp connections [Q].

**Chain selection.**
- A global chain switcher.
- Token pages are routed as `/:chain/:address`.
- Cross-chain "trending" and "new" feeds are merged server-side and labelled by chain.

**User workflows.**
1. **Create:** chain, then quote asset (filtered by QuoteRegistry and jurisdiction), then curve preset, then modules (matrix-validated), then preview (simulated manifest with fee/tax disclosure), then sign. Optionally batch a dev-buy using EIP-7702 or AA.
2. **Trade on curve:** quote, `minOut`, short deadline, private RPC on BSC.
3. **Graduation:** a progress bar, then a "migrating" state, then the DEX trade widget switches to UniversalRouter (Robinhood) or the Pancake router (BSC). For tax tokens, use only fee-on-transfer-safe paths.
4. **Holder tools:** claim dividends, view locks and vesting, view vault activity.
5. **Creator dashboard:** fee earnings, vault parameters (read-only after launch), and lock management (extend only).

**Disclosure UI.** Always show the following, sourced from chain state and not from creator-provided text:
- effective buy and sell tax
- LP disposition
- lock schedule
- whether contracts are immutable
- for stock-paired tokens, the issuer risk text and market-hours caveat [F][S1][S6]

### 6.3 Cross-chain data synchronization (and optional cross-chain tokens)

- **Default [I].**
  - No token bridging. Each launch lives on one chain.
  - "Sync" means the unified backend keeps consistent, chain-tagged views: portfolio, leaderboards, creator reputation tied to linked wallets, and fee accounting.
  - Sync is pull-based from each chain's indexer. No trust in cross-chain messages is needed.
- **Optional multi-chain launches [I].**
  - A project can deploy the same token on both chains as a LayerZero OFT. LayerZero OFT/Stargate is a documented Robinhood bridge route [F][S8].
  - Alternatively, use Chainlink CCIP, also documented [F][S8].
  - Rules:
    - The bonding curve runs on **one home chain only**. Bridging is enabled only after migration.
    - Tax logic must exempt the OFT adapter.
    - Supply invariants must be checked by the indexer across chains.
  - **[Q]** Whether OFT/CCIP have current BSC↔Robinhood routes for arbitrary new tokens was not verified.
- **Admin/governance sync.**
  - Protocol parameters are deployed independently per chain, each with its own timelock and multisig.
  - The backend checks that both chains' registries match a signed config manifest, and alerts on drift.

---

## 7. Security considerations

| # | Risk | Mitigation | Basis |
|---|---|---|---|
| 1 | Migration into a pre-existing or manipulated pool | Price check vs `P*`, min amounts, alternate tier or hook, and abort path (§4.10) | [F][S23] |
| 2 | Pre-launch token leakage to the predicted pair | Global transfer lock until `launched`, covering every helper | [F][S24][S25] |
| 3 | Fee-on-transfer token routed to an incompatible DEX | Compatibility matrix. Tax tokens go only to V2 or hook pools | [F][S14] |
| 4 | Fee-on-transfer, rebasing or malicious quote assets | Balance-delta checks and an allowlist registry | [F][S14] |
| 5 | Oracle staleness, sequencer downtime, corporate-action pause | Staleness and heartbeat checks, L2 sequencer uptime feed with grace period, `oraclePaused()` gate. Oracles never on the curve path | [F][S6] |
| 6 | Double-applying the stock multiplier | Raw units on-chain. Multiplier only in UI or REST conversions | [F][S2][S5] |
| 7 | Fake stock tokens (ticker spoofing) | Canonical-address allowlist synced from the Robinhood API or token registry | [F][S2][S7] |
| 8 | Sandwiching and sniping (BSC) | `minOut`, short deadlines, private RPC, anti-snipe windows | [F/U][S29][S30] |
| 9 | Latency races (Robinhood FCFS) | Anti-snipe windows. Optional commit-reveal or fair-launch batch for the first N seconds | [F][S3], [I] |
| 10 | Creator rug vectors (raising tax, mint, blacklist, hidden exemptions) | Immutable templates, decrease-only taxes, no mint after creation, no creator blacklist, published manifest | [I] |
| 11 | Vault or dividend contract griefing that blocks transfers | Push with try/catch and accrual. Pull-based claims | [I] |
| 12 | Reentrancy in swap-back or dispatch | `inSwap` lock, checks-effects-interactions, `nonReentrant` on the curve | [I] |
| 13 | Timing assumptions broken by hard forks (BSC 0.45 s) or L1 block numbers (Robinhood) | Timestamp-based logic. `arbBlockNumber` where per-block limits are needed | [F][S3][S16] |
| 14 | L1→L2 admin aliasing errors | Use `applyAlias` in the Arbitrum SDK. Test L1 timelock → L2 execution | [F][S9] |
| 15 | Upgradeability abuse | Core non-upgradeable, as PancakeSwap Infinity core is [F][S22]. Registries behind a 48 h+ timelock and multisig | [I] |
| 16 | Look-alike router addresses | Pin router addresses from official docs. A third party warns of look-alike routers on Robinhood Chain | [F][S13], [U] |

**Process [I].**
- At least two independent audits of the core plus every migrator and module.
- Invariant and fuzz tests with Foundry: curve monotonicity, no oversell, the migration price equals `P*` within tolerance, and dividend conservation.
- Fork tests against live PancakeSwap and Uniswap deployments on both chains.
- A bug bounty.
- A staged rollout with per-chain TVL caps.

---

## 8. Gas optimization strategies

**General (both chains) [I].**
- EIP-1167 clones for tokens and vaults. Singleton curve engine (all curves in one contract, with per-token storage structs). Singleton DEX architectures (v4/Infinity) for cheaper pool creation [F][S22].
- Pack storage: reserves as `uint128`, timestamps as `uint40`, bps as `uint16`. Use custom errors and `immutable`/`constant` variables.
- Use the O(1) dividend accounting described in §4.6. Never loop over holders.
- Batch swap-back by threshold rather than per transfer [F pattern][S26].
- Use Permit2 (deployed on Robinhood at `0x0000…78BA3` [F][S13]) or EIP-2612 permits to remove approve transactions. Use EIP-7702 or AA batching for approve+buy in one transaction [F][S17][S4].

**Robinhood Chain specifics.**
- L1 data fees scale with calldata [F][S4]. Docs recommend tight argument packing, avoiding unnecessary calldata, and batching [F][S4]. **[I]** Encode `LaunchParams` compactly, and store long metadata off-chain (IPFS URI or hash only).
- Read fee components through ArbGasInfo when showing estimates [F][S3]. `eth_estimateGas` already includes both components [F][S4].

**BSC specifics.**
- With the 0.05 gwei floor [U][S19], execution is cheap, so storage writes rather than gas price dominate cost.
- **[I]** Avoid per-transfer SSTOREs in tax tokens. Cache the pool set in an immutable or a bitmap.

---

## 9. Compliance notes (not legal advice)

**Facts.**
- Robinhood Stock Tokens are not registered under the US Securities Act. They may not be offered, sold or delivered in the US or to US persons (Regulation S), and are restricted in Canada, the UK, Switzerland and other jurisdictions listed at docs.robinhood.com/rhj [F][S1].
- They are tokenised debt securities giving economic exposure only. They carry no rights against the underlying issuers [F][S1].
- Only Authorised Participants (at issuance: BBVI) can mint or redeem from RHJ, after KYB [F][S1].
- Ondo's tokenized stocks on BNB Chain are for non-US investors, with due diligence for mint, redeem or transfer. Reports differ on UK/EEA exclusions [F/U][S31][S32].
- The Robinhood Chain sequencer screens sanctioned addresses [F][S3].

**[I] Implications for a launchpad.**
1. **Stock-paired or stock-reward features are a regulated surface.**
   - Geo-block restricted jurisdictions at the frontend, at minimum the US, UK, Canada and Switzerland for Robinhood Stock Tokens [S1].
   - Show issuer risk language.
   - Do not market stock-paired meme tokens as giving equity ownership.
   - Get counsel on whether a token whose rewards or backing are a security-like token is itself an offering.
2. **Sanctions screening** on the frontend for both chains. On BSC there is no sequencer-level screening documented, so the frontend and backend are the only control [Q].
3. **Creator KYC tiers.**
   - Optional for plain meme launches.
   - **[I]** Recommended to be mandatory for creators who enable stock/RWA quote assets or vaults, or who hold creator-fee receivers above a threshold.
4. **Disclosures.** Taxes, fees, LP status and lock schedules are shown from chain state. Fee-on-transfer taxes on secondary trades can amount to consumer-protection issues if misrepresented.
5. **Record keeping.** Keep immutable launch manifests and an audit log of compliance decisions (blocked regions, screened wallets).
6. **Terms of service** per chain should reflect Robinhood Chain's ToS [Q, not reviewed] and BNB Chain ecosystem norms.
7. **Trademark/brand.** Robinhood publishes brand guidelines for the chain [F][S1 nav]. Do not imply endorsement.

---

## 10. Uncertainties and unanswered questions

**Conflicting or secondary claims [U].**
- Four.meme's graduation threshold: sources cite about 18 BNB and about 24 BNB. Its migration fee (0.5 BNB?) and its v3 vs unspecified pool version are also unconfirmed [S35][S-search]. These were not used for design parameters.
- The BSC minimum gas price of 0.05 gwei comes from 2025 secondary reports. The current value is unverified [S18][S19].
- Robinhood Chain fee, volume and Pons statistics come from one secondary article [S33].
- The Robinhood base fee of about 0.05 gwei and blob DA come from a vendor article [S11].
- The Four.meme second exploit's date and loss figure (~$120k) come from secondary write-ups [S24][S25].
- BSC MEV concentration figures come from one arXiv paper [S30].

**Unanswered [Q].**
1. Do PancakeSwap Infinity and Uniswap v4 hooks support the fee-delta pattern needed for hook-based asymmetric taxes, and under what permission flags and audit constraints? (§4.4)
2. PancakeSwap Infinity and Uniswap v2/v4 contract addresses on the target chains (not collected from primary docs).
3. USDG decimals and any admin controls (pause/freeze) on USDG and Robinhood Stock Tokens. The docs examined did not mention pause or freeze.
4. Do Ondo tokenized stocks on BSC enforce on-chain transfer allowlists that would block launchpad contracts from holding them?
5. Current LayerZero/CCIP route availability between BSC and Robinhood Chain for arbitrary new tokens.
6. Robinhood Wallet's dApp-connection support and the Robinhood Chain Terms of Service (not reviewed).
7. Whether the BSC client exposes millisecond timestamps after Fermi. The Fermi post does not say [S16].
8. The legal characterization of a meme token paired with, or paying rewards in, tokenized securities, in each target market.
9. Uniswap's Liquidity Launchpad on Robinhood Chain, and whether it could replace a custom curve.
10. Recommended private-RPC or MEV-protection providers on BSC as of 2026.

---

## 11. Sources

★ = primary or official source. "(search)" = seen only in search-result excerpts, not fetched in full.

- **S1** ★ Robinhood — Stock Tokens overview: https://docs.robinhood.com/chain/stock-tokens/
- **S2** ★ Robinhood — Stock Token APIs: https://docs.robinhood.com/chain/stock-token-apis/
- **S3** ★ Robinhood — Differences from Ethereum: https://docs.robinhood.com/chain/differences-from-ethereum/
- **S4** ★ Robinhood — Gas & Fees: https://docs.robinhood.com/chain/gas-and-fees/
- **S5** ★ Robinhood — Building with Stock Tokens: https://docs.robinhood.com/chain/building-with-stock-tokens/
- **S6** ★ Robinhood — Oracles & Price Feeds: https://docs.robinhood.com/chain/oracles-and-price-feeds/
- **S7** ★ Robinhood — Token Contracts: https://docs.robinhood.com/chain/contracts/
- **S8** ★ Robinhood — Bridging: https://docs.robinhood.com/chain/bridging/
- **S9** ★ Robinhood — Cross-Chain Messaging: https://docs.robinhood.com/chain/cross-chain-messaging/
- **S10** Chainstack — Robinhood Chain API reference: https://docs.chainstack.com/reference/robinhood-getting-started
- **S11** Dwellir — What is Robinhood Chain: https://www.dwellir.com/blog/what-is-robinhood-chain
- **S12** ★ Uniswap Labs — "Uniswap is Live on Robinhood Chain" (2026-07-02): https://blog.uniswap.org/robinhood-chain-is-live
- **S13** ★ Uniswap — v3 Robinhood Chain deployments: https://developers.uniswap.org/docs/protocols/v3/deployments/v3-robinhood-chain-deployments (Liquidity Launchpad deployments (search): https://developers.uniswap.org/docs/liquidity/liquidity-launchpad/deployments)
- **S14** ★ Uniswap — v3 Token Integration Issues: https://developers.uniswap.org/docs/protocols/v3/concepts/unsupported-tokens
- **S15** ★ ERC-8056 Scaled UI Amount Extension (Draft): https://eips.ethereum.org/EIPS/eip-8056
- **S16** ★ BNB Chain — Fermi hard fork, 0.45 s blocks: https://www.bnbchain.org/en/blog/fermi-hard-fork-accelerates-bsc-to-0-45-second-block-times
- **S17** (search) BNB Chain — Pascal hard fork / EIP-7702: https://www.bnbchain.org/en/blog/bnb-chain-announces-pascal-hard-fork ; FAQ: https://forum.bnbchain.org/t/faq-about-pascal-hardfork/3093 ; https://forklog.com/en/bnb-chain-team-deploys-pascal-update-on-mainnet/
- **S18** (search) The Defiant — BNB Chain proposes gas cuts: https://thedefiant.io/news/blockchains/bnb-chain-proposes-gas-fee-cuts-and-faster-blocks-to-stay-competitive
- **S19** (search) Cryptometer — 0.05 gwei adopted: https://www.cryptometer.io/news/bnb-chain-slashes-gas-fees-to-0-05-gwei-making-transactions-nearly-free/
- **S20** ★ PancakeSwap — v3 addresses: https://developer.pancakeswap.finance/contracts/v3/addresses
- **S21** ★ PancakeSwap — v2 addresses: https://developer.pancakeswap.finance/contracts/v2/addresses
- **S22** ★ PancakeSwap — Infinity overview: https://developer.pancakeswap.finance/contracts/infinity/overview
- **S23** Verichains — Four.meme hack analysis (2025-02-11): https://blog.verichains.io/p/fourmeme-hack-analysis
- **S24** (search) Decrypt — Four.meme second exploit: https://decrypt.co/310388/meme-coin-launchpad-four-meme-falls-victim-to-another-exploit
- **S25** (search) QuillAudits — Four.meme attack analysis: https://quillaudits.com/blog/hack-analysis/four-meme-attack-analysis
- **S26** ★ Flap — Tax Token V3: https://docs.flap.sh/flap/developers/basic-and-mechanism/flap-tax-token/tax-token-v3
- **S27** ★ Flap — Launch token through VaultPortal: https://docs.flap.sh/flap/developers/token-launcher-developers/launch-token-through-vaultportal
- **S28** ★ Flap — Index & Query a Stocks Vault: https://docs.flap.sh/flap/developers/wallet-and-terminal-and-bot-developers/indexing-vaults/index-and-query-a-stocks-vault ; vault example repo (search): https://github.com/flap-sh/FlapVaultExample ; DefiLlama listing (search): https://defillama.com/protocol/flap-sh
- **S29** (search) BNB Chain — PBS / MEV blog posts: https://bnbchain.org/en/blog/advancing-bnb-chains-mev-landscape-embracing-proposer-builder-separation-pbs-of-bsc ; https://bnbchain.org/en/blog/unlocking-the-potential-of-mev-on-bnb-chain-a-guide-for-builders-and-validators
- **S30** (search) "MEV in Binance Builder", arXiv 2602.15395: https://arxiv.org/html/2602.15395v1
- **S31** (search) The Block — Ondo Global Markets expands to BNB Chain: https://www.theblock.co/post/376692/ondo-global-markets-expands-bnb-chain
- **S32** (search) Blockworks — Ondo tokenized stocks: https://blockworks.co/news/tokenized-stocks-on-ethereum ; Decrypt: https://decrypt.co/337944/ondo-100-tokenized-stocks-ethereum
- **S33** (secondary) CryptoTicker — Robinhood Chain ecosystem, end of free gas: https://cryptoticker.io/en/robinhood-chain-ecosystem-end-of-free-gas/
- **S34** (search) Uniswap — v2 troubleshooting (fee-on-transfer variants): https://developers.uniswap.org/docs/protocols/v2/guides/troubleshooting
- **S35** (search, third-party) Four.meme mechanics: https://easy-fight-6a5.notion.site/How-it-Works-3ece1752f5954811b022760c20d03542 ; https://docs.codex.io/launchpads/four-meme ; https://coinmarketcap.com/academy/article/how-to-build-a-fourmeme-token-sniper-with-coinmarketcap-api
- **S-search four.meme**: aggregated search excerpts from S35 plus https://cryptoslate.com/launchpads/four-meme-review/ (not fetched in full).
