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
Get testnet tokens
- Get
TONon TON Testnet Faucet. For the sake of this demoTONtokens are enough. - (Optional) Get
TACon TAC Testnet Faucet. If you choose to deploy your contracts to TAC Testnet.
(Optional) Deploy smart contracts
You can skip this step and use already deployed and pre-set contracts within Take note of the deployed addresses:
my-tac-project or deploy fresh ones and yours truly.Create .env file out of .env.example.For the deployment navigate to the contracts directory and deploy to TAC Testnet:- SimpleMessage contract address
- MessageProxy contract address
- MockToken contract address
addresses.json file.(Optional) Update frontend configuration
To use the specific addresses from the previous step open This connects your frontend to the smart contracts you just deployed.
lib/contract_addresses.ts and update with your deployed contract addresses: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 (Wallet, Tonkeeper, etc.)
- Approve the connection in your wallet
- Verify your wallet address appeared in the interface
Test cross-chain functionality (TON->TAC)
Try the example functionality:
- Send a Message: Click ‘Send Cross-Chain Message’ and approve it in you TON wallet to send a 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
(Optional) Test cross-chain functionality (TON->TAC->TON)
Select different
CONTRACT_ADDRESS.MESSAGE_PROXY in lib/contracts.ts, you’ll see the related comment.Or do it in a more advanced way:- Navigate to
contracts/MessageProxy.soland uncomment the related code block. - Deploy a set of contracts with
npx hardhat run scripts/deploy.ts --network tacTestnet - Update
lib/contracts.tswith the new contract addresses.
(Optional) Customize your dApp
Now you can start customizing dApp logic for your specific use case.Smart Contracts (
contracts/ directory):- Modify
SimpleMessage.solfor your business logic - Update
MessageProxy.solfor custom cross-chain handling - Add new contracts as needed
components/ directory):- Customize the UI components
- Add new pages and functionality
- Asset (FT, NFT) bridging between TON and EVM
- Multi-step cross-chain workflows
- Advanced transaction tracking
Next Steps
More Use Cases
Take a closer look into existing hybrid dApp implementations
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
- Verify contract addresses on the TAC Testnet explorer
TON wallet won't connect
TON wallet won't connect
Troubleshooting steps:
- Sometimes Tonconnect may not show you the send transaction popup. Try several times until success
- Make sure you’re using a supported TON wallet in the pop-up TON Connect menu in the UI
- Check that your wallet is set to TON testnet
- Clear your browser cache and try again
- Verify the my-tac-project 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
- Check balances in both TON and TAC wallets
- Verify contract addresses are correct
- Use the transaction tracking to identify where failures occur