For the complete documentation index, see llms.txt. This page is also available as Markdown.

Architecture

Architecture

Unison is built around five layers: the vault, strategies, cross-chain adapters, an off-chain rebalancing engine, and the DAO vault factory.


Vault

The vault is the central hub. It follows the ERC-4626 tokenized vault standard and lives on a single hub chain.

It accepts deposits and mints vault shares (uTokens) proportional to current NAV, tracks how much capital is deployed to every strategy on every chain, reserves funds for pending cross-chain withdrawals, and maintains a priority-ordered queue of registered strategies.

NAV equals the idle vault balance plus the total capital deployed to strategies. When strategies report profit, the deployed balance goes up, NAV goes up, and so does the share price.

Deposit

Users deposit on the vault's home chain or cross-chain via the bridge adapter. The vault mints uTokens based on NAV per share. Capital sits idle until the keeper deploys it to strategies.

Capital deployment

The keeper moves idle vault capital into strategies. Same-chain strategies get a direct transfer. Cross-chain strategies go through the bridge adapter. The vault tracks exactly how much is deployed to each strategy on each chain.

Withdrawal

Withdrawals follow a priority-ordered cascade:

The vault tries idle balance first. If that's not enough it pulls from same-chain strategies in priority order. If there's still a shortfall it sends withdrawal requests to cross-chain strategies and creates a pending withdrawal with a unique GUID.

Each user can have one active cross-chain withdrawal at a time. Shares stay locked until settlement completes.

Profit reporting

Strategies harvest yield periodically and report profit back to the vault. Same-chain strategies report directly. Cross-chain strategies send it through the messaging adapter. Reported profit increases total assets which pushes up the share price for all holders.


Strategies

Strategies are modular isolated contracts that deploy vault capital into yield sources. Each one lives on a specific chain and interacts with a specific protocol or set of protocols.

They are pluggable (new ones can be added without touching existing ones), isolated (a failure in one doesn't affect others or drain the vault), and self-contained (each manages its own allowances, reward claims, and compounding).

Harvest cycle

The keeper triggers a harvest. The strategy claims accrued rewards, swaps them to the deposit asset, takes the performance fee, reinvests the rest, and reports profit to the vault.

Fee structure

Fee
Rate
When

Performance fee

20% of profit

At each harvest

Withdrawal fee

0.2%

Only on cross-chain withdrawals


Cross-chain adapters

Cross-chain communication is abstracted behind two interfaces: one for messaging (withdraw requests, profit reports) and one for bridging (token transfers). This means the underlying provider can be swapped without changing any vault or strategy code.

The current implementation uses Chainlink CCIP for both messaging and bridging through a single adapter contract. It handles outbound token transfers and messages as well as inbound messages that execute function calls on the target contract.

The adapter is fully swappable. A new one implementing the same interfaces can replace CCIP with any bridge provider while the vault and strategy contracts stay untouched.


Off-chain rebalancing engine

The on-chain contracts handle execution. The decisions about where and when to deploy capital are made off-chain by the rebalancing engine.


Access control

All vault and strategy contracts share three roles:

Role
Responsibilities

Owner

Protocol multisig. Sets keeper and manager. Two-step ownership transfer.

Manager

Operations. Adds/deactivates strategies, updates fees, pause/unpause.

Keeper

Automated. Deploys capital, triggers harvests, rebalances.


Emergency safeguards

Action
Triggered by
What it does

Strategy kill

Manager

Liquidates entire position, bridges funds back, revokes all allowances

Vault pause

Manager

Blocks new deposits and withdrawals. Pending withdrawals keep settling.

Strategy pause

Manager

Blocks deposits and harvests. Revokes external protocol allowances.

Strategy deactivation

Manager

Removes strategy from withdrawal queue. Can't deactivate with pending withdrawals.

Pending reset

Manager

Manually clears stuck pending state after permanent bridge failure.

Last updated