1. Architecture at a Glance
SuperEarn is a Kaia‑native stablecoin portfolio that fans out into Kaia DeFi strategies and remote strategies (e.g. on Ethereum), then collapses everything back into a single yield‑bearing token: EarnUSDT on Kaia. From an integrator’s point of view:- All user deposits and withdrawals happen on Kaia.
- Users and protocols hold EarnUSDT, a fungible ERC‑20 that represents a share of the global portfolio.
- Cross‑chain routing, bridging, and reconciliation are handled internally by Runespear, SuperEarn’s CCIP‑based cross‑chain layer.
1.1 Kaia (Origin Chain)
On Kaia, the on‑chain system is structured in three main layers:CooldownVault (user entry / exit pool)
- Users (or integrating protocols) deposit Kaia USDT via the SuperEarnRouter; the CooldownVault itself does not expose user‑facing deposit or withdrawal entrypoints.
-
The CooldownVault:
- Mints and burns EarnUSDT as the share token.
- Enforces short withdrawal waiting periods and loss limits.
- Acts as a liquidity buffer for slower or delayed‑liquidity strategies (e.g. RWA).
Super Vault (Kaia aggregation vault)
- When enough liquidity accumulates, the CooldownVault forwards capital into the Super Vault on Kaia.
-
The Super Vault:
- Aggregates funds from the CooldownVault.
-
Allocates capital between:
- Kaia‑native strategies (RWA, lending, etc.).
- The cross‑chain slice of the portfolio.
- Keeps the Kaia‑side allocation aligned with portfolio policy and risk constraints.
OriginVault (Kaia cross‑chain hub, ERC‑7540‑like)
- For the multichain slice, the Super Vault deposits into OriginVault, an ERC‑7540‑like asynchronous vault on Kaia (async redemption flow, not a strict ERC‑7540 implementation).
-
OriginVault:
- Holds USDT that is earmarked for remote chains.
- Manages async deposit / redemption requests for the cross‑chain part of the portfolio.
- Maintains queued cross‑chain deposits and withdrawals.
- Speaks only to the Runespear messaging layer (via MessageAgent + Adapter), never directly to bridges.
1.2 Remote Chains (e.g. Ethereum)
On each remote chain, SuperEarn exposes a single aggregation vault:RemoteVault
- A RemoteVault receives bridged stablecoins (USDT/USDC) from Kaia.
-
RemoteVault:
- Keeps a small idle buffer for redemptions.
- Deploys the rest into whitelisted remote strategies (e.g. lending markets, liquidity vaults, RWA vaults) via a local router.
- Tracks any unfulfilled withdrawal amount when remote strategies have their own cooldowns.
- Reports back its state (totalAssets, idleAssets, unfulfilled withdrawals, timestamps) through Runespear so that OriginVault and the Super Vault can compute global
totalAssets()conservatively.
1.3 Cross‑Chain Coordination: Runespear
Runespear is SuperEarn’s cross‑chain “air‑traffic control”, built on Chainlink CCIP plus a bridge provider for the actual asset rail. Conceptually, the cross‑chain stack has four layers:- Vaults (OriginVault, RemoteVault) – business logic
- MessageAgent (SuperEarnMessageAgent) – routing logic
- CrosschainAdapter – infrastructure & bridge accounting
- Runespear / CCIP + Bridge – transport (messages + tokens)
-
Vaults are per‑chain state machines
- No direct cross‑chain calls.
- Only handle local accounting and queues.
-
MessageAgent (SuperEarnMessageAgent)
- Encodes/decodes business payloads.
- Routes commands between vaults and adapters.
- Can be swapped or upgraded without touching vaults.
-
CrosschainAdapter + BridgeAccountant
- Handles all CCIP + bridge operations.
- Tracks nonces, assets in transit, and overlap between “message path” and “bridge path”.
- Implements universal state piggybacking: every CCIP message carries a full StateSnapshot (vault + bridge state) captured at the same timestamp, so double‑counting is avoided and accounting converges automatically.
-
Runespear / CCIP + Bridge
- External transport layer.
- The protocol is designed so that messages and bridge transfers can arrive in any order; the adapter logic and snapshots keep
totalAssets()correct over time.
2. Smart Contracts (Integration Surface)
From a protocol‑integration perspective, you primarily touch two things:- Write path: SuperEarn contracts on Kaia (USDT ↔ EarnUSDT).
- Read path: The official SuperEarn subgraphs (vaults, positions, queues).
2.1 User‑Facing Layer on Kaia
These are the contracts your app or wrapper normally talks to:- USDT (Kaia) Base ERC‑20 stablecoin used as the underlying asset.
-
EarnUSDT (ERC‑20 share token)
- Yield‑bearing token representing a pro‑rata claim on the Super Vault portfolio.
- Price‑per‑share model: balances stay constant; redemption value per share increases as yield accrues.
-
SuperEarnRouter
Convenience contract for deposits and redemptions:
deposit(superVault, amount, minSharesOut)— USDT → EarnUSDTpreviewDeposit(superVault, amount)— estimate sharespreviewRedeem(superVault, shares)— estimate USDTredeem(superVault, shares, receiver, minAssetsOut)— start a redemption (queue‑based)
For all user‑facing flows, every deposit / redeem must go through SuperEarnRouter with Kaia USDT and the EarnUSDT Super Vault address; CooldownVault does not accept direct user deposits or withdrawals.
2.2 Aggregation Vaults on Kaia
You rarely call these directly, but they explain how EarnUSDT actually works under the hood:-
CooldownVault
-
Entry/exit pool (router‑only) where:
- User USDT deposits first arrive via
SuperEarnRouter. - EarnUSDT shares are minted and burned (not directly callable by users on CooldownVault).
- User USDT deposits first arrive via
- Enforces withdrawal cooldowns and max‑loss thresholds.
- Acts as a buffer for connecting to slower or delayed‑liquidity strategies (especially RWA).
-
Entry/exit pool (router‑only) where:
-
Super Vault (Kaia aggregation vault)
- Receives capital from the CooldownVault.
-
Allocates across:
- Kaia‑native DeFi strategies.
- OriginVault for multichain exposure.
- Think of it as “the portfolio brain on Kaia”; EarnUSDT is a share of this aggregated portfolio.
2.3 Cross‑Chain Vaults (Origin / Remote)
These are behind the scenes of the EarnUSDT portfolio:-
OriginVault (Kaia, ERC‑7540‑like)
-
Cross‑chain hub that:
- Holds Kaia‑side USDT allocated to remote strategies.
- Implements asynchronous redemptions (request → fulfill → claim).
- Only talks to the Runespear messaging stack (via MessageAgent + Adapter).
-
Cross‑chain hub that:
-
RemoteVault (e.g. Ethereum)
- Receives bridged assets from OriginVault.
- Invests into remote strategies through a local router (lending markets, liquidity vaults, RWA, etc.).
- Reports
totalAssets,idleAssets, and pending withdrawal amounts back to OriginVault via state snapshots.
2.4 Runespear & Messaging Layer (Internal)
These components live underv2/messaging and v2/core/crosschain in the core repo and are not part of the public integration surface, but you’ll see them in logs, runbooks, and audits:
- SuperEarnMessageAgent — routing layer between vaults and adapter.
- CrosschainAdapter — handles CCIP messages, bridge calls, and state snapshots.
- BridgeAccountant / BridgeQueue — tracks nonces, assets in transit, and reconciles overlap.
- RunespearProtocol / RunespearSender / RunespearReceiver / RunespearTransceiver — encode/decode envelopes, store snapshots, manage retries.
totalAssets()on vaults staysview, deterministic, and composable, even when CCIP or the bridge is delayed.- Asset accounting is conservative and eventually exact, without “stop‑the‑world” behavior when something goes wrong.
3. Subgraphs (Read Path)
For reads, integrators are expected to use the official SuperEarn subgraphs, not any private backend or internal APIs. The subgraphs index on‑chain events from:- CooldownVault / Super Vault (Kaia)
- OriginVault / RemoteVault and their queues
- SuperEarnRouter deposit / redeem events
- High‑level cross‑chain state (keeper executions, bridge events)
-
Vault discovery
- List available SuperEarn vaults (e.g. the EarnUSDT Super Vault).
- Show APY, TVL, allocation breakdown, and high‑level risk labels.
-
Position & performance tracking
- Fetch per‑account EarnUSDT balances (EOAs or contracts).
- Show total value in USD, cumulative earnings, and performance over time.
- Display pending redemptions and their status (in cooldown, claimable, claimed).
-
Queue / redemption status
-
For each
requestId, show:- requested shares / assets,
- creation timestamp,
- estimated unlock time,
- claimed vs unclaimed status.
- Use this to power “pending withdrawal” UIs without hammering contracts on every refresh.
-
For each
4. Keeper & Queue Model (High‑Level)
SuperEarn uses a queue‑based model plus automation (keepers) so that user flows stay simple while the protocol coordinates slower liquidity and cross‑chain operations safely. Very high‑level:On Deposit
USDT → EarnUSDTis usually instant, subject to on‑chain confirmation.- Capital may sit briefly in the CooldownVault before being swept into the Super Vault and onward to strategies.
On Withdrawal
-
redeem()on the router creates a redemption request against the CooldownVault / Super Vault and returns arequestId. -
That request enters a cooldown queue:
- User’s shares are burned.
- The user receives a claim on USDT after the cooldown and any remote withdrawals/bridging are settled.
Keepers
-
LightKeeper
- Batches local
claim(),retrieveDebt(), and similar operations once cooldowns have expired.
- Batches local
-
CrosschainKeeper (per chain)
-
Runs heavier tasks:
- Moving liquidity between OriginVault and RemoteVault.
- Triggering deposits/withdrawals into remote strategies.
- Sending periodic
SYNC_NOOPmessages via Runespear to keep snapshots fresh.
-
Runs heavier tasks:
- You do not need to run your own keeper to use EarnUSDT.
-
Just:
-
Call
deposit/redeemvia the router on Kaia. -
Use the subgraph to display:
- current EarnUSDT balance,
- pending withdrawals (queue entries),
- when a withdrawal becomes claimable or completed.
-
Call