0x2460a05cC7C9e0f1e20B9b98C6F54aCaad221b98 (same address on all chains)
The contract is verified on all chains. Since it uses the Diamond proxy pattern (EIP-2535), you’ll interact with it through the special “Diamond Proxy” tab on the block explorer.
Block Explorer Links
| Chain | Diamond246 Link |
|---|---|
| Ethereum | View on Etherscan |
| Sonic | View on Sonicscan |
| Plasma | View on Plasmascan |
Navigating the Diamond Proxy on Etherscan
Diamond proxy contracts have a special “Diamond Proxy” button on the block explorer. This is different from the regular “Read/Write as Proxy” tabs.How to access Diamond Proxy functions
- Go to the Diamond246 contract page
- Click the “Contract” tab
- You’ll see several sub-tabs — find the “Diamond Proxy” button (highlighted in blue)
- Click it to reveal a dropdown with Read and Write

Reading data (Diamond Proxy > Read)
- Click “Diamond Proxy” > “Read”
- On the left sidebar, you’ll see a list of all facets (numbered). Click ViewerFacet for
positions,restakers,pairs, and other read functions - The right side shows all functions in that facet
positions and pairs:

Writing transactions (Diamond Proxy > Write)
- Click “Diamond Proxy” > “Write”
- Click “Connect to Web3” to connect your wallet
- On the left sidebar, select the correct facet:
| Action | Facet to select |
|---|---|
| Unstake | RestakingFacet |
| Repay | BorrowingFacet |
| Withdraw Collateral | CollateralManagementFacet |
unstake function with input fields:

Tip: If you don’t see the function you need, you’re on the wrong facet in the sidebar. Check the table above and click the correct facet name.
1. Find Your Pair ID
Every operation requires a delegationPairId (for restake positions) or pairId (for borrow positions). Find yours from the tables below.Ethereum — Restake Pools
| Asset (aToken) | Underlying | Debt | delegationPairId |
|---|---|---|---|
| aEthUSDC | USDC | GHO | 0x858e80a896e0b166bb915cf23a5422af84da3bd03ba15266bf657e202a706709 |
| aEthUSDC | USDC | USDC | 0x6f8227c2f15c13d9c9d409c165322ea1fa7815b464a83bb3db97196f6b547acf |
| aEthWETH | WETH | WETH | 0xc95ddaa41f8b052609186ef95d959eeed8e9442460735d56ccc5f2fb9c8c6459 |
Ethereum — Borrow Pairs
| Collateral | Debt | pairId |
|---|---|---|
| hyperUSDC | GHO | 0xc63f980a8c707b1fa3bd5d224ebb1e39461f918075af70e877e650cf165bcdd0 |
| hyperUSDC | USDC | 0x138691662b8b1b8ab563fe6dc02886254c7042e59b92da0c4e39b0a9a0676031 |
| fUSDC | GHO | 0x298aa6a6ed3c11386efa88a86ddd1aab2f5538ef87265e78ca04203d235da369 |
| fUSDC | USDC | 0x75af9116d0ec9cb02b0b105eaf57be84e3881668cf2cd2061652e5ad35100035 |
| bbqUSDC | GHO | 0x24263bb59f68725cc3009fbe60ef2defd3ef2115f90ea177ac8a988a034e77df |
| bbqUSDC | USDC | 0x784ef0cb8b003a2560dc075d1aa0ad1f2b77c7fb25592ba49e307c1b5f24a32d |
| resolvUSDC | GHO | 0x59b976403b0f22232c3c51de092212bb1c8f19deae389c245dd64209ad8bb693 |
| resolvUSDC | USDC | 0xdb9e632142599e0944d6abbd2f12403978125767a6ebaa11c76c5d6deac8b094 |
| USUALUSDC+ | GHO | 0x01c0ae13c65f5acd29a9b2965839d60a64db3ddf5021166eeefbdcd47790eb4c |
| USUALUSDC+ | USDC | 0x7ea859e1663ec352f486242a1a6d3b3e49a7f0adbebd3db91c165c3ae9ceeb48 |
| Re7WETH | WETH | 0x4d0d8032c93ce906c251320ddfc684ab1f21d72dfecac3b7895d12aa7927a5cf |
| mhyETH | WETH | 0x6a2ac2068deeddb301734d68d860d22d7c6d52d082c69385346cabc310bb8ff8 |
| gtLRTcore | WETH | 0x27b55ecdf7c08e7334dedd57b2d003f1632f659e985257c0e55f878afb50bca7 |
Sonic — Restake Pools
| Asset (aToken) | Underlying | Debt | delegationPairId |
|---|---|---|---|
| aSonUSDC | USDC.e | USDC.e | 0x4372989400a74c4ee7194806b73722505de0f06b22d6b210e022b5fac29eb641 |
Sonic — Borrow Pairs
| Collateral | Debt | pairId |
|---|---|---|
| wstkscUSD | USDC.e | 0xeb88af7ca2a4b64c65951fd2fa1b6c0ea571ff03de0da61edd4ef1c2421573ba |
Plasma — Restake Pools
| Asset (aToken) | Underlying | Debt | delegationPairId |
|---|---|---|---|
| aPlaUSDT0 | USDT0 | USDT0 | 0x060ffdf07a3de1f85184e3996ffd480d811e95ea141404370b48f81d154f91bd |
Plasma — Borrow Pairs
| Collateral | Debt | pairId |
|---|---|---|
| 246USDT0 | USDT0 | 0x7830cec2536e7ccb563a576b0b0837a87e7d245bd40583d247697c272f1d1dc3 |
| Re7USDT0Core | USDT0 | 0x1562c1aede7b0d4f808fc1078b2b4a638c1202544a34900b7f978130f4a6db30 |
2. Check Your Positions
- Go to the Diamond246 contract on the block explorer for your chain
- Click “Diamond Proxy” > “Read”
- In the left sidebar, click “ViewerFacet”
positions and restakers functions:

