Skip to content

feat(statics): onboard eth:waethusdc stata token - #9736

Merged
sachinBitgo merged 1 commit into
masterfrom
sachinroy936/defi-794-onboard-statatoken-usdc-waethusdc
Sep 16, 2026
Merged

sachinBitgo merged 1 commit into
masterfrom
sachinroy936/defi-794-onboard-statatoken-usdc-waethusdc

Conversation

@sachinBitgo

Copy link
Copy Markdown
Contributor

Summary

Onboards the Ethereum mainnet Aave V3 StataTokenV2 (ERC-4626) USDC wrapper as the BitGo coin eth:waethusdc — the vault share token for the ETH_USDC_AAVE_V3 DeFi Earn vault (DEFI-794, TDD - Aave V3 §11.3). The defi-service vaultRegistry entry already exists and references this coin as its shareToken.

  • UnderlyingAsset enum entry in modules/statics/src/base.ts
  • erc20 entry in modules/statics/src/coins/erc20Coins.ts — 6 decimals, contract 0xd4fa2d31b7968e448877f69a96de69f5de8cd23e, CoinFeature.RECEIPT_TOKEN
  • Placed in the general erc20Coins set (the DEFI-802 main-coin-set decision for stata tokens), not botTokens.ts where the legacy aToken family lives (resolves the TDD §11.3 open question for the mainnet stata path)

On-chain verification

eth_call against Ethereum mainnet:

call result
name() Wrapped Aave Ethereum USDC
symbol() waEthUSDC
asset() 0xA0b86991c6218b36C1d19D4a2e9Eb0cE3606eB48 (USDC underlying ✓)
decimals() 6 ✓
convertToAssets(1000) 1185 (rate 1.185 ✓, consistent with the defillama price of ~$1.18)

Address cross-checked against the TDD - Aave V3 §11.3 address table (aave-dao/aave-address-book AaveV3Ethereum ASSETS.USDC.STATA_TOKEN).

Sequencing

Step 1 of the per-token sequence (mirrors DEFI-802 / the PR Sequence doc): merge + trigger the @bitgo-beta/statics publish (publish.yml) and confirm the beta version before the downstream PRs consume it. The AMS registration (instrumentMetadata/marketCoinConfig keyed off UUID 8c2a071a-f3cc-4024-9d66-99bed562e562) is already open in BitGo/asset-metadata-service.

Tests

  • modules/statics tsc build ✅
  • Coin resolves via coins.get('eth:waethusdc') with the expected features (account defaults + EIP1559 + receipt-token) ✅; name/address/UUID unique across the registry ✅
  • prettier clean
  • ⚠️ yarn unit-test in modules/statics fails identically on master in this environment (ts-node/nyc "expand is not a function" transform error on every file, pre-existing) — relying on CI for the full suite

TICKET: DEFI-794

Register the Aave V3 StataTokenV2 (ERC-4626) USDC wrapper for Ethereum
mainnet in @bitgo/statics — the vault share token for the ETH_USDC_AAVE_V3
DeFi Earn vault (DEFI-794, TDD - Aave V3 §11.3; the defi-service
vaultRegistry entry already exists and references this coin as its
shareToken):

- Add UnderlyingAsset enum entry in base.ts
- Add erc20 entry in coins/erc20Coins.ts with 6 decimals, contract
  address 0xd4fa2d31b7968e448877f69a96de69f5de8cd23e (StataTokenV2,
  whose asset() is the USDC underlying 0xa0b86991c6218b36c1d19d4a2e9eb0ce
  3606eb48), and CoinFeature.RECEIPT_TOKEN — placed in the general
  erc20Coins set (per the DEFI-802 main-coin-set decision for stata
  tokens), not botTokens.ts where the legacy aToken family lives
  (TDD §11.3 open question)

On-chain verification via eth_call against ethereum mainnet:
name() = 'Wrapped Aave Ethereum USDC', symbol() = 'waEthUSDC',
asset() = 0xA0b86991c6218b36C1d19D4a2e9Eb0cE3606eB48 (USDC),
decimals() = 6, convertToAssets(1000) = 1185 (rate 1.185 — consistent
with the defillama price of ~$1.18). Address cross-checked against the
TDD - Aave V3 §11.3 address table (aave-dao/aave-address-book
AaveV3Ethereum ASSETS.USDC.STATA_TOKEN).

Mirrors the tbaseeth:waBasSepLidUSDC precedent (DEFI-802).

TICKET: DEFI-794
@sachinBitgo
sachinBitgo requested a review from a team as a code owner September 15, 2026 09:47
@linear-code

linear-code Bot commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

DEFI-794

@sachinBitgo
sachinBitgo marked this pull request as draft September 15, 2026 09:53
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Unit tests are failing on Node 26.x (Current release line, non-blocking). This is not an LTS version yet, so it does not block merge, but it signals an incompatibility to fix before Node 26.x becomes LTS.

View run

@sachinBitgo
sachinBitgo marked this pull request as ready for review September 15, 2026 14:39

@harman-bitgo harman-bitgo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@sachinBitgo
sachinBitgo merged commit 4ef42fe into master Sep 16, 2026
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants