Deployed addresses
The
UTY contract on both Avalanche and Katana uses the same address as UTY on Base. Similarly for yUTY. This is intentional — YieldPoint used CREATE3 to produce identical addresses across EVM chains for contracts deployed with the same deployer and salt, so you can hard-code one address per token and route by chain ID.Base (hub)
- Chain ID:
8453 - LayerZero EID:
30184
| Contract | Address | Notes |
|---|---|---|
UTY vault | 0xBA515304d8153c4b162dC79f867E152DF9c127eb | ERC-7540 async vault. Deposit USDC to mint UTY 1:1. |
UTY adapter (ShareOFTAdapter) | 0xC6fE7C5010621Ab3CA5F4C018fAd632f78b4D3f1 | Lockbox adapter for cross-chain UTY transfers. |
yUTY vault | 0xBa515EEd0119aCB7CFE8fAb3ACD6b362f3ed5319 | ERC-7540 async vault for yUTY. 7-day bonding on withdrawals. |
yUTY adapter (ShareOFTAdapter) | 0xCfD564bbf4e50A248835aCe8Ca889f73217162d4 | Lockbox adapter for cross-chain yUTY transfers. |
yUTY composer | 0x2eF787561f3A79371Ee1165B7BeE6dc6ffB09832 | Hub-side cross-chain message handler for yUTY deposits and redemptions from spoke chains. |
USDC (external) | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | USDC on Base. The underlying asset for UTY. |
Avalanche (spoke)
- Chain ID:
43114 - LayerZero EID:
30106
| Contract | Address | Notes |
|---|---|---|
UTY OFT | 0xBA515304d8153c4b162dC79f867E152DF9c127eb | Mint/burn OFT on Avalanche. Same address as the Base UTY vault via CREATE3. |
yUTY OFT | 0xBa515EEd0119aCB7CFE8fAb3ACD6b362f3ed5319 | Mint/burn OFT on Avalanche. Same address as the Base yUTY vault via CREATE3. |
yUTY VaultInterface | 0x110d9c781D30A99f61154b5d696772AcC941a7FC | Spoke-side proxy for cross-chain yUTY deposits and redemptions. Charges flat fees on cross-chain calls. |
yUTY composer (hub ref) | 0x2eF787561f3A79371Ee1165B7BeE6dc6ffB09832 | LayerZero peer reference — same address as the hub composer on Base. Not deployed on Avalanche; listed as the cross-chain routing target. |
Avalanche flat fees
| Fee | Value | Raw uint256 (18 decimals) |
|---|---|---|
depositFlatFee (UTY) | 0.14 UTY | 140000000000000000 |
redeemFlatFee (yUTY) | 0.21 yUTY | 210000000000000000 |
yUTY VaultInterface on cross-chain deposit and redeem calls. They cover the per-message LayerZero gas cost for spoke-to-hub and hub-to-spoke routing. The fees are held as token balances in the VaultInterface contract and swept periodically by the operations role.
Katana (spoke)
- Chain ID:
747474 - LayerZero EID:
30375
| Contract | Address | Notes |
|---|---|---|
UTY OFT | 0xBA515304d8153c4b162dC79f867E152DF9c127eb | Mint/burn OFT on Katana. Same address as the Base UTY vault via CREATE3. |
yUTY OFT | 0xBa515EEd0119aCB7CFE8fAb3ACD6b362f3ed5319 | Mint/burn OFT on Katana. Same address as the Base yUTY vault via CREATE3. |
yUTY VaultInterface | 0x4e1a5a4279241f197b307d69bC23fc5aE2461caC | Spoke-side proxy for cross-chain yUTY deposits and redemptions. Charges flat fees on cross-chain calls. |
yUTY composer (hub ref) | 0x2eF787561f3A79371Ee1165B7BeE6dc6ffB09832 | LayerZero peer reference — same address as the hub composer on Base. Not deployed on Katana; listed as the cross-chain routing target. |
Katana flat fees
| Fee | Value | Raw uint256 (18 decimals) |
|---|---|---|
depositFlatFee (UTY) | 0.14 UTY | 140000000000000000 |
redeemFlatFee (yUTY) | 0.21 yUTY | 210000000000000000 |
yUTY VaultInterface on cross-chain deposit and redeem calls, same pattern as Avalanche.
Addresses sourced from the YieldPoint contracts repo at commit 730f599e on 2026-04-07. Re-sync when the contracts repo deploys new addresses.
Architectural layers
The YieldPoint contracts are organized into four architectural layers plus a LayerZero integration column. Each layer depends on the layer below it: Examples extend Extensions, which extend Core, which implements Interfaces. The LayerZero column sits in parallel with its own internal structure.Examples (deployable)
UTY
yUTY
Extensions (mixins)
UTYAsyncVaultV1Custodian
UTYAsyncVaultV1Instant
UTYAsyncVaultV1Ethena
ERC20AuthorizationUpgradeable
PausableWithPauserAuth
Core (abstract base)
UTYAsyncVaultV1
Interfaces
LayerZero integration
ShareOFTAdapter
UTYVaultComposer
OFTExtended
UTYVaultInterface
Vault inheritance
UTYAsyncVaultV1 (abstract base)
The base vault inherits from seven upgradeable OpenZeppelin and YieldPoint contracts:ERC4626UpgradeableERC20AuthorizationUpgradeable(EIP-3009)Ownable2StepUpgradeableAccessControlEnumerableUpgradeableUUPSUpgradeableReentrancyGuardUpgradeablePausableUpgradeable
UTY vault configuration
UTY extends UTYAsyncVaultV1 with two extensions plus an override:
UTYAsyncVaultV1Custodian— adds the custodian sweep,totalManagedAssetstracking,totalAssets()override, and emergency write-down viareduceTotalManagedAssets()UTYAsyncVaultV1Instant— adds the instant redemption path below a configurable thresholddonate()is overridden to revert
yUTY vault configuration
yUTY extends UTYAsyncVaultV1 directly, without the custodian or instant extensions:
- Async-only ERC-7540 vault — no instant redemption
- 7-day unbonding period for all withdrawals
- 18-decimal shares (no decimals offset; inflation defense via seed deposit)
LayerZero contracts
The LayerZero integration layer splits between hub-side and spoke-side contracts.Hub-side (Base)
ShareOFTAdapter— OFT adapter wrapping the vault’s share token. Uses the lockbox model: tokens sent cross-chain are locked in the adapter, not burned. InheritsPausableWithPauserAuthfor bridge-level pause control.UTYVaultComposer— handles incoming cross-chainlzComposemessages, executes vault operations on behalf of the caller, and manages refund recovery for failed composes. ExtendsVaultComposerSyncPatched(the YieldPoint patched version of the LayerZero base composer) andOwnable2Step.
Spoke-side (Avalanche, Katana)
OFTExtended— the UTY and yUTY token representation on spoke chains. Mint/burn model: tokens arriving from the hub are minted, tokens leaving are burned. ExtendsOFTUpgradeable,ERC20AuthorizationUpgradeable, andOwnable2StepUpgradeable.UTYVaultInterface— the spoke-chain proxy that makes yUTY deposits and redemptions feel local to a user on Avalanche or Katana. Charges flat fees on cross-chain calls (see Tokens and fees). UsesAccessControl, ERC-7201 namespaced storage, and maintains a per-user pending-claims counter that prevents double-spending of claim credits.
Key contracts
| Contract | Purpose | Deployment |
|---|---|---|
UTYAsyncVaultV1 | Base vault implementation (abstract) | Hub only |
UTYAsyncVaultV1Custodian | Custodian sweep + fundRedemptions extension | Hub only |
UTYAsyncVaultV1Instant | Instant redemption extension | Hub only (UTY) |
PausableWithPauserAuth | Bridge-level pause (ERC-7201 namespaced) | Hub only |
ERC20AuthorizationUpgradeable | EIP-3009 implementation | All chains |
UTYVaultComposer | Cross-chain message handler + refund recovery | Hub only |
UTYVaultInterface | Spoke vault proxy + access control + flat fees + pending-claims counter | Spoke chains |
OFTExtended | Extended OFT token (UTY/yUTY on spokes) | Spoke chains |
ShareOFTAdapter | Hub OFT lockbox + bridge-level pause | Hub only |
Example contracts
YieldPoint ships two concrete vault implementations ready for deployment:| Contract | Description | Extends |
|---|---|---|
UTY | Unity stablecoin vault (1:1 USDC peg, custodian sweep, instant redemption) | UTYAsyncVaultV1, UTYAsyncVaultV1Instant, UTYAsyncVaultV1Custodian |
yUTY | Yield-bearing vault shares for UTY (async-only, no instant redemption) | UTYAsyncVaultV1 |