Hyperbeat USDT

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

General Vault Information

  • Vault Name: Hyperbeat USDT

  • Vault Token Symbol: hbUSDT

  • Chain: hyperevm

  • Chain ID: 999

  • Vault Token (hbUSDT): 0x5e105266db42f78FA814322Bce7f388B4C2e61eb

  • Decimals: 18

  • Insurance Contract (for Deposits): 0xbE8A4f1a312b94A712F8E5367B02ae6E378E6F19

  • Redemption Contract (for Withdrawals): 0xC898a5cbDb81F260bd5306D9F9B9A893D0FdF042

Token Information

  • Accepted Tokens:

    • USDT0:

      • Address: 0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb

      • Decimals: 6

    • USDe:

      • Address: 0x5d3a1ff2b6bab83b63cd9ad0787074081a52ef34

      • Decimals: 18

    • USR:

      • Address: 0x0aD339d66BF4AeD5ce31c64Bc37B3244b6394A77

      • Decimals: 18

Actions

Depositing Tokens

To deposit tokens (e.g., USDT0, USDe, USR) into the hbUSDT vault, you must interact with the Insurance Contract.

Steps:

  1. Approve Spending:

    • The user must approve the Insurance Contract (0xbE8A4f1a312b94A712F8E5367B02ae6E378E6F19) to spend the chosen deposit token (e.g., USDT0).

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

      • spender: The Insurance Contract address.

      • value: The amount to approve, in the token's native decimals (e.g., 6 for USDT0, 18 for USDe).

  2. Perform Deposit:

    • Once approved, call the depositInstant function on the Insurance Contract.

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

      • tokenIn: The address of the token being deposited.

      • amountToken: IMPORTANT: The amount to deposit, expressed in 18 decimals, regardless of the input token's actual decimals.

        • For tokens with 18 decimals (like USDe), use the amount directly.

        • For tokens with fewer decimals (like USDT0 with 6), you must scale the amount. For example: amountIn18Decimals = amountIn6Decimals * 10**(18 - 6).

      • minReceiveAmount: The minimum amount of hbUSDT to receive. Can be set to 0 to accept any amount.

      • referrerId: A bytes32 referrer ID. Can be set to 0x0000000000000000000000000000000000000000000000000000000000000000. or enter your referrerId from our collaboration.

Withdrawing Tokens

To withdraw underlying assets (USDT0) in exchange for hbUSDT, you must interact with the Redemption Contract. There are two methods: Instant and Classic.

Step 1 (Required for both methods): Approve

  • Before withdrawing, the user must approve the Redemption Contract (0xC898a5cbDb81F260bd5306D9F9B9A893D0FdF042) to spend their hbUSDT.

  • Call the approve(address spender, uint256 value) function on the hbUSDT Vault Token contract (0x5e105266db42f78FA814322Bce7f388B4C2e61eb).

    • spender: The Redemption Contract address.

    • value: The amount of hbUSDT to approve (in 18 decimals).

Step 2 (Option A): Instant Redeem

  • For immediate withdrawal, subject to a 0.5% fee.

  • Call redeemInstant(address tokenOut, uint256 amountMTokenIn, uint256 minReceiveAmount) on the Redemption Contract.

    • tokenOut: Address of the token to receive (USDT0: 0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb).

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

    • minReceiveAmount: The minimum amount of the output token to receive. Can be set to 0.

Step 2 (Option B): Classic Redeem

  • For withdrawal processed within 48 hours with no fee.

  • Call redeemRequest(address tokenOut, uint256 amountMTokenIn) on the Redemption Contract.

    • tokenOut: Address of the token to receive (USDT0: 0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb).

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

Additional Information

  • Token Balance (BalanceOf):

    • To get a user's balance for any of the deposit tokens, call balanceOf(address account) on that token's contract.

    • To get a user's hbUSDT (vault shares) balance, call balanceOf(address account) on the hbUSDT vault contract.

  • Withdrawal Processing Period (Classic): Classic redemption requests will be processed within 48 hours. The assets are automatically sent to the user's wallet upon processing.

  • Checking Withdrawal Status (Classic): Unlike the August vaults, status for classic redemption requests is checked via an off-chain API provided by Midas, not a smart contract function. API Endpoint: GET https://api-prod.midas.app/api/data/requests/pending?address=<USER_ADDRESS>&networkId=999 Replace <USER_ADDRESS> with the user's 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