Check Borrow Position
Find and expand thepositions function.
| Parameter | What to enter |
|---|---|
pairId | Your pair ID from the table above |
account | Your wallet address |
| Field | Meaning |
|---|---|
account | Your proxy account address (used internally) |
debtShares | Your share of the debt pool |
collateral | Your collateral amount (in token’s smallest unit) |
0x1386...6031) for address 0x308c...6baf — result shows debtShares, scaledDebt, and collateral:

Check Restake Position
Find and expand therestakers function.
| Parameter | What to enter |
|---|---|
delegationPairId | Your delegation pair ID from the table above |
account | Your wallet address |
| Field | Meaning |
|---|---|
scaledSupply | Your restaked amount (scaled — see note below) |
interest | Accrued interest you can claim |
0xc95d...6459) for address 0x08c7...bff5 — result shows scaledSupply and interest:

Note:scaledSupplyis RAY-scaled (divided by 10^27 with the liquidity index). The actual amount is approximatelyscaledSupply * liquidityIndex / 10^27.
3. Unstake (Withdraw Restaked Assets)
This withdraws your restaked aTokens (e.g. aEthUSDC, aSonUSDC, aPlaUSDT0) from Diamond246.Step by Step
- Go to Diamond246 on the block explorer
- Click “Diamond Proxy” > “Write”
- Click “Connect to Web3” and connect your wallet

- In the left sidebar, click “RestakingFacet”
- Find and expand the
unstakefunction - Fill in the parameters:
| Parameter | What to enter |
|---|---|
delegationPairAssets > asset | The aToken address (see table below) |
delegationPairAssets > debt | The debt token address (see table below) |
amount | Use max value for full withdrawal: 115792089237316195423570985008687907853269984665640564039457584007913129639935 |
onBehalf | Your wallet address |
receiver | Your wallet address |
- Click Write and confirm in your wallet
unstake expanded with aToken and debt addresses filled, max amount for full withdrawal:

