Skip to main content
246Club is sunsetting. This guide walks you through withdrawing your positions directly on-chain using Etherscan, Sonicscan, or your chain’s block explorer. Diamond246 Contract: 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.


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

  1. Go to the Diamond246 contract page
  2. Click the “Contract” tab
  3. You’ll see several sub-tabs — find the “Diamond Proxy” button (highlighted in blue)
  4. Click it to reveal a dropdown with Read and Write
The “Diamond Proxy” dropdown showing Read and Write options: Diamond Proxy dropdown with Read and Write options

Reading data (Diamond Proxy > Read)

  1. Click “Diamond Proxy” > “Read”
  2. On the left sidebar, you’ll see a list of all facets (numbered). Click ViewerFacet for positions, restakers, pairs, and other read functions
  3. The right side shows all functions in that facet
Diamond Proxy Read view — ViewerFacet selected in the left sidebar, showing functions like positions and pairs: Diamond Proxy Read with ViewerFacet sidebar

Writing transactions (Diamond Proxy > Write)

  1. Click “Diamond Proxy” > “Write”
  2. Click “Connect to Web3” to connect your wallet
  3. On the left sidebar, select the correct facet:
Diamond Proxy Write view — RestakingFacet selected in sidebar, showing unstake function with input fields: Diamond Proxy Write with RestakingFacet sidebar
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

Ethereum — Borrow Pairs

Sonic — Restake Pools

Sonic — Borrow Pairs

Plasma — Restake Pools

Plasma — Borrow Pairs


2. Check Your Positions

  1. Go to the Diamond246 contract on the block explorer for your chain
  2. Click “Diamond Proxy” > “Read”
  3. In the left sidebar, click “ViewerFacet”
ViewerFacet selected in sidebar — scroll down to find positions and restakers functions: ViewerFacet showing positions and pairs functions

Check Borrow Position

Find and expand the positions function. Click Query. You will see: Example: querying the hyperUSDC/USDC pair (0x1386...6031) for address 0x308c...6baf — result shows debtShares, scaledDebt, and collateral: positions query showing debtShares and collateral for hyperUSDC/USDC pair

Check Restake Position

Find and expand the restakers function. Click Query. You will see: Example: querying the aEthWETH/WETH restake pool (0xc95d...6459) for address 0x08c7...bff5 — result shows scaledSupply and interest: restakers query showing scaledSupply for aEthWETH/WETH pool
Note: scaledSupply is RAY-scaled (divided by 10^27 with the liquidity index). The actual amount is approximately scaledSupply * liquidityIndex / 10^27.

3. Unstake (Withdraw Restaked Assets)

This withdraws your restaked aTokens (e.g. aEthUSDC, aSonUSDC, aPlaUSDT0) from Diamond246.

Step by Step

  1. Go to Diamond246 on the block explorer
  2. Click “Diamond Proxy” > “Write”
  3. Click “Connect to Web3” and connect your wallet
The “Connect to Web3” button — make sure it shows green (connected) before proceeding: Connect to Web3 button on Write Contract
  1. In the left sidebar, click “RestakingFacet”
  2. Find and expand the unstake function
  3. Fill in the parameters:
  1. Click Write and confirm in your wallet
Example: unstaking from the aEthWETH/WETH pool — RestakingFacet selected, unstake expanded with aToken and debt addresses filled, max amount for full withdrawal: unstake function filled for aEthWETH/WETH pool

Token Addresses for unstake

Ethereum

Sonic

Plasma

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

  1. Go to the re-aUSDC contract on Sonicscan
  2. Click “Read Contract” > find maxWithdraw > enter your wallet address > click Query
  3. Copy the returned value — this is the maximum aSonUSDC you can withdraw
  4. Switch to the “Write Contract” tab > “Connect to Web3”
  5. Find and expand the withdraw function
  6. Fill in:
  1. Click Write and confirm
re-aUSDC contract on Sonicscan — withdraw function expanded with assets, receiver, and owner fields: withdraw re-aUSDC on Sonicscan After withdrawing, you will receive aSonUSDC. Then withdraw from Aave (app.aave.com) to get USDC.e.

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:
  1. Go to Diamond246 > “Diamond Proxy” > “Read”
  2. Call positions with your pairId + wallet address — note your debtShares
  3. Call pairs with the same pairId — note totalDebtShares and totalScaledDebt
Your debt ≈ (debtShares × totalScaledDebt) / totalDebtShares
Note: This gives you an approximate amount in the token’s smallest unit (e.g. 6 decimals for USDC, so 100000000 = 100 USDC). The actual debt accrues interest over time, so approve a bit more than this estimate (e.g. add 1%). The repay function 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.
  1. Go to the debt token contract on the block explorer (links below)
  2. Click “Write as Proxy” (for proxy tokens like USDC) or “Write Contract”
  3. Click “Connect to Web3”
  4. Find the approve function
  5. Fill in:
  1. Click Write and confirm
  2. (Optional) After repaying, you can revoke the approval by calling approve again with amount 0
Example: approving USDC on Etherscan — approve expanded with Diamond246 as spender and 100 USDC (100000000) as value: approve USDC for Diamond246 on Etherscan

Debt Token Contracts

Step 2: Repay on Diamond246

  1. Go to Diamond246 > “Diamond Proxy” > “Write”
  2. In the left sidebar, click “BorrowingFacet”
  3. Find and expand the repay function
  4. Fill in:
  1. Click Write and confirm
Example: repaying on the hyperUSDC/GHO pair — BorrowingFacet selected, repay expanded with GHO as debt (0x40d1...6c2f), hyperUSDC as collateral (0x7777...7777), amount=0 and share=max for full repay: repay function on BorrowingFacet for hyperUSDC/GHO pair

Collateral Token Addresses


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.
  1. Go to Diamond246 > “Diamond Proxy” > “Write”
  2. In the left sidebar, click “CollateralManagementFacet”
  3. Find and expand the withdrawCollateral function
  4. Fill in:
  1. Click Write and confirm
Example: withdrawing collateral from the hyperUSDC/GHO pair — CollateralManagementFacet selected, withdrawCollateral expanded with GHO as debt, hyperUSDC as collateral, exact collateral amount entered: withdrawCollateral on CollateralManagementFacet for hyperUSDC/GHO pair
Important: For amount, use the exact collateral value returned by the positions read call in step 2. Do NOT use max uint256 — it will revert.

Quick Reference: Full Exit Flow

Restakers (no borrow position)

  1. Unstake on Diamond246 (RestakingFacet) — receive aToken
  2. Withdraw on Aave UI — receive underlying token (USDC, WETH, etc.)

re-aUSDC holders (Sonic)

  1. Redeem re-aUSDC on Sonicscan — receive aSonUSDC
  2. Withdraw on Aave UI — receive USDC.e

Borrowers

  1. Approve debt token for Diamond246
  2. Repay on Diamond246 (BorrowingFacet) — clear all debt
  3. Withdraw Collateral on Diamond246 (CollateralManagementFacet) — receive collateral token

Borrowers + Restakers

  1. Approve > Repay > Withdraw Collateral (borrower exit)
  2. Unstake > Aave Withdraw (restaker exit)

Need Help?

Join our Telegram group: https://t.me/+m0QLO9DeQKZjZmQ1