Flash — upfront stock for locked bags
Flash lets you lock a Robinback memecoin for a fixed duration and receive that launch’s backing stock immediately from the protocol stock bank. Your memecoins unlock when the timer ends. Trading, launching, and graduation are unchanged — Flash is an additive vault beside the factory.
7 days
8% APR
Short lock
30 days
12% APR
Default
90 days
18% APR
Longer lock
Payout
Stock
Same ticker as the launch backing
Early unlock
No
v1 — wait until unlock time
Empty bank
Off
Flash blocked; rest of app works
Not DeFi lending yield
User flow
- Open the Flash tab in the nav, or a token page — the Flash card sits under activity.
- Check holdings and USD value for that memecoin.
- Enter an amount and pick a duration (7 / 30 / 90 days).
- Review the quote: notional stock value of your bag, then stock you receive now (the flash rebate).
- Approve the memecoin (if needed) and confirm Flash. Stock hits your wallet in the same flow; memecoins move into the vault.
- Under My flashes, unlock after the unlock date to return your memecoins.
When Flash is greyed out
How the rebate is calculated
First the vault values your locked memecoins in backing-stock units:
- Pre-graduation: bonding curve token USD ÷ Chainlink stock USD.
- After graduation: a protocol-committed
stockPerTokenrate only — never Uniswap spot (spot is sandwichable). The rate must be fresh (default max age 6h), increases are capped per update (default 5%), and an optional hard ceiling can be set per market. Stale or unset → Flash blocked.
Anti-manipulation after graduation
Then the upfront rebate is:
// value = stock notional of locked memecoin amount
// aprBps = 800 / 1200 / 1800 for 7d / 30d / 90d (owner-settable)
// duration = lock length in seconds
rebate = value * aprBps * duration / (10_000 * 365 days)Example intuition: locking a bag worth 1 META for 30 days at 12% APR pays roughly 1 × 0.12 × (30/365) ≈ 0.01 META upfront. Exact on-chain math uses the vault’s live quote.
Where the stock comes from
The protocol treasury deposits Robinhood Stock Tokens into the vault’s per-stock bank (META bank, TSLA bank, etc.). Each flash pays from the matching bank and reduces that reserve.
- Route is always memecoin in → stock out.
- Banks are independent: funding META does not enable Flash for TSLA-backed tokens.
- If
reserveOf[stock]can’t cover the rebate, the flash reverts and the UI shows unavailable. - Flash does not pull automatically from curve fees in v1 — top-ups are treasury / ops.
Locks, holder tax, and risk
- While locked, your memecoins sit in the vault wallet. They do not earn holder-tax rewards for that period (rewards accrue to balances held outside the vault).
- No early unlock in v1 — you wait until
unlockAt. - You still hold price exposure: the memecoin can move while locked; the stock rebate is fixed at flash time.
- Caps may apply (per-flash and per-day) so a single wallet can’t drain the bank in one shot.
Protocol perspective
Contract
function fundStock(address stock, uint256 amount) external; // treasury
function setMarket(memecoin, stock, curve, stockPerToken, allowed) external;
function setStockPerToken(memecoin, stockPerToken) external; // post-grad commit
function quote(memecoin, amount, durationId) view returns (rebate, stock, unlockAt);
function flash(memecoin, amount, durationId) returns (positionId, rebate);
function unlock(uint256 positionId) external;Markets must be allowlisted per memecoin. Pre-grad pricing uses the bonding curve; after graduation Flash requires a fresh setStockPerToken commit — never V4 spot.