Skip to content
🎉 Welcome to the new Aptos Docs! Click here to submit feedback!
Build
Templates
Telegram Clicker Game Mini App Template

Create Aptos Dapp Telegram Clicker Game Mini App Template

This template provides a ready to use clicker game dapp that can be run as a Telegram Mini App.

We provide 2 signing experience for the Telegram Mini App, you can choose one of them during the setup:

  • explicit signing - the user needs to sign each transaction, this is powered by Aptos Wallet Adapter similar to other dapps
  • seamless signing - the user doesn’t need to sign each transaction because the approval is done in the background, this is powered by Mizu Wallet SDK Core

Getting started

Publish the contract

Run the below command to publish the contract on-chain:

npm run move:publish

This command will:

  1. Publish the contract to chain.
  2. Setting the VITE_MODULE_ADDRESS in the .env file to set the contract object address.

Create a Telegram bot

Start a chat with BotFather, use the /newbot command to create a new bot. You can learn more about the process at Telegram Docs.

(Optional) Obtain the app ID from Mizu wallet

If you choose the seamless signing experience, you are using @mizuwallet-sdk/core instead of Aptos Wallet Adapter. You need to obtain a Mizu App ID from the Mizu team by filling up their form. Once you have the App ID, set it in the .env file as VITE_MIZU_WALLET_APP_ID.

You can learn more about using it in the Mizu doc.

Host the frontend

create-aptos-dapp provides an npm command to easily deploy the static site to Vercel.

At the root of the folder, simply run

Terminal
npm run deploy

Then, follow the prompts. Please refer to Vercel docs to learn more about the Vercel CLI

If you are looking for different services to deploy the static site to, create-aptos-dapp utilizes Vite as the development tool, so you can follow the Vite deployment guide. In a nutshell, you would need to:

  1. Run npm run build to build a static site
  2. Run npm run preview to see how your dapp would look like on a live server
  3. Next, all you need is to deploy your static site to a live server, there are some options for you to choose from and can follow this guide on how to use each

Create a Telegram mini app

Use the /newapp command to create a new mini app and link the mini app with the bot you just created. When BotFather asks for the mini app’s URL, provide the URL of the frontend you deployed in the previous step. You can learn more about the process at Telegram Docs.

Set the menu button of the bot to open the mini app

Use the /mybots command to find your bot, choose bot settings -> menu button -> configure menu button, provide the mini app’s name and URL. Now you can access the mini app from your bot’s menu. You can learn more about the process at Telegram Docs.

Ready for Mainnet

If you started your dapp on testnet, and you are happy with your testing, you will want to get the dapp on mainnet.

To publish the smart contract on mainnet, we need to change some configuration.

  1. Change the VITE_APP_NETWORK value to mainnet in the .env file
  2. If you already have an account you would like to use to publish the contract under, you can pass its private key when the prompt asks for that.
  3. If you are generating a new account, you need to transfer this account some APT on Aptos Mainnet since the tool can’t fund the account when it is against Mainnet.
  4. Check: open .aptos/config.yaml file and see that you have a profile under the {PROJECT_NAME}-mainnet name (where PROJECT_NAME is specified in your .env file). In addition, open the .env file and check the VITE_MODULE_ADDRESS value is the same as the new profile’s account account address.
  5. Finally, run npm run move:publish to publish your move module on Aptos mainnet.