메인 콘텐츠로 건너뛰기

1. 아키텍처 개요

자세한 흐름은 SuperEarn 동작 방식핵심 컴포넌트를 참고하세요.

2. 배포 주소

Kaia

Contract설명Address
SuperEarnRouter사용자 예치/출금 라우터0x7437892A3e2E658038758dD7CA638334C0c2006C
CooldownVault출금 쿨다운 관리0x4E4654cE4Ca7ff0ba66a0A4a588A4bd55A6f9A33
OriginVault크로스체인 허브(ERC‑7540 유사)0x3B37DB3AC2a58f2daBA1a7d66d023937d61Fc95b
StrategyOriginVaultOriginVault로 자본 라우팅 전략0x650a4c074a58B18fbEEd48ae766e58a382D9E5F5
StrategyUSDOExpressUSDO 전략(OpenEden)0x6090d8EECB74058bC53BB24273345Dd8Ba5652bF
USDOKycedUSDO 민팅 컨트랙트(OpenEden)0x4Bfc1773280689d17c8c00B2514A5C28c8c2b021
OriginAdapter크로스체인 어댑터(브릿지+CCIP)0x8E53CdAa89381c203a074fB3388f65936358f200
OriginAgentKaia측 메시지/브릿지 에이전트0xd8acFF2E2B8B1Cf052aca4Ba331743F73C569E68
OriginAccountant이동 중 자산 회계0x55CEd8F290256E165d3f50EDa0b60E261ec38f55
PriceConverter오라클 연동 가격 변환기0xC090e88bDAA823B7C1dd8d9e24CbacB0f35f2675
Registry볼트·전략 레지스트리0xea8e1872aDCE77eFBe5d6FE37b5C257Cc86eC786
Super VaultKaia 집계 볼트(EarnUSDT)0x2e4e573D86c70688cD97D76bc5DDc1Bb265bF5D6
CrosschainKeeper크로스체인 자산 라이프사이클0x40FB0F9084828ADBc3dcd71840eA545BF243cD0F
LightKeeper전략 수확/상환, 사용자 클레임0x8c82B2feC291a43e41aA87669eaEf01F4efaA3B2

Ethereum

Contract설명Address
SuperEarnRouterRemoteVault/키퍼용 라우터0xd8acFF2E2B8B1Cf052aca4Ba331743F73C569E68
RemoteVaultKaia 자산을 받는 원격 볼트0x8c82B2feC291a43e41aA87669eaEf01F4efaA3B2
CooldownVault원격 쿨다운 볼트(USDC)0x8E53CdAa89381c203a074fB3388f65936358f200
Super Vault원격 집계 볼트0x9E3E70f4d09bcfe08F456C426EB90f7aA6F70dF2
MorphoStrategy (Core)MetaMorpho Core 전략0x0465912645766f29B2bbeeD8bfE5109A84bF55Af
MorphoStrategy (Frontier)MetaMorpho Frontier 전략0x1E722e4Ea00e7Fe17e76F111cB1179e5A1751BAa
MorphoStrategy (Prime)MetaMorpho Prime 전략0x0176beeF08C27086380e1029F832978828aF2B75
Adapter크로스체인 어댑터(브릿지+CCIP)0xC090e88bDAA823B7C1dd8d9e24CbacB0f35f2675
Agent메시지/브릿지 에이전트(ETH)0x4AFd6Ad5b924CD29513d1fb9b66728C4C5A1bd3e
Accountant이동 중 자산 회계0x40FB0F9084828ADBc3dcd71840eA545BF243cD0F
PriceConverter오라클 연동 가격 변환기0x57B71db8c039aD34b28c289272EFa09b5A870c20
Registry볼트·전략 레지스트리0x0Becde49394d537B240c0272A7C5fEfC932691fe
UniversalSwapRouter통합 DEX 스왑 라우터0x91CAAe299305a8133F295a59f4F22005d16EB65d
CrosschainKeeper크로스체인 자산 라이프사이클0x1D68a6CEFeD44101eD79a830e8a5ad5c0A52D8De
LightKeeper전략 수확/상환, 사용자 클레임0xd064f89A9A95EA86A706543449D0d97557fAF929
프로덕션에서는 주소를 상수로 다루되, 업그레이드 대비 설정 가능하게 유지하세요.

3. 핵심 인터페이스

여기에 통합 시 주로 쓰는 부분만 요약합니다. 전체 ABI는 배포된 JSON 아티팩트(ISuperEarnRouter, ICooldownVault, IVault 등)와 OpenZeppelin 표준 ABI를 참고하세요.

3.1 ISuperEarnRouter (SuperEarnRouter)

역할
단일 엔트리포인트로 예치/리딤 전체 플로우를 처리합니다. 모든 사용자/통합 쓰기는 라우터를 거쳐야 하며 CooldownVault는 직접 호출 불가(클레임은 퍼미션리스지만 보통 키퍼가 실행).
주요 이벤트
event Deposited(
    address indexed sender,
    address indexed receiver,
    address indexed SuperVault,
    uint256 underlyingAmount,
    uint256 yShares
);

