Ventuals (HIP-3) VLP Vault
This document provides the necessary information to integrate the Ventuals (HIP-3) wVLP vault, powered by Midas, into your applications.
General Vault Information
Vault Name: Ventuals (HIP-3) VLP Vault
Vault Token Symbol: wVLP
Chain: hyperevm
Chain ID: 999
Vault Token (wVLP):
0xD66d69c288d9a6FD735d7bE8b2e389970fC4fD42
Decimals: 18
Insurance Contract (for Deposits):
0xc800f672EE8693BC0138E513038C84fe2D1B8a78
Redemption Contract (for Withdrawals):
0x462B95575cb2D56de9d1aAaAAb452279B058Aa06
Token Information
Accepted Tokens:
USDT0:
Address:
0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb
Decimals: 6
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) into the wVLP vault, you must interact with the Insurance Contract.
Steps:
Approve Spending:
The user must approve the Insurance Contract (
0xc800f672EE8693BC0138E513038C84fe2D1B8a78
) 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).
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 wVLP 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 wVLP, 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 (
0x462B95575cb2D56de9d1aAaAAb452279B058Aa06
) to spend their wVLP.Call the
approve(address spender, uint256 value)
function on the wVLP Vault Token contract (0xD66d69c288d9a6FD735d7bE8b2e389970fC4fD42
).spender
: The Redemption Contract address.value
: The amount of wVLP 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 wVLP 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 of wVLP 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