Token Addresses for unstake
Ethereum
| asset (aToken) | Address | debt | Address |
|---|---|---|---|
| aEthUSDC | 0x98c23e9d8f34fefb1b7bd6a91b7ff122f4e16f5c | GHO | 0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f |
| aEthUSDC | 0x98c23e9d8f34fefb1b7bd6a91b7ff122f4e16f5c | USDC | 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 |
| aEthWETH | 0x4d5f47fa6a74757f35c14fd3a6ef8e3c9bc514e8 | WETH | 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 |
Sonic
| asset (aToken) | Address | debt | Address |
|---|---|---|---|
| aSonUSDC | 0x578ee1ca3a8e1b54554da1bf7c583506c4cd11c6 | USDC.e | 0x29219dd400f2bf60e5a23d13be72b486d4038894 |
Plasma
| asset (aToken) | Address | debt | Address |
|---|---|---|---|
| aPlaUSDT0 | 0x5d72a9d9a9510cd8cbdba12ac62593a58930a948 | USDT0 | 0xb8ce59fc3717ada4c02eadf9682a9e934f625ebb |
After Unstaking: Withdraw from Aave
After unstaking, you receive the aToken (e.g. aEthUSDC, aSonUSDC, aPlaUSDT0). To get the underlying token (e.g. USDC), withdraw via the Aave UI: app.aave.com — Go to Dashboard > find your supplied asset > click Withdraw > enter max amount > confirm.3.5. Redeem re-aUSDC (Sonic Only)
If you hold re-aUSDC on Sonic, you need to redeem it to get back your aSonUSDC (aToken). re-aUSDC Contract:0x561d1907dd7C0B92E5278356BC230B7e94704d57
re-aUSDC is an ERC4626 vault. Use withdraw to get back an exact amount of aSonUSDC.
Step by Step
- Go to the re-aUSDC contract on Sonicscan
- Click “Read Contract” > find
maxWithdraw> enter your wallet address > click Query - Copy the returned value — this is the maximum aSonUSDC you can withdraw
- Switch to the “Write Contract” tab > “Connect to Web3”
- Find and expand the
withdrawfunction - Fill in:
| Parameter | What to enter |
|---|---|
assets | The maxWithdraw value from step 3 |
receiver | Your wallet address |
owner | Your wallet address |
- Click Write and confirm
withdraw function expanded with assets, receiver, and owner fields:

4. Repay Debt
If you have an outstanding borrow position, you must repay the debt before withdrawing collateral.How much debt do I owe?
Your debt amount can be calculated from on-chain data:- Go to Diamond246 > “Diamond Proxy” > “Read”
- Call
positionswith your pairId + wallet address — note yourdebtShares - Call
pairswith the same pairId — notetotalDebtSharesandtotalScaledDebt
(debtShares × totalScaledDebt) / totalDebtShares
Note: This gives you an approximate amount in the token’s smallest unit (e.g. 6 decimals for USDC, so100000000= 100 USDC). The actual debt accrues interest over time, so approve a bit more than this estimate (e.g. add 1%). Therepayfunction only transfers the exact amount owed — any excess stays in your wallet.
Step 1: Approve Diamond246
Before repaying, you need to approve Diamond246 to spend your debt token.
Tip: Don’t approve max uint256 if you’re uncomfortable with unlimited approvals. Instead, approve an amount slightly above your estimated debt. The repay function only transfers the exact amount owed — any excess approval is not spent.
- Go to the debt token contract on the block explorer (links below)
- Click “Write as Proxy” (for proxy tokens like USDC) or “Write Contract”
- Click “Connect to Web3”
- Find the
approvefunction - Fill in:
| Parameter | What to enter |
|---|---|
spender | 0x2460a05cC7C9e0f1e20B9b98C6F54aCaad221b98 (Diamond246) |
amount | Your estimated debt amount with buffer (in token’s smallest unit, e.g. for 100 USDC: 100000000) |
- Click Write and confirm
- (Optional) After repaying, you can revoke the approval by calling
approveagain with amount0
approve expanded with Diamond246 as spender and 100 USDC (100000000) as value:

