Maturity and inventory curve
Longer maturities, convexity, risk tier, liquidity depth, and maker exposure all affect the executable quote.
cd swap-vm && forge test --match-contract AquaExitTermTest -vvThe playground pulls live markets from The Graph, asks the solver API for route previews, shows the SwapVM maker split, and explains the Aqua settlement guarantees without running local shell commands in production.
--
--
--
solver API
Pick a live market path. The playground will quote it through the solver API.
Graph discovery first, contract checks at quote and settlement time.
Solver preview from live indexed strategies; contract settlement still verifies fresh state.
Requested
--
Filled input
--
Net out
--
Next action
Use this preview to explain the route, then open Sell for wallet approval and execution.
Execute in SellGraph discovers the book
Load the deployed subgraph market board.
Scenario selects an executable market
Pick a live maturing asset and payout route.
Solver quotes maker strategies
Ask the solver API for a deterministic route preview.
Contracts enforce deliverability
Final settlement is always guarded by the route executor.
Not a pool
Makers keep funds in their wallets. Aqua pulls funds only for an atomic fill.
Not a flat swap
SwapVM prices time, oracle backing, inventory, liquidity depth, risk tier and max discount.
Not trusting the index
The Graph discovers candidates; contracts enforce live deliverability before settlement.
Shared risk budget
Sibling Aqua strategies can share one maker reserve, and a fill through one route reduces capacity across the rest.
Revenue path
The route executor pays the DAO/protocol fee as part of the fill.
Longer maturities, convexity, risk tier, liquidity depth, and maker exposure all affect the executable quote.
cd swap-vm && forge test --match-contract AquaExitTermTest -vvThe executor skips unavailable makers, splits best-first, prevents double-counting, and reverts on aggregate shortfall.
cd swap-vm && forge test --match-contract ZubiDubiRouteExecutorTest -vvSibling Aqua strategies can share one finite maker reserve, so the first fill reduces capacity for the rest.
cd swap-vm && forge test --match-contract ZubiDubiRouteExecutorTest --match-test '.*Budget.*' -vvA holder issues a transferable PT-style receipt, can sell it early, and can redeem the backing only after maturity.
cd swap-vm && forge test --match-contract ZubiDubiExitReceiptTest -vvThe claim is not a toy ERC20: after maturity, the holder can burn receipts and redeem the real backing asset.
cd swap-vm && forge test --match-test test_ZubiDubiExitReceipt_RedeemsUnderlyingOnlyAfterMaturity -vvThe same inventory-aware quote path runs against real Sepolia USDC and a real Chainlink ETH/USD feed.
npm run zubidubi:sepolia-inventory-benchmarkA real mainnet PT market can be compared side by side against ZubiDubi's maker-specific term curve.
Pendle implied PT rate
0.965766193005277136
ZubiDubi vs Pendle
+112 bps
Benchmark asset
PT-USD3-17DEC2026
MAINNET_RPC_URL=<rpc> npm run zubidubi:pendle-benchmarkStrategies, fills, maker exposure, receipt lifecycle, and DAO fees are queryable without scanning chain state live.
cd subgraph && graph codegen && graph buildProves the reusable SwapVM term-liquidity instruction library: oracle backing, exposure caps, maturity curves, convexity, inventory, risk tier, liquidity depth, exact-in, exact-out, and guardrail reverts.
Step 1
Receipt amount
Step 2
BACKING_ORACLE_CHECK
Step 3
EXPOSURE_CAP
Step 4
DISCOUNT_CURVE_1D
Step 5
Executable quote
cd swap-vm && forge test --match-contract AquaExitTermTest -vvWhat each test proves
A delayed receipt can be priced into USDC through the term curve.
Decimal normalization is correct across 18-decimal receipts and 6-decimal USDC.
Different assets use independent oracle and maker policy settings.
Time-to-maturity directly widens the early-exit discount.
A matured claim loses the term component and quotes near base spread.
Maker inventory reprices future fills as exposure accumulates.
Risk tier and liquidity depth penalties are included in the quote.
Risk premium scales with time instead of behaving like a flat fee.
Convex curve family prices long tenor more steeply than a linear curve.
Short-dated convexity remains measurable and does not truncate away.
Legacy strategy bytes remain compatible with linear pricing.
Exact-out quotes compute the required receipt input correctly.
A single seller exit can be split across multiple maker curves.
Proves that a quote cannot bypass maker policy, stale oracle protection, exposure caps, token allowlists, maturity windows, discount caps, or output liquidity limits.
Step 1
Bad route
Step 2
Policy check
Step 3
Oracle check
Step 4
Exposure/liquidity check
Step 5
Revert before settlement
cd swap-vm && forge test --match-contract AquaExitTermTest --match-test Reverts -vvWhat each test proves
Maker quote-token notional exposure cannot exceed the configured cap.
A maker strategy cannot be reused for an unauthorized receipt asset.
Strategies only quote the maker's allowed maturity window.
Stale oracle data blocks the route.
A maker's maximum discount cannot be exceeded.
Receipt exposure caps are enforced before fill.
The quote fails if maker output liquidity cannot satisfy the fill.
Primary/secondary oracle deviation protection blocks unsafe routes.
Proves the route executor can discover best executable maker paths, skip unavailable makers, avoid double-counting one maker wallet, enforce max fills, and settle non-USDC payout routes.
Step 1
Seller input
Step 2
Quote makers
Step 3
Skip unavailable
Step 4
Split best-first
Step 5
Atomic Aqua settlement
cd swap-vm && forge test --match-contract ZubiDubiRouteExecutorTest -vvWhat each test proves
Unavailable makers are skipped and the route fills best executable makers first.
A route that cannot fully fill reverts instead of partially settling.
Multiple strategies from the same maker cannot overuse the same wallet liquidity.
Revoked maker allowance is detected and skipped.
Moved maker funds are detected through live wallet balance checks.
The route executor enforces bounded route complexity.
The same receipt market can route into WETH, not only USDC.
Sibling Aqua strategies cannot collectively exceed one maker-defined term-risk reserve.
After one strategy fills, the shared reserve shrinks and sibling quotes lose capacity.
Proves the Sepolia demo asset behaves like a real transferable maturing claim: issue with backing, trade before maturity, redeem after maturity, and protect users from forced redemption or rounding mistakes.
Step 1
Deposit backing
Step 2
Issue PT-style claim
Step 3
Transfer or sell early
Step 4
Wait to maturity
Step 5
Redeem backing
cd swap-vm && forge test --match-contract ZubiDubiExitReceiptTest -vvWhat each test proves
The receipt exposes the expected maturity timestamp.
The claim can be transferred before maturity like a PT-style token.
A user can redeem the receipt for backing after maturity.
Early redemption is blocked until maturity.
Issuance requires real backing approval.
A third party cannot force a user's receipt redemption path.
Non-unity backing ratios round-trip safely.
Dust issuance behavior is explicit and safe.
Proves the same logic against real deployed assets, real oracle feeds, and a real Pendle PT market benchmark.
Step 1
Fork live chain
Step 2
Load real token/feed
Step 3
Quote ZubiDubi curve
Step 4
Compare benchmark
Step 5
Assert route behavior
npm run zubidubi:sepolia-inventory-benchmark && MAINNET_RPC_URL=<rpc> npm run zubidubi:pendle-benchmarkWhat each test proves
Sepolia quote path uses real USDC and a real Chainlink feed.
Inventory-aware pricing moves quote output on the real oracle path.
A real mainnet Pendle PT-style asset can be routed through the ZubiDubi curve.
ZubiDubi quote can be compared side by side with Pendle's implied PT benchmark.
Proves the demo route over solvent Aqua makers and the Graph schema that turns onchain events into the frontend/solver market book.
Step 1
Aqua strategy events
Step 2
Subgraph entities
Step 3
Solver discovery
Step 4
Frontend preview
Step 5
Demo route proof
cd swap-vm && forge test --match-contract ZubiDubiDemoTest -vv && cd ../subgraph && graph buildWhat each test proves
The end-to-end demo route fills across solvent Aqua makers.
The Graph exposes the data needed for scalable solver discovery.
Portfolio and redemption views can reconstruct claim lifecycle history.