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
Useful Links
Vault Token on Explorer: View on hyperscan
Insurance Contract on Explorer: View on hyperscan
Redemption Contract on Explorer: View on hyperscan
Vault Logo: Brand kit
Actions
Depositing Tokens
To deposit tokens (e.g., USDT0, USDe, USR) into the hbUSDT vault, you must interact with the Insurance Contract.
Steps:
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).
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 to0
to accept any amount.referrerId
: Abytes32
referrer ID. Can be set to0x0000000000000000000000000000000000000000000000000000000000000000
. 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 ofhbUSDT
to withdraw, in 18 decimals.minReceiveAmount
: The minimum amount of the output token to receive. Can be set to0
.
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 ofhbUSDT
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 aredemptions
array. Each object in this array represents a pending withdrawal request and includes details like the amount, creation date, and status (pending
,ready
, orexpired
).
Last updated