event Redeemed(
    address indexed sender,
    address indexed receiver,
    address indexed SuperVault,
    uint256 yShares,
    uint256 ySharesFilled,
    uint256 requestId,
    uint256 underlyingAmount
);
주요 조회
function registry() external view returns (address);
예치
function deposit(address SuperVault, uint256 amount, uint256 minSharesOut) external returns (uint256 yShares);
function deposit(address SuperVault, uint256 amount, address receiver, uint256 minSharesOut) external returns (uint256 yShares);
function depositWithPermit(
    address SuperVault,
    uint256 amount,
    address receiver,
    uint256 minSharesOut,
    uint256 deadline,
    uint8 v,
    bytes32 r,
    bytes32 s
) external returns (uint256 yShares);
  • amount: USDT (6 decimals)
  • minSharesOut: 최소 수령 지분(슬리피지 보호)
  • receiver: 지분 수령 주소(옵션)
프리뷰/리딤
function previewDeposit(address SuperVault, uint256 amount) external view returns (uint256 yShares);
function previewRedeem(address SuperVault, uint256 yShares) external view returns (uint256 assets);
function previewWithdraw(address SuperVault, uint256 assets) external view returns (uint256 ySharesNeeded);

function redeem(address SuperVault, uint256 yShares, uint256 minAssetsOut) external returns (uint256 requestId);
function redeem(address SuperVault, uint256 yShares, address receiver, uint256 minAssetsOut) external returns (uint256 requestId);
  • previewRedeem: 현재 지분 가격 기준 예상 언더라이잉(쿨다운 이후).
  • redeem: SuperVault 지분을 소각하고 CooldownVault 리딤 요청 생성 → requestId 반환/이벤트.
볼트 검색
function endorsedVault(address token) external view returns (address SuperVault);
클레임 프리뷰
function previewClaim(address SuperVault, uint256 requestId) external view returns (bool isClaimable, uint256 maxAssetsOut);
자주 보는 커스텀 에러
InsufficientShares, InsufficientAssets, InvalidReceiver, InvalidPrice, Unauthorized

3.2 ICooldownVault

역할
입·출금 큐, 쿨다운, 손실 한도 관리. 사용자 직접 호출은 불가하며, 라우터/키퍼가 호출.
주요 이벤트
event RedeemRequested(address indexed caller, address indexed receiver, uint256 indexed requestId, uint256 assets, uint256 shares, uint256 requestedTime);
event Claimed(address indexed caller, uint256 indexed requestId, uint256 assets, uint256 claimable);
event InstantRedemption(address indexed caller, uint256 shares, uint256 assets);
핵심 구조체
struct RedeemRequest {
    address receiver;
    uint256 assets;
    uint256 cooldownRequestedTime;
    uint256 cooldownPeriod;
    bool claimed;
}
쿨다운 & 리딤 큐 조회
function cooldownPeriod() external view returns (uint256);
function maxLossThresholdBps() external view returns (uint256);
function redeemRequests(uint256 requestId) external view returns (address receiver, uint256 assets, uint256 cooldownRequestedTime, uint256 cooldownPeriod, bool claimed);
function getUnclaimedRedeemRequestIds() external view returns (uint256[] memory requestIds);
function getUnclaimedRedeemRequestIds(uint256 limit, uint256 skip) external view returns (uint256[] memory requestIds);
클레임
function claim(uint256 requestId, uint256 maxLossBps) external returns (uint256 claimable);
에러 예시 OnlyGovernance, OnlyManagers, OnlyStrategy, OnlyKeepers, InvalidReceiver, RequestAlreadyClaimed, HealthCheckFailed, CooldownPeriodTooLong.

3.3 IVault (Super Vault / Remote Vault)

역할 CooldownVault 지분을 래핑하는 Yearn v2 스타일 토큰화 볼트. EarnUSDT 지분의 기초입니다. 주요 조회
function pricePerShare() external view returns (uint256);
function totalAssets() external view returns (uint256);
function totalDebt() external view returns (uint256);
function depositLimit() external view returns (uint256);
function debtRatio() external view returns (uint256);
function apiVersion() external pure returns (string memory);

3.4 Runespear 메시징/어댑터 주요 컨트랙트 (참고)

  • OriginAdapter / Remote Adapter — CCIP + 브릿지 호출, 자산/메시지 정합 처리
  • OriginAgent / Remote Agent — 메시지 라우팅, 상태 스냅샷 전달
  • BridgeAccountant — 이동 중 자산 추적, 이중 계산 방지
  • StateSnapshot — 각 메시지에 포함되는 볼트/브릿지 상태
이들은 내부 회계·안전 장치로, 일반 통합면에서는 직접 호출하지 않습니다.

4. 통합 메모

  • 예치/출금은 라우터 경유: SuperEarnRouter 외 직접 CooldownVault 입·출금 불가.
  • 지분 가격 모델: EarnUSDT는 리베이스하지 않으므로 pricePerShare 기반으로 가치 계산.
  • 쿨다운 고려: 리딤은 요청 → 쿨다운 → 클레임 순서. previewClaimclaimable로 상태 확인.
  • 슬리피지 보호: minSharesOut, minAssetsOut을 꼭 지정하세요.
  • 크로스체인 회계: 이동 중 자산은 보수적으로 처리되어 일시적으로 값이 낮게 보일 수 있습니다.