Quickstart
Get started with TAC development in minutes, building hybrid dApps that connect TON and EVM ecosystems
Get up and running with TAC development quickly by building your first hybrid dApp. This guide will take you from zero to a working application that connects TON wallets with EVM smart contracts in just a few minutes.
Install create-tac-app
The fastest way to bootstrap a TAC project is using our CLI tool:
This creates a new directory with a fully configured TAC project including:
- Smart contracts with proxy implementation
- Frontend with TAC SDK integration
- TON wallet connection setup
- Cross-chain messaging examples
Configure your environment
Make sure you have the required tools and accounts:
- Node.js v18.0.0 or higher
- Blockchain Accounts:
- Ethereum wallet with testnet TAC tokens for deployment
- TON wallet for testing (Tonkeeper or TON Space recommended)
- Get Testnet Tokens:
- TAC tokens: TAC Testnet Faucet
Deploy smart contracts
Navigate to the contracts directory and deploy to TAC testnet:
Take note of the deployed addresses:
- SimpleMessage contract address
- MessageProxy contract address
These will be displayed in your console after successful deployment.
Update frontend configuration
Open lib/contract_addresses.ts
and update with your deployed contract addresses:
This connects your frontend to the smart contracts you just deployed.
Start the development server
Return to the project root and start the Next.js development server:
Your TAC application is now running at http://localhost:3000.
You should see a clean interface with TON Connect integration and example messaging functionality.
Connect your TON wallet
Open your application in the browser and:
- Click the “Connect Wallet” button
- Choose your TON wallet (Tonkeeper, TON Space, etc.)
- Approve the connection in your wallet
- Verify your wallet address appears in the interface
The starter app includes a messaging example that demonstrates cross-chain communication from TON to your EVM smart contracts.
Test cross-chain functionality
Try the example functionality:
- Send a Message: Use the message form to send data from TON to your EVM contract
- Track Status: Watch the transaction progress through cross-chain stages
- View Results: See the message stored on the EVM side
This demonstrates the complete flow of hybrid dApp interaction.
Build your dApp
Now start customizing for your use case:
Smart Contracts (contracts/
directory):
- Modify
SimpleMessage.sol
for your business logic - Update
MessageProxy.sol
for custom cross-chain handling - Add new contracts as needed
Frontend (pages/
and components/
directories):
- Customize the UI components
- Add new pages and functionality
- Integrate additional TAC SDK features
Cross-Chain Features:
- Asset bridging between TON and EVM
- Multi-step cross-chain workflows
- Advanced transaction tracking
Next Steps
Deploy Smart Contracts
Learn how to deploy and verify Solidity contracts on TAC EVM
Build TAC Proxy
Create custom proxy contracts for advanced cross-chain operations
TAC SDK Deep Dive
Master the TAC SDK for powerful frontend integrations
Development Tools
Set up Hardhat, Foundry, and other development tools
Common Issues & Solutions
Contract deployment fails
Contract deployment fails
Check your setup:
- Verify you have testnet TAC tokens in your deployment wallet
- Ensure your private key is correctly set in
.env
- Confirm you’re using the correct network configuration
Get help:
- Check the Hardhat logs for specific error messages
- Verify contract addresses on the TAC Explorer
TON wallet won't connect
TON wallet won't connect
Troubleshooting steps:
- Make sure you’re using a supported TON wallet
- Clear your browser cache and try again
- Check that your wallet is set to TON testnet
- Verify the TON Connect manifest is accessible
Cross-chain transactions fail
Cross-chain transactions fail
Common causes:
- Insufficient TON balance for gas fees
- Invalid contract addresses in configuration
- Network connectivity issues
Solutions:
- Check balances in both TON and TAC wallets
- Verify contract addresses are correct
- Use the transaction tracking to identify where failures occur