A small web app for interacting with the Tempo Moderato Testnet (wallet connect, faucet, transfers, token tools, and the Stablecoin DEX).
Important:
- This is an unofficial community-made demo UI / guide, built using publicly available Tempo docs and deployed contract interfaces.
- Not affiliated with Tempo.
Live (production): https://tempo-testnet.vercel.app
YouTube demo: https://www.youtube.com/watch?v=PM1m87ASxmQ
- View your testnet token balances
- Claim faucet funds
- Send TIP-20 tokens
- Create & manage TIP-20 stablecoins (issuance)
- Swap stablecoins
- Provide liquidity / market making (advanced tools available)
- Check useful contract addresses / links
Light mode:
Dark mode:
Requirements: Node.js 18+ and npm.
- Install deps
npm install- Create your env file
cp .env.example .env.localNotes:
- Prefer
.env.localfor local development (do not commit it). - The repo ignores
.env*.localby default.
If you deploy the app under a subpath (e.g. GitHub Pages), set:
VITE_BASE_PATH=/Tempo-Testnet/
- (Optional) Set WalletConnect project id
Open .env.local and set:
VITE_WALLETCONNECT_PROJECT_ID=
If you want iOS/Safari users to see mobile wallet options in the Connect modal, a WalletConnect Project ID is required.
- Run locally
npm run devBuild / preview:
npm run build
npm run previewThis repo includes a vercel.json configured for Vite + SPA routing. In Vercel Project Settings, set any needed env vars (e.g. VITE_WALLETCONNECT_PROJECT_ID) and deploy.
Most wallets will prompt you to switch networks when you connect. If you need to add it manually (e.g. MetaMask):
-
Open Settings → Networks → Add network → Add a network manually
-
Enter these values
- Network name:
Tempo Moderato Testnet - RPC URL:
https://rpc.moderato.tempo.xyz - Chain ID:
42431 - Currency symbol:
USD - Block explorer:
https://explore.tempo.xyz
- This app targets Tempo Moderato Testnet (chain id
42431). If your wallet is on the wrong network, the UI will ask you to switch. - RPC default:
https://rpc.moderato.tempo.xyz - Explorer:
https://explore.tempo.xyz
© Tempo Testnet App. All rights reserved.
npm run lintnpm run formatnpm run smoke:contractsnpm run diag:fee-token
If setUserToken fails in-wallet with a generic "Internal JSON-RPC error", you can diagnose the on-chain requirements and run a safe preflight simulation from the terminal.
- Put these in your
.env.local(recommended) or.env:
USER_TOKEN=0x...(your TIP-20)ACCOUNT_ADDRESS=0x...(your wallet address)
- Run:
npm run diag:fee-tokenThis runs simulateContract(setUserToken) and prints currency, balances, pool reserves, and any available revert selector data.
Optional: to broadcast setUserToken from the script, set PRIVATE_KEY and SEND_TX=1 locally (never share or commit secrets).

