Constants

Exported contract addresses, vault configs, and chain information. All constants are fully typed and tree-shakeable.

Contract Addresses

import {
  YO_GATEWAY_ADDRESS,
  VAULT_REGISTRY_ADDRESS,
  YO_ORACLE_ADDRESS,
  REDEEMER_ADDRESS,
} from '@yo-protocol/core'
Constant
Description
Address

YO_GATEWAY_ADDRESS

Deposit gateway router

0xF1EeE…69FA

VAULT_REGISTRY_ADDRESS

On-chain vault registry

0x56c31…2232

YO_ORACLE_ADDRESS

Price oracle

0x6E879…96B0

REDEEMER_ADDRESS

Async withdrawal redeemer

0x0439e…2162

circle-info

Checksummed

All address constants are checksummed 0x${string} literals — they work directly with viem without additional formatting.

Vault Registry

The VAULTS object exposes every supported vault with its address, underlying token, and available chains.

import { VAULTS } from '@yo-protocol/core'

VAULTS.yoETH.address            // '0x3a43aec...'
VAULTS.yoETH.underlying.symbol  // 'WETH'
VAULTS.yoETH.chains             // [1, 8453]
VAULTS.yoUSD.chains             // [8453]

Available Vaults

ID
Underlying
Chains

yoETH

WETH

Ethereum, Base

yoBTC

cbBTC

Base

yoUSD

USDC

Base

yoEUR

EURC

Base

yoGOLD

XAUt

Ethereum

yoUSDT

USDT

Ethereum

Each vault entry includes:

Property
Type
Description

address

Address

Vault contract address

underlying.address

Address

Underlying ERC-20 token address

underlying.symbol

string

Token symbol

underlying.decimals

number

Token decimals

chains

number[]

Supported chain IDs

Chain Helpers

Export
Type
Description

SUPPORTED_CHAINS

Chain[]

Array of viem chain objects

SUPPORTED_CHAIN_IDS

number[]

[1, 8453]

isSupportedChain(id)

(id: number) => boolean

Check if a chain ID is supported

getChain(id)

(id: number) => Chain

Get viem chain object by ID