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 specify a primary wallet that will be shown by default in the wallet selection interface, use the primaryWalletAppName
property in the TonConnectUIProvider configuration. Set it to the appName
of your preferred wallet from the walletsListConfiguration
. By default, it's set to "tonkeeper". Set it to null
to disable the primary wallet feature.
Here's an example configuration:
<TonConnectUIProvider
manifestUrl="https://ton-connect.github.io/demo-dapp-with-wallet/tonconnect-manifest.json"
uiPreferences={{ theme: THEME.DARK }}
primaryWalletAppName="tonkeeper" // Set to null to disable primary wallet
>
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.