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

dnPUMP

This document provides the necessary information to integrate the dnPUMP vault, powered by Midas, into your applications.

General Vault Information

  • Vault Name: dnPUMP

  • Vault Token Symbol: dnPUMP

  • Chain: hyperevm

  • Chain ID: 999

  • Vault Token (dnPUMP): 0x8858A307a85982c2B3CB2AcE1720237f2f09c39B

  • Decimals: 18

  • Insurance Contract (for Deposits): 0xaF8FfEDF0e57eE9f6518340b9eb913fFa7dBc66b

  • Redemption Contract (for Withdrawals): 0x9c915C94066fF921264071aCB7D59DB6e0cBf0D7

Token Information

  • Accepted Tokens:

    • USDT0:

      • Address: 0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb

      • Decimals: 6

Actions

Depositing Tokens

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

Steps:

  1. Approve Spending:

    • The user must approve the Insurance Contract (0xaF8FfEDF0e57eE9f6518340b9eb913fFa7dBc66b) 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).

  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 dnPUMP 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 dnPUMP, 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 (0x9c915C94066fF921264071aCB7D59DB6e0cBf0D7) to spend their dnPUMP.

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

    • spender: The Redemption Contract address.

    • value: The amount of dnPUMP 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 dnPUMP 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 dnPUMP 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