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 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
Create a Deposit Wallets project
Sign up, open the Deposit Wallets project in the dashboard and copy its API key.
- 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
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
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.
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"
}'{
"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"
}{
"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.
| Network | Coins 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.
| Plan | Free | Starter | Business | Enterprise |
|---|---|---|---|---|
| Price per month | Free | $19.99 | $49.99 | $249.99 |
| Deposit wallets | 15 | 1,000 | 20,000 | 1,000,000 |
| Fee per deposit | 1% | 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.