Transparency

Contracts

Every address the site talks to, loaded from deployments/base-8453.json at runtime. Verify on Basescan before you sign anything.

Protocol addresses

Base · chain 8453
ContractAddressRole

Allow-listed Morpho vaults

ERC-4626 · USDC
VaultAddressNet APYVault TVL

The allowlist is immutable: changing the vault set means deploying a new VaultAllowlist and pointing the controller at it through the 48-hour timelock. APY and TVL come from the Morpho API.

Hook permission flags

0x2ac0

Uniswap v4 encodes which callbacks a hook receives in the low 14 bits of its address. The DualPool hook at resolves to the flags below — .

Fee model

Pool categoryLP feeTick spacingQuote legNotes
Tokenized stocks (B20 xxxc, 8 decimals)0.05%10USDC → Morpho vaultChainlink feed registered; oracle deviation shown in bps
WETH0.01%1USDC → Morpho vaultTight-range crypto pool
FOLD (protocol token)1.00%200USDC → Morpho vaultWide-range, low-liquidity pool
Swap fees
Accrue to all share holders pro-rata, inside the pool reserves
Vault yield
USDC leg sits in the Morpho vault; yield accrues to the same shares
Protocol harvest
Operator burns ≤ maxHarvestBps of the protocol position per call
Harvest split
stakerShareBps of harvested USDC → FOLD stakers · remainder + non-USDC leg → treasury
External LP shares
Never touched by the controller; no deposit or withdrawal fee

Security model

Ownable2StepEvery owned contract requires the new owner to accept. Hook ownership sits with the OperatorController, not an EOA.
48h timelockMoving hook ownership, swapping the vault allowlist and withdrawing protocol principal must be queued on-chain and wait 48h.
Watchdog · pause-onlyA separate key can pause pools but cannot move funds, change parameters or unpause.
Harvest capmaxHarvestBps bounds how much of the protocol's own position one harvest call may burn; ceiling 50%.
Vault allowlistOnly immutable, allow-listed Morpho vaults holding exactly the leg's asset can be bound. Operator can revoke a vault's approval in an emergency.
Operator range limitThe hot operator key can only re-range buckets within maxRangeTicks of the current tick.

The hook itself is the unmodified, factory-deployed Uniswap DualPoolHook. Contracts are unaudited. See risk disclosure.

Live parameters

read from OperatorController