Debt Token Contracts
| Token | Chain | Address | Explorer Link |
|---|---|---|---|
| GHO | Ethereum | 0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f | Etherscan |
| USDC | Ethereum | 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 | Etherscan |
| WETH | Ethereum | 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 | Etherscan |
| USDC.e | Sonic | 0x29219dd400f2bf60e5a23d13be72b486d4038894 | Sonicscan |
| USDT0 | Plasma | 0xb8ce59fc3717ada4c02eadf9682a9e934f625ebb | Plasmascan |
Step 2: Repay on Diamond246
- Go to Diamond246 > “Diamond Proxy” > “Write”
- In the left sidebar, click “BorrowingFacet”
- Find and expand the
repayfunction - Fill in:
| Parameter | What to enter |
|---|---|
pairAssets > debt | Debt token address |
pairAssets > collateral | Collateral token address |
amount | 0 (use share for full repay) |
share | Max uint256: 115792089237316195423570985008687907853269984665640564039457584007913129639935 |
onBehalf | Your wallet address |
data | 0x |
- Click Write and confirm
repay expanded with GHO as debt (0x40d1...6c2f), hyperUSDC as collateral (0x7777...7777), amount=0 and share=max for full repay:

Collateral Token Addresses
| Token | Chain | Address |
|---|---|---|
| hyperUSDC | Ethereum | 0x777791c4d6dc2ce140d00d2828a7c93503c67777 |
| fUSDC | Ethereum | 0xb0f05e4de970a1aaf77f8c2f823953a367504ba9 |
| bbqUSDC | Ethereum | 0xbeefff209270748ddd194831b3fa287a5386f5bc |
| resolvUSDC | Ethereum | 0x132e6c9c33a62d7727cd359b1f51e5b566e485eb |
| USUALUSDC+ | Ethereum | 0xd63070114470f685b75b74d60eec7c1113d33a3d |
| Re7WETH | Ethereum | 0x78fc2c2ed1a4cdb5402365934ae5648adad094d0 |
| mhyETH | Ethereum | 0x701907283a57ff77e255c3f1aad790466b8ce4ef |
| gtLRTcore | Ethereum | 0x4881ef0bf6d2365d3dd6499ccd7532bcdbce0658 |
| wstkscUSD | Sonic | 0x9fb76f7ce5fceaa2c42887ff441d46095e494206 |
| 246USDT0 | Plasma | 0x9c46ee1f01d2b551048f5ff99a4659d98d04bed1 |
| Re7USDT0Core | Plasma | 0xa5eed1615cd883dd6883ca3a385f525e3beb4e79 |
5. Withdraw Collateral
After repaying all debt, you can withdraw your collateral.Important: You must repay all debt first. If you have outstanding debt, this transaction will revert.
- Go to Diamond246 > “Diamond Proxy” > “Write”
- In the left sidebar, click “CollateralManagementFacet”
- Find and expand the
withdrawCollateralfunction - Fill in:
| Parameter | What to enter |
|---|---|
pairAssets > debt | Debt token address (same as repay) |
pairAssets > collateral | Collateral token address (same as repay) |
amount | Your exact collateral amount from the positions query (do NOT use max uint256) |
onBehalf | Your wallet address |
receiver | Your wallet address |
- Click Write and confirm
withdrawCollateral expanded with GHO as debt, hyperUSDC as collateral, exact collateral amount entered:

Important: Foramount, use the exactcollateralvalue returned by thepositionsread call in step 2. Do NOT use max uint256 — it will revert.
Quick Reference: Full Exit Flow
Restakers (no borrow position)
- Unstake on Diamond246 (RestakingFacet) — receive aToken
- Withdraw on Aave UI — receive underlying token (USDC, WETH, etc.)
re-aUSDC holders (Sonic)
- Redeem re-aUSDC on Sonicscan — receive aSonUSDC
- Withdraw on Aave UI — receive USDC.e
Borrowers
- Approve debt token for Diamond246
- Repay on Diamond246 (BorrowingFacet) — clear all debt
- Withdraw Collateral on Diamond246 (CollateralManagementFacet) — receive collateral token
Borrowers + Restakers
- Approve > Repay > Withdraw Collateral (borrower exit)
- Unstake > Aave Withdraw (restaker exit)