Deposit Wallets

A unique crypto deposit address for every user

Generate a dedicated deposit wallet for each customer with one API call. Deposits in USDT, USDC, ETH, BNB and POL on Ethereum, BNB Chain and Polygon are detected, added to your balance in dollars and reported to your server with your own user id.

  • One API call creates a permanent address for a user
  • USDT, USDC, ETH, BNB and POL on three networks
  • Every deposit webhook carries your own user id
Deposit wallets
Wallets
One address per customer
Create wallet
Ethereum
0x7a3f…c91e
USDT
Polygon
0x91bd…04a7
USDC
BNB Chain
0x2c58…e3f0
USDT
Latest deposits
to 0x7a3f…c91e
$250.00 USDT
to 0x91bd…04a7
$1,200.00 USDC

Deposit wallets as a service

Any product that holds customer balances has to know who sent each payment: exchanges and trading platforms, games and casinos, marketplaces, wallets, top-up services. Sharing one address and asking users for a memo or a transaction hash leads to lost and mismatched payments. The standard answer is a separate deposit address for every user, so whatever arrives there belongs to that user.

LirChain creates and watches those addresses for you. You send a network, an asset and your user id, and get back a permanent address. Every transfer to it becomes a deposit, is added to your LirChain balance and is sent to your webhook. There is no wallet infrastructure, key storage, gas management or fund collection for you to build.

Addresses do not expire. A user can pay into the same one again and again, which suits account top-ups and recurring deposits, and you can show it in your own interface or on a hosted deposit page.

What Deposit Wallets gives you

One API call per address

Create a deposit wallet whenever a new user, account or order needs one. The address is returned in the same response.

Your user id on every deposit

Pass your own id when you create the address and every deposit webhook carries it. No guessing which transfer belongs to whom.

Stablecoins and native coins

Accept USDT and USDC one to one with the dollar. ETH, BNB and POL deposits are exchanged into dollars automatically when they arrive.

One balance in dollars

Deposits from every network and asset add up to a single balance. Withdraw it as USDT or USDC on the network you choose, or use it for payouts.

Hosted deposit page

Every wallet has a ready-made page with its address, a QR code and the latest deposits, so you can skip building the deposit screen.

Deposit webhooks with retries

Your server is told about each confirmed deposit with the amount, the fee and what you received, and told again until it answers.

How it works

From sign-up to the first call in a few minutes.

  1. 1

    Create a Deposit Wallets project

    Sign up, open the Deposit Wallets project in the dashboard and copy its API key.

  2. 2

    Create an address for each user

    Send the network, the asset and your own id for the user. You get back a permanent address that belongs to that user alone.

  3. 3

    Show the address to the user

    Display it in your app, or send the user to the hosted deposit page at lirchain.com/deposit/<wallet id>.

  4. 4

    Credit the user when the webhook arrives

    Every confirmed deposit is added to your balance and posted to your webhook URL with your user id, the amount and the fee.

Create a deposit address
curl https://api.lirchain.com/merchant/deposit-wallet/create \
  -H "x-api-key: YOUR_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "network": "polygon",
    "asset": "USDC",
    "external_id": "customer-7731"
  }'
Response
{
  "id": "3f4911a7-2c26-4f9c-a97c-80b25b6feb8c",
  "project_id": "3d6b1130-da92-4ddf-bad2-93f898993c39",
  "merchant_id": "7c551c17-1a48-4e2b-b3ac-7ad389a753c6",
  "network": "polygon",
  "address": "0x748aaf6d861698dc3c4ee2fca3c27ba13edc7891",
  "asset": "USDC",
  "external_id": "customer-7731"
}
Webhook for a deposit
{
  "type": "deposit-wallet",
  "deposit": {
    "id": "41b0d4fe-8b49-4623-bd8f-6f04586b06c9",
    "wallet_id": "3f4911a7-2c26-4f9c-a97c-80b25b6feb8c",
    "external_id": "customer-7731",
    "project_id": "3d6b1130-da92-4ddf-bad2-93f898993c39",
    "network": "polygon",
    "asset": "USDC",
    "contract": "0x3c499c542cef5e3811e1192ce70d8cc03d5c3359",
    "amount": "250.5",
    "pay_amount": "250.5",
    "fee": "1.2525",
    "receive_amount": "249.2475",
    "created_ms": 1791503990112
  }
}

Every endpoint and field is in the Deposit Wallets API reference.

Networks and assets for deposit addresses

A deposit wallet accepts one asset on one network. Create as many per user as you need, for example one for USDT on BNB Chain and one for USDC on Polygon.

NetworkCoins and tokens
Ethereum
USDTUSDCETH
BNB Chain
USDTUSDCBNB
Polygon
USDTUSDCPOL

What teams use Deposit Wallets for

Exchanges and trading platforms

Give every trader a personal deposit address and credit their account automatically when funds are confirmed.

Games, casinos and betting

Let players top up in USDT or USDC and see their balance update without manual checks by support.

Marketplaces and platforms

Keep buyers' and sellers' funds apart by giving each account its own address.

Wallets and fintech apps

Add crypto top-ups to an app without building address generation, monitoring and fund collection.

SaaS and prepaid balances

Let customers refill a prepaid balance in stablecoins whenever they like, to the same address every time.

Bots and communities

Create an address per Telegram or Discord user and unlock access the moment their deposit lands.

Deposit Wallets pricing

Creating wallets is free. A deposit costs the percentage of your plan, at least $0.10.

PlanFreeStarterBusinessEnterprise
Price per monthFree$19.99$49.99$249.99
Deposit wallets151,00020,0001,000,000
Fee per deposit1%0.5%0.375%0.25%

Every plan includes all four products. Compare the plans

Deposit Wallets: questions and answers

What is a crypto deposit address per user?
It is a blockchain address created for one of your users and nobody else. Because only that user is given the address, every transfer that arrives there can be credited to them automatically, with no memo, reference or manual matching.
Which coins and networks do deposit wallets support?
USDT and USDC on Ethereum (ERC-20), BNB Chain (BEP-20) and Polygon, and each network's own coin: ETH, BNB and POL.
How do I know which user made a deposit?
Send your own user id as external_id when you create the wallet. It comes back with the wallet, with each of its deposits in the API, and in every deposit webhook.
What happens when a user deposits ETH, BNB or POL?
The coins are exchanged into dollars on that network's main exchange, usually within a few minutes, and what the exchange paid is added to your balance. You hold dollars, so the coin's price moving afterwards does not affect you.
Can a user deposit to the same address more than once?
Yes. A deposit wallet is permanent and every transfer to it is a new deposit, so it works for repeated top-ups.
How much does a deposit address API cost?
Creating addresses is free. Each deposit costs the percentage of your plan (1% on Free, 0.5% on Starter, 0.375% on Business, 0.25% on Enterprise), at least $0.10. The Free plan includes 15 deposit wallets and Starter includes 1,000 for $19.99 a month.
How do I withdraw the money my users deposited?
From the dashboard, as USDT or USDC on Ethereum, BNB Chain or Polygon, to any address you choose. You can also send it straight to your users with the Payouts API.

Works with the rest of LirChain

One account, one balance and one API for all four products.

Start with Deposit Wallets for free

New accounts start on the Free plan, with every product included and no card needed.