Hyperbeat USDC

This document provides the necessary information to integrate the Hyperbeat USDC (hbUSDC) vault, powered by Midas, into your applications.

General Vault Information

  • Vault Name: Hyperbeat USDC

  • Vault Token Symbol: hbUSDC

  • Chain: hyperevm

  • Chain ID: 999

  • Vault Token (hbUSDC): 0x057ced81348D57Aad579A672d521d7b4396E8a61

  • Decimals: 18

  • Custom Feed: 0xc82CAd78983436BddfcAf0F21316207D87b87462

  • Data Feed: 0xb013A5956f8b838B7E668DFbdf1efA978Ccc7a23

  • Insurance Contract (for Deposits): 0xd202CF41a607627cd1A31f650D13599b588eBd1c

  • Redemption Contract (for Withdrawals): 0xBb820D0c85C0B5D1B0dC8C6D3541fbb1AB4C7a60

Token Information

Accepted Tokens:

  • USDC:

    • Address: 0xb88339CB7199b77E23DB6E890353E22632Ba630f

    • Decimals: 6

Actions

Depositing Tokens

To deposit tokens (e.g., USDC) into the hbUSDC vault, you must interact with the Insurance Contract.

Steps:

  1. Approve Spending

    • Approve the Insurance Contract (0xd202CF41a607627cd1A31f650D13599b588eBd1c) to spend the deposit token (e.g., USDC).

    • Call approve(address spender, uint256 value) on the deposit token contract.

    • Parameters:

      • spender: Insurance Contract address.

      • value: Amount to approve, in the token’s native decimals (e.g., 6 for USDC).

  2. Perform Deposit

    • Once approved, call depositInstant on the Insurance Contract.

    • depositInstant(address tokenIn, uint256 amountToken, uint256 minReceiveAmount, bytes32 referrerId)

    • tokenIn: Address of the token being deposited.

    • amountToken: Expressed in 18 decimals, regardless of the input token’s decimals.

      • For USDC (6 decimals): amountIn18Decimals = amountIn6Decimals * 10**12.

    • minReceiveAmount: Minimum hbUSDC to receive. Can be 0.

    • referrerId: Bytes32 referrer ID. Use 0x0...0 if none.


Withdrawing Tokens

Withdrawals are done through the Redemption Contract (0xBb820D0c85C0B5D1B0dC8C6D3541fbb1AB4C7a60). Two methods exist: Instant and Classic.

Step 1 (Required for both methods): Approve

  • Approve the Redemption Contract to spend your hbUSDC.

  • Call approve(address spender, uint256 value) on the hbUSDC Vault Token contract (0x057ced81348D57Aad579A672d521d7b4396E8a61).

  • spender: Redemption Contract.

  • value: Amount in 18 decimals.

Step 2 (Option A): Instant Redeem

  • Immediate withdrawal, subject to a 0.5% fee.

  • Call redeemInstant(address tokenOut, uint256 amountMTokenIn, uint256 minReceiveAmount)

    • tokenOut: Address of the token to receive (e.g., USDC).

    • amountMTokenIn: Amount of hbUSDC to withdraw, in 18 decimals.

    • minReceiveAmount: Minimum amount to receive. Can be set to 0.

Step 2 (Option B): Classic Redeem

  • Withdrawals processed within 48 hours, no fee.

  • Call: redeemRequest(address tokenOut, uint256 amountMTokenIn)

    • tokenOut: Address of the token to receive (e.g., USDC).

    • amountMTokenIn: Amount of hbUSDC to withdraw, in 18 decimals.

Additional Information

  • Token Balance (balanceOf):

    • For deposit tokens, call balanceOf(address) on that token’s contract.

    • For hbUSDC balance, call balanceOf(address) on the hbUSDC vault token.

  • Withdrawal Processing (Classic):

    • Classic withdrawals are processed in ~48 hours.

    • Assets are automatically sent upon processing.

  • Checking Withdrawal Status (Classic):

    • Off-chain API via Midas (same format as hbUSDT).

    • Endpoint: GET https://api-prod.midas.app/api/data/requests/pending?address=<USER_ADDRESS>&networkId=999

    • Replace <USER_ADDRESS> with the wallet address.

    • The API will return a JSON object containing a redemptions array. Each object in this array represents a pending withdrawal request and includes details like the amount, creation date, and status (pending, ready, or expired).

Last updated