For the complete documentation index, see llms.txt. This page is also available as Markdown.

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