From zero to paying users, step by step

0 / 14 done
  1. 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 Bots
    9:41
    Mini EmpireCreate, launch and manage all your bots and apps in one place
    0My apps · 0 active0Total users0.00GRAM deposited0Global tasks
    My Bots My TON Global Broadcast Global Tasks Promote Affiliates
    AcademyLearn to grow your empire

    Six tiles. The one you want is the first.

  2. 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 Apps
    9:41
    My Bots
    Mini Apps Chat Bots

    Two apps inside the folder. Mini Apps is the purple one.

  3. 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 App
    9:41
    ‹Mini Apps

    Create and manage your Telegram mining mini apps. Your bot, your wallet, your economy.

    + New Mini App

    Nothing here yet.

    The button sits above the list, not inside it.

  4. 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 3

    If 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:41

    Just 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
  5. 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 Panel
    9:41
    FREE Gold RushAdmin Panel
    Economy Withdrawals Statistics Monetization Users Tasks Appearance Wallet
    System active
    🌐 English⌄

    Eight tiles. Wallet is the last one.

  6. 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 → Wallet
    9:41
    ‹Wallet

    Activate payments

    One quick step so your Mini App can receive and send your users’ payments in GRAM.

    Deposits from users arrive in this wallet, and withdrawals are paid from it — you stay in full control of the money.
    Set up nowLater

    This only appears while the wallet is not configured.

  7. 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 1
    9:41
    ‹Wallet

    Connect your wallet

    Get a free GRAM API key and paste it here.

    91b2571e80cdb59d968…
    NextCancel

    A shortcut to @tonapibot sits under the field.

  8. 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 2
    9:41
    ‹Wallet

    Connect 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
  9. 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 · Color

    A screenshot of the 24 words is a leak. Paper, offline, and never in a chat — not even to yourself.

    9:41

    Name

    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
  10. 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 → Wallet
    9:41
    GRAM+
    GRAM balance 0.00 ≈ $0.00
    ReceiveSend
    Recent activity
    WithdrawalsReview and pay your users’ requests

    Receive and Send are the two buttons under the balance.

  11. 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 → Receive

    Copy the address, never retype it. One wrong character sends the money to an address nobody controls, and nothing brings it back.

    9:41
    ‹Wallet

    Receive GRAM

    Mainnet only. Send GRAM to this address.

    UQAo…W3RD
    Copy address

    A QR code sits above the address on the real screen.

  12. 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 token

    Paying 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
    ‹Wallet

    Add token

    Pick a known token or paste any jetton address. Its symbol and decimals are read from the blockchain.

    GOLD ★USDTDOGSNOT
    EQ…
    Add token

    Your own tokens come first, starred.

  13. 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 settings

    Automatic 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
    ‹Withdrawals

    Withdrawal 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.
    0.05
    Save

    Two switches and the minimum, on the same screen.

  14. 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 → Send

    This sends real GRAM from your bot wallet. Double-check the address, because it cannot be undone.

    9:41
    ‹Wallet

    Where is it going?

    Paste the destination address. Check it character by character: once sent, no one can bring it back.

    UQ… / EQ…
    Continue

    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 →
The direct answer

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.

Open your walletFund it, add your token and let the queue pay on its own.Build your Mini App free ↗

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 doWhat the app doesWhat you must get right
Copy the address in ReceiveNothing, it is only showing itCopy it, never retype it
Send GRAM from your own walletReads the chain with its API keyMainnet, not testnet
Wait for confirmationThe balance updates on its ownGive it a few blocks
Add a jetton with the plusReads symbol and decimals on-chainPick 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.

  1. Fund the wallet first

    A queue with nothing behind it fails at the last step, after the user already believes they were paid.

  2. Keep GRAM for gas

    Even when paying in your own jetton, every transfer costs a little GRAM.

  3. Set a minimum above gas

    Below it you spend more moving the money than the money is worth.

  4. Send one payout by hand

    It proves the funded wallet, the working key and the real transfer before users depend on any of them.

  5. 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.