Retail Crypto Deposits FAQ

Can our platform accept retail deposits?

Yes! Platforms can now create digital asset addresses for retail end users for all UTXO, Tag, and Ethereum based tokens.

How can I start creating retail deposit addresses?

This feature is not enabled by default. If your organization is interested in using this feature, please get in touch with a Zero Hash representative.

How do you support Ethereum based token retail deposits?

Zero Hash has implemented forwarding smart contracts to accept retail deposits. This means your retail customer has a single dedicated address to deposit all Ethereum based tokens to it. This wallet address has to first go through a smart contract wallet that is managed by Zero Hash.

Are there any deposit address creation fees?

Most deposit addresses can be created for free. For UTXO and Tag based assets, there are no deposit address creation fees.

Why is Zero Hash using forwarding smart contracts?

Forwarding smart contracts are used by Zero Hash to increase our Ethereum scaling capabilities and to reduce a platform's expected operational cost.

Why is my deposit address the same for all ETH and ERC-20 asset?

Retail customers will be provided with one forwarding smart contract address to support all their ETH and ERC-20 deposits. All ETH and ERC-20 assets go to the same address.

What happens if I send a different ERC-20 asset to my ETH address?

If you send a Zero Hash supported ERC-20 asset to your forwarding smart contract it will be credited as normal. Only Zero Hash supported ETH and ERC-20 assets should be sent to forwarding contract addresses.

API Flow


For an end user looking to deposit assets with a platform, first the platform will need to create the address using POST /deposits/digital_asset_addresses. Doing this will return an address that the platform can relay to the end user.


  1. Platform Request: Platform A requests a unique wallet address for Customer B.
    • Sample Request Body:
          "participant_code": "CUST01",
          "asset": "UNI"
    • Sample Response:
        "message": {
          "created_at": 1647050013,
          "address": "0x7f41A26C0CB9D5a1e57BE9cF10F8354b77CD8ab3",
          "participant_code": "CUST01",
          "asset": "UNI"
  2. Customer Deposit: Customer B deposits UNI to the generated address.
  3. Platform Check: Platform A checks recent deposit activity using GET /deposits and include_customer_deposits=true.
  4. Transaction Confirmation: Once the transaction is confirmed, Zero Hash represents the transaction in an account for Customer B.
  5. Account Balance: Customer B can see their total account balance using GET /accounts.