This Demo dApp showcases the integration with @tonconnect/ui-react. Experience it live at Demo dApp with Wallet.
To understand more about Ton Connect and how it enables blockchain functionalities in your applications, refer to the following resources:
- Ton Connect Documentation: https://docs.ton.org/develop/dapps/ton-connect/
- Ton Connect SDK and UI Library on GitHub: https://github.com/ton-connect/sdk/tree/main/packages/ui
Install the necessary packages for this project:
npm install
Choose either ngrok or localtunnel to expose your local server to the internet for testing in Telegram.
npm install -g ngrok
ngrok Documentation: https://ngrok.com/docs
npm install -g localtunnel
LocalTunnel Documentation: https://localtunnel.github.io/www/
- Open @BotFather in Telegram.
- Send the
/newbot
command to create a new bot. - Follow the prompts to set up your bot, providing all necessary information.
- After the bot is created, send the
/newapp
command to BotFather. - Select your bot from the list.
- Provide all the required information for your Mini App.
To return to the application after interacting with the wallet, you must specify a twaReturnUrl
in src/App.tsx
.
Here's a concise guide:
- twaReturnUrl: This is the return URL used by Telegram Web Apps. Set it to redirect users back to your application after wallet interaction. Example:
'https://t.me/WebAppWalletBot/myapp'
.
Here is a sample configuration for specifying a return URL:
<TonConnectUIProvider
manifestUrl="https://ton-connect.github.io/demo-dapp-with-wallet/tonconnect-manifest.json"
uiPreferences={{ theme: THEME.DARK }}
actionsConfiguration={{
twaReturnUrl: 'https://t.me/WebAppWalletBot/myapp'
}}
></TonConnectUIProvider>
To integrate a custom wallet into your application, adjust the walletsListConfiguration
in src/App.tsx
. Include your wallet details in includeWallets
and specify universalLink
.
Here's a concise guide:
- universalLink: This URL is used to open the wallet directly from a web link. It should link to your wallet's bot or app. Example:
'https://t.me/wallet/start'
.
Here is a sample configuration for adding a custom wallet:
<TonConnectUIProvider
manifestUrl="https://ton-connect.github.io/demo-dapp-with-wallet/tonconnect-manifest.json"
uiPreferences={{ theme: THEME.DARK }}
walletsListConfiguration={{
includeWallets: [
{
appName: "telegram-wallet",
name: "Wallet",
imageUrl: "https://wallet.tg/images/logo-288.png",
aboutUrl: "https://wallet.tg/",
universalLink: "https://t.me/wallet/start",
bridgeUrl: "https://bridge.tonapi.io/bridge",
platforms: ["ios", "android", "macos", "windows", "linux"]
}
]
}}
actionsConfiguration={{
twaReturnUrl: 'https://t.me/WebAppWalletBot/myapp'
}}
></TonConnectUIProvider>
To start the application, run:
npm dev
The application will be accessible at http://localhost:5173.
ngrok http 5173
lt --port 5173
After setting up ngrok or localtunnel, update your Telegram bot's configuration with the provided URL to ensure the bot points to your local development environment.
- Open @BotFather in Telegram.
- Send the
/mybots
command and select your bot. - Choose "Bot Settings" then "Menu Button" and finally "Configure menu button".
- Enter the ngrok or localtunnel URL as the new destination.
- Open @BotFather in Telegram.
- Send the
/myapps
command and select your Mini App. - Choose "Edit Web App URL".
- Enter the ngrok or localtunnel URL as the new destination.