Roadmap
What's been built, what's next on the contract side, what we've chosen not to do.
Done (v4, current mainnet design)
JellyPadStaker: in-house liquid staker (jpSEI). Validator delegation via Sei staking precompile. Tiered instant-unstake fee (0.5–4%). 21-day slow unstake. Permissionlessclaim()for validator rewards. Permissionlessrebalance()when buffer dips below trigger.- Dynamic buffer:
effectiveTargetBuffer()computed frommax(static, supplyRatio, pendingSlowSei, demand × multiplier). All bounded so an attacker can't force pathological over-buffering. JellyPadToken: jpSEI-backed curve, configurable graduation, 1% buy fee, 1% sell fee, 1% graduation fee, auto-DEX migration with LP burned to0xdEaD.JellyPadFactory: 50/50 split of protocol fees (operator/buffer), bounded byMAX_OPERATOR_FEE_BPS = 7000. Creation fee 100% to buffer.JellyPadRouter: in-flight stake-on-buy, auto-instantUnstakeon sell, 1% protocol fee per leg.- Wei-vs-usei precompile fix.
- Mainnet deployment with end-to-end smoke test (createToken → buy → graduate → LP burn confirmed) plus 10 adversarial tests, all correctly defeated.
- 87 of 91 unit tests passing. The 4 failures are pre-existing soft-fail bugs in deprecated v1 contracts, unblocked from shipping.
seiCLI wrapper supporting both testnet and mainnet.- Reference frontend with chart, swap panel, transactions feed, launch flow, public stake page (
/stake), and dev-only operator console (/admin). - Documentation site (this site).
Not yet built
Indexer
The transaction feed and curve chart currently scan the most recent ~12,000 blocks of Buy / Sell / Swap events on every page load (Sei RPC limits us to 2k blocks per eth_getLogs, so we chunk). For a token with hours-or-days of history this is fine. Long-term lookback or sub-second updates would want a dedicated indexer.
Tasks:
- Index
TokenCreatedfrom factory. Cache the token registry. - Index
Buy/Sell/GraduatedToDexfrom each token. - Index Saphyre
Swapevents for graduated tokens. - Compute mcap, holders, volume per token. Store in Postgres.
- Expose
/api/*endpoints that read the index instead ofeth_getLogs.
Candidates: Subsquid (has Sei support), The Graph (Sei support is limited; would need self-hosted graph-node), or a small custom Postgres + viem ETL.
Live oracle for SEI/USD
Today every token stores a seiUsdPrice set at creation by the factory owner. Used for the graduation-mcap math. A future revision could read from Sei's oracle precompile (0x0000000000000000000000000000000000000091) so the threshold is genuinely USD-pegged.
TradingView Charting Library
The reference frontend uses DexScreener's iframe for graduated-token charts. The licensed TradingView Charting Library is the industry-standard alternative and is supported behind a feature flag in the codebase (/api/udf/* routes already exist; container loads the bundle from public/charting_library/ if present). Awaits TradingView licence approval.
Aggregator routing
The token is a clean ERC-20 with no transfer fee, so 1inch, Squid, Matcha can route into the Saphyre pair like any other V2 pool. We haven't actively pursued listing. Would mostly be a matter of ensuring our pair is discoverable in their routers' factory lists. Bootstrap of a (jpSEI, WSEI) pool may also help here.
Multi-validator routing
The staker currently delegates to one validator. Future work: spread principal across N top-tier validators, with owner-set weights. Reduces slashing concentration. Requires per-validator delegation tracking in the staker.
Auto-rebalance keepers
rebalance() is permissionless but currently no one is calling it. Needs either:
- A keeper bot that monitors buffer ratio and calls when below trigger
- An incentive built into the call (small bounty payable to caller from buffer surplus)
Frontend yield display
The trade page should show "this pool's jpSEI side has appreciated X% since graduation" so holders can see exactly what they've earned. Requires reading the staker rate at graduation time and again now.
Explicitly NOT doing
Token transfer-fee mechanics
A common alternative for capturing post-graduation volume is a fee-on-transfer hook on the token. Aggregator-incompatible, DEX-warning-prone, reputation-hostile. Stays out.
Cross-chain
The protocol depends on three Sei-specific primitives: the staking precompile, our jpSEI staker, and Saphyre's V2 pairs. The design only works because all three live on the same chain. Cross-chain would require reproducing those primitives, which defeats the point. Sei-only.
Run our own DEX
Pump.fun built PumpSwap as a successor to Raydium. We could fork Saphyre and deploy a JellyPad-only DEX that intercepts every swap to call our staking logic. Significant engineering. Splits liquidity. Not worth it until the protocol has serious volume to motivate the move.
Open-source the contracts
Choosing to keep the contract source closed for now. Bytecode is verifiable on-chain, every claim in these docs is checkable against deployed code, but we don't publish the Solidity source.
Open questions
- Aggregator integration: can we get listed on 1inch / Squid for our tokens? Probably yes since we're not using transfer-fee tokens.
- Sell tax for diamond-hand incentive: could we charge a sliding sell fee based on hold duration (5% if sold in less than a day, 0% if held more than 30 days)? Would require per-holder hold-time accounting on transfer.
- Pool boost mechanism: could the factory periodically donate extra TOKEN to the pool to drive price up over time? Effectively a dilution-of-non-holders mechanic. Edge cases around already-staged sells need thought.