Skip to main content
YieldPoint deploys on Base (hub) and two spoke chains (Avalanche and Katana). Contract state lives on the hub; spoke chains hold tokens and interact with the hub via LayerZero messages. This page lists the deployed addresses for each chain, then walks through the contract architecture: layer organization, vault inheritance, the LayerZero integration, and a reference table of the key contracts.

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
ContractAddressNotes
UTY vault0xBA515304d8153c4b162dC79f867E152DF9c127ebERC-7540 async vault. Deposit USDC to mint UTY 1:1.
UTY adapter (ShareOFTAdapter)0xC6fE7C5010621Ab3CA5F4C018fAd632f78b4D3f1Lockbox adapter for cross-chain UTY transfers.
yUTY vault0xBa515EEd0119aCB7CFE8fAb3ACD6b362f3ed5319ERC-7540 async vault for yUTY. 7-day bonding on withdrawals.
yUTY adapter (ShareOFTAdapter)0xCfD564bbf4e50A248835aCe8Ca889f73217162d4Lockbox adapter for cross-chain yUTY transfers.
yUTY composer0x2eF787561f3A79371Ee1165B7BeE6dc6ffB09832Hub-side cross-chain message handler for yUTY deposits and redemptions from spoke chains.
USDC (external)0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913USDC on Base. The underlying asset for UTY.
Base is the hub chain — all vault state, share price, and withdrawal queue management lives here. UTY is minted and redeemed directly on Base; cross-chain UTY operations go through the adapter. yUTY is minted and redeemed on Base (either directly or via cross-chain composer calls from spokes).

Avalanche (spoke)

  • Chain ID: 43114
  • LayerZero EID: 30106
ContractAddressNotes
UTY OFT0xBA515304d8153c4b162dC79f867E152DF9c127ebMint/burn OFT on Avalanche. Same address as the Base UTY vault via CREATE3.
yUTY OFT0xBa515EEd0119aCB7CFE8fAb3ACD6b362f3ed5319Mint/burn OFT on Avalanche. Same address as the Base yUTY vault via CREATE3.
yUTY VaultInterface0x110d9c781D30A99f61154b5d696772AcC941a7FCSpoke-side proxy for cross-chain yUTY deposits and redemptions. Charges flat fees on cross-chain calls.
yUTY composer (hub ref)0x2eF787561f3A79371Ee1165B7BeE6dc6ffB09832LayerZero peer reference — same address as the hub composer on Base. Not deployed on Avalanche; listed as the cross-chain routing target.

Avalanche flat fees

FeeValueRaw uint256 (18 decimals)
depositFlatFee (UTY)0.14 UTY140000000000000000
redeemFlatFee (yUTY)0.21 yUTY210000000000000000
Fees are charged by the spoke 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
ContractAddressNotes
UTY OFT0xBA515304d8153c4b162dC79f867E152DF9c127ebMint/burn OFT on Katana. Same address as the Base UTY vault via CREATE3.
yUTY OFT0xBa515EEd0119aCB7CFE8fAb3ACD6b362f3ed5319Mint/burn OFT on Katana. Same address as the Base yUTY vault via CREATE3.
yUTY VaultInterface0x4e1a5a4279241f197b307d69bC23fc5aE2461caCSpoke-side proxy for cross-chain yUTY deposits and redemptions. Charges flat fees on cross-chain calls.
yUTY composer (hub ref)0x2eF787561f3A79371Ee1165B7BeE6dc6ffB09832LayerZero peer reference — same address as the hub composer on Base. Not deployed on Katana; listed as the cross-chain routing target.

Katana flat fees

FeeValueRaw uint256 (18 decimals)
depositFlatFee (UTY)0.14 UTY140000000000000000
redeemFlatFee (yUTY)0.21 yUTY210000000000000000
Fees are charged by the spoke 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
LayerZero integration
ShareOFTAdapter
UTYVaultComposer
OFTExtended
UTYVaultInterface
The layers are listed in dependency order — top to bottom matches the dependency direction. Test mocks are not part of the runtime dependency graph and are omitted from this view.

Vault inheritance

UTYAsyncVaultV1 (abstract base)

The base vault inherits from seven upgradeable OpenZeppelin and YieldPoint contracts:
  • ERC4626Upgradeable
  • ERC20AuthorizationUpgradeable (EIP-3009)
  • Ownable2StepUpgradeable
  • AccessControlEnumerableUpgradeable
  • UUPSUpgradeable
  • ReentrancyGuardUpgradeable
  • PausableUpgradeable

UTY vault configuration

UTY extends UTYAsyncVaultV1 with two extensions plus an override:
  • UTYAsyncVaultV1Custodian — adds the custodian sweep, totalManagedAssets tracking, totalAssets() override, and emergency write-down via reduceTotalManagedAssets()
  • UTYAsyncVaultV1Instant — adds the instant redemption path below a configurable threshold
  • donate() is overridden to revert
Why donate() reverts for UTY. The UTY vault maintains a strict 1:1 peg with USDC. In a standard ERC-4626 vault, anyone can call donate() to add assets without minting shares, which increases the exchange rate for all shareholders. For UTY, this would break the 1:1 guarantee — if someone donated 1000 USDC, existing UTY holders would suddenly have shares worth more than 1 USDC each. By reverting on donate(), the UTY vault ensures the exchange rate can never deviate from 1.0. This is intentional and critical to UTY’s design as a stablecoin, not a yield-bearing token. (The yUTY vault, by contrast, allows donations — this increases the exchange rate for existing shareholders, which is the desired behavior for a yield vault.)

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. Inherits PausableWithPauserAuth for bridge-level pause control.
  • UTYVaultComposer — handles incoming cross-chain lzCompose messages, executes vault operations on behalf of the caller, and manages refund recovery for failed composes. Extends VaultComposerSyncPatched (the YieldPoint patched version of the LayerZero base composer) and Ownable2Step.

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. Extends OFTUpgradeable, ERC20AuthorizationUpgradeable, and Ownable2StepUpgradeable.
  • 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). Uses AccessControl, ERC-7201 namespaced storage, and maintains a per-user pending-claims counter that prevents double-spending of claim credits.

Key contracts

ContractPurposeDeployment
UTYAsyncVaultV1Base vault implementation (abstract)Hub only
UTYAsyncVaultV1CustodianCustodian sweep + fundRedemptions extensionHub only
UTYAsyncVaultV1InstantInstant redemption extensionHub only (UTY)
PausableWithPauserAuthBridge-level pause (ERC-7201 namespaced)Hub only
ERC20AuthorizationUpgradeableEIP-3009 implementationAll chains
UTYVaultComposerCross-chain message handler + refund recoveryHub only
UTYVaultInterfaceSpoke vault proxy + access control + flat fees + pending-claims counterSpoke chains
OFTExtendedExtended OFT token (UTY/yUTY on spokes)Spoke chains
ShareOFTAdapterHub OFT lockbox + bridge-level pauseHub only

Example contracts

YieldPoint ships two concrete vault implementations ready for deployment:
ContractDescriptionExtends
UTYUnity stablecoin vault (1:1 USDC peg, custodian sweep, instant redemption)UTYAsyncVaultV1, UTYAsyncVaultV1Instant, UTYAsyncVaultV1Custodian
yUTYYield-bearing vault shares for UTY (async-only, no instant redemption)UTYAsyncVaultV1
Both contracts include hardcoded names, symbols, and default configuration (7-day bonding period, unlimited max assets).