From zero to paying users, step by step
0 / 14 done-
Start on the home screen
Mini Empire opens on a grid of six tiles. The wallet belongs to an app, so the app comes first — and apps live in My Bots, the first tile.
Where: Mini Empire → My Bots9:41Mini EmpireCreate, launch and manage all your bots and apps in one place0My apps · 0 active0Total users0.00GRAM deposited0Global tasksMy Bots My TON Global Broadcast Global Tasks Promote AffiliatesAcademyLearn to grow your empireSix tiles. The one you want is the first.
-
Inside the folder, tap Mini Apps
The folder opens over the home screen and holds two things: Mini Apps and Chat Bots. An app that takes deposits and pays users is a mini app — it has screens your users open, not just a keyboard in a chat.
Where: My Bots → Mini Apps9:41My BotsMini Apps Chat BotsTwo apps inside the folder. Mini Apps is the purple one.
-
Create the Mini App
The list is empty the first time, with one button above it. Each account gets three free product slots, shared between mini apps and bots.
Where: Mini Apps → New Mini App9:41‹Mini AppsCreate and manage your Telegram mining mini apps. Your bot, your wallet, your economy.
+ New Mini AppNothing here yet.
The button sits above the list, not inside it.
-
Give it a bot, a key and a wallet
The wizard asks three things, one per screen: the bot token from @BotFather, a free toncenter API key so the app can read the blockchain, and 24 words for the wallet it will pay from. That wallet must be created only for this app — not your personal one.
Where: Wizard → steps 1, 2 and 3If you skip the wallet here, the app is still created — you just set it up later from the Wallet tile, which is the next step.
9:41Just your bot token to start — everything else is inherited from the template.
word1 word2 word3 …⚠️ Use a DEDICATED wallet created only for this bot. Never your personal wallet. User deposits arrive here and withdrawals are paid from here.
Validate & Create -
Open the new app and find Wallet
The app is created and it has its own admin panel: eight tiles, one per area. Wallet is the last one, and it is the cash register — user deposits land there and withdrawals are paid from there. It is not your personal wallet.
Where: Mini Apps → your app → Admin Panel9:41FREE Gold RushAdmin PanelEconomy Withdrawals Statistics Monetization Users Tasks Appearance Wallet🌐 English⌄Eight tiles. Wallet is the last one.
-
Open Wallet: if it is not set up, it says so
In the app panel, Wallet is the last of the eight tiles. If the app has no wallet yet, it does not show you a balance: it shows Activate payments and explains why it needs one. Tap Set up now.
Where: Admin Panel → Wallet9:41‹WalletActivate payments
One quick step so your Mini App can receive and send your users’ payments in GRAM.
Set up nowLaterDeposits from users arrive in this wallet, and withdrawals are paid from it — you stay in full control of the money.This only appears while the wallet is not configured.
-
Paste the free API key
First screen of the setup: the GRAM API key. It is what lets the app read the blockchain to see deposits and pay withdrawals. Open @tonapibot, ask for one, paste it. A key that was just created can be saved before toncenter finishes activating it — the app accepts it as pending rather than rejecting it.
Where: Connect your wallet → step 19:41‹WalletConnect your wallet
Get a free GRAM API key and paste it here.
NextCancel91b2571e80cdb59d968…A shortcut to @tonapibot sits under the field.
-
Create a new wallet, or import one you have
Two paths, and neither is preselected. Create a new wallet generates one just for this bot and walks you through naming it. I already have a wallet imports an existing one with its 24 words. For a new app, create a new one: reusing a wallet puts two products behind the same seed phrase.
Where: Connect your wallet → step 29:41‹WalletConnect your wallet
Create a new walletWe generate one just for this bot. Give it a name and you are done. › I already have a walletImport it with its 24-word seed phrase. › Back -
Name it, then write down the 24 words
Three quick screens — name, emoji, colour — so you can tell this wallet apart from your others at a glance. Then it shows the 24 words once. Write them on paper before continuing: they ARE the wallet, and the app will not let you past without confirming you did.
Where: Connect your wallet → Name · Emoji · ColorA screenshot of the 24 words is a leak. Paper, offline, and never in a chat — not even to yourself.
9:41Name
Rewards wallet⚠️ These 24 words ARE the wallet. Write them down and keep them offline: whoever has them can move the funds, and nobody can restore them for you if you lose them.
Next -
Now the wallet screen is real
With the wallet set up, Wallet opens on the balance, with Receive and Send under it, recent activity below and a shortcut to Withdrawals at the bottom. A new wallet shows 0.00 — that is the starting point, not a problem. The app pays from here and nowhere else.
Where: Admin Panel → Wallet9:41GRAM+GRAM balance 0.00 ≈ $0.00ReceiveSendRecent activityWithdrawalsReview and pay your users’ requestsReceive and Send are the two buttons under the balance.
-
Tap Receive and send GRAM to that address
Receive shows a QR and the wallet address with a button to copy it. Send GRAM there from wherever you hold it: Tonkeeper, an exchange, another wallet. Mainnet only. The balance updates on its own once the transaction confirms — there is no deposit to register by hand.
Where: Wallet → ReceiveCopy the address, never retype it. One wrong character sends the money to an address nobody controls, and nothing brings it back.
9:41‹WalletReceive GRAM
Mainnet only. Send GRAM to this address.
Copy addressUQAo…W3RDA QR code sits above the address on the real screen.
-
Add your own token with the +
If your app pays in a jetton you minted rather than in GRAM, add it here. The + at the end of the coin tabs opens Add token, and your own minted tokens appear first in the suggestion row, marked with a star. Its symbol and decimals are read from the blockchain.
Where: Wallet → + → Add tokenPaying in a token also costs a little GRAM as gas on every withdrawal. Keep some GRAM in this wallet even when you pay in your own coin.
9:41‹WalletAdd token
Pick a known token or paste any jetton address. Its symbol and decimals are read from the blockchain.
GOLD ★USDTDOGSNOTAdd tokenEQ…Your own tokens come first, starred.
-
Turn on automatic payments
This is the switch your users feel. In Withdrawals open the settings: with Automatic payments on, every request that passes the anti-fraud rules is paid without you doing anything. Turn it off and EVERY withdrawal is held for manual review and you pay them by hand. It ships on. Below it sits Review notifications, off by default, which sends you a Telegram alert with the anti-fraud signals and Approve / Deny buttons for anything held.
Where: Admin Panel → Withdrawals → Withdrawal settingsAutomatic does not mean unguarded: the anti-fraud rules still run, and a request that trips them waits for you. What it removes is approving the ordinary ones one by one.
9:41‹WithdrawalsWithdrawal settings
Automatic payments & minimum amount
Automatic payments On: withdrawals that pass the anti-fraud rules are paid automatically. Off: EVERY withdrawal is held for manual review and you pay them by hand. Review notifications Get a Telegram alert with the anti-fraud signals and Approve / Deny buttons for each withdrawal held for review. Off by default.Save0.05Two switches and the minimum, on the same screen.
-
Send one payout yourself to close the loop
Before trusting the queue with users, move a small amount out by hand. Send asks for the destination, then the amount, then shows a last review screen: three steps, on purpose. When it lands you have proved the whole path at once — funded wallet, working key, real transfer.
Where: Wallet → SendThis sends real GRAM from your bot wallet. Double-check the address, because it cannot be undone.
9:41‹WalletWhere is it going?
Paste the destination address. Check it character by character: once sent, no one can bring it back.
ContinueUQ… / EQ…Then the amount, then a final review screen.
The wallet is funded and the queue pays on its own
Your app can now take deposits and pay users without you approving each request. What decides whether it keeps working is not the setup: it is keeping the balance ahead of what you promised to pay.
Next guide →A Mini App pays from its own wallet: 24 words that only you hold, funded by you. Fund it by opening Wallet, tapping Receive and sending GRAM to the address it shows. Add any jetton — including a token you minted — with the + at the end of the coin tabs. Withdrawals are paid automatically by default: requests that pass the anti-fraud rules go out without you touching anything, and turning the switch off sends every request to manual review instead.
The wallet is yours, and that cuts both ways
The wallet behind a Mini App is generated from 24 words that only you hold. Mini Empire signs transactions with them on your behalf, but cannot move funds on its own, cannot recover the phrase, and keeps no second copy. That is what makes the money yours rather than a balance on somebody else ledger.
It also means the responsibility is yours. Nobody can reverse a transfer to a wrong address, unfreeze a wallet whose words leaked, or restore a phrase that was written down badly. Write the 24 words on paper before you fund anything, and treat a screenshot of them as a leak.
Why deposits appear without you doing anything
The app reads the blockchain with its own API key, so a transfer to the wallet address shows up in the balance once it confirms. There is no button to press and no deposit to register by hand: the chain is the source of truth and the panel is simply reading it.
That is also why the address matters more than anything else on the screen. Mainnet only, copied rather than retyped, and the same address every time. If a deposit does not appear, the first thing to check is whether it went to that exact address on the right network, not whether the app noticed.
| What you do | What the app does | What you must get right |
|---|---|---|
| Copy the address in Receive | Nothing, it is only showing it | Copy it, never retype it |
| Send GRAM from your own wallet | Reads the chain with its API key | Mainnet, not testnet |
| Wait for confirmation | The balance updates on its own | Give it a few blocks |
| Add a jetton with the plus | Reads symbol and decimals on-chain | Pick your token, do not paste |
What automatic payments actually automate
With the switch on, a withdrawal that passes the anti-fraud rules is paid without your involvement. What is automated is the approval of ordinary requests, not the checks themselves. Requests that trip a rule still wait for a person, which is the point: the queue handles the volume and you handle the exceptions.
Turning it off does not add safety so much as add work, because every request then waits for you. That is the right setting while you are testing or while something looks wrong, and the wrong one as a permanent policy: a queue nobody clears becomes a support problem long before it becomes a fraud problem.
- Fund the wallet first
A queue with nothing behind it fails at the last step, after the user already believes they were paid.
- Keep GRAM for gas
Even when paying in your own jetton, every transfer costs a little GRAM.
- Set a minimum above gas
Below it you spend more moving the money than the money is worth.
- Send one payout by hand
It proves the funded wallet, the working key and the real transfer before users depend on any of them.
- Watch the balance, not the switch
Automatic payments keep working exactly as long as there is something to pay with.
The mistakes that cost real money
- Reusing a personal wallet, or the wallet that signs your token, as the app wallet: one leaked phrase then loses everything at once.
- Sending the first deposit on testnet to a mainnet address, which is an unrecoverable transfer to an address nobody controls.
- Retyping the address instead of copying it. One character is enough.
- Paying in a jetton with no GRAM left for gas, so payouts fail while the token balance still looks fine.
- Promising rewards the wallet cannot cover, which turns a product problem into a trust problem the moment the first withdrawal fails.
Common questions
Who holds the keys to the Mini App wallet?
You do. It is generated from 24 words that only you have. Mini Empire signs with them on your behalf but cannot move funds independently, and cannot recover the phrase if you lose it.
How do I fund the wallet?
Open Wallet, tap Receive, copy the address it shows and send GRAM there from any TON wallet. It is mainnet only, and the balance updates on its own once the transaction confirms.
Do I have to register deposits by hand?
No. The app reads the blockchain with its own API key, so a confirmed transfer to the wallet address appears in the balance without any action from you.
Can the app pay in a token I minted?
Yes. Add it with the plus at the end of the coin tabs; your own minted tokens appear first in the suggestions, starred. Keep some GRAM in the wallet anyway, because every jetton transfer costs gas.
Are withdrawals paid automatically?
By default yes: requests that pass the anti-fraud rules go out without your approval. Turning the switch off holds every request for manual review instead.
What happens if the wallet runs out?
Payouts fail at the last step, after the user already asked. Keep the balance ahead of what you have promised, because the switch does not create funds.
Sources and further reading
Technical and product claims were checked against these primary sources.