A web application for learning Tempo blockchain mechanics through real-time interaction logs. The application demonstrates key Tempo features including native fee sponsorship, memo-enabled transfers, and dedicated payment lanes.
Tempo Explorer provides a two-panel interface where users can trigger blockchain actions and observe the underlying mechanics in real-time. The left panel contains action buttons for common operations like account setup, payments, and batch transactions. The right panel displays a detailed log of every RPC call, contract interaction, and transaction receipt with educational annotations explaining Tempo-specific features.
- Account Management: Generate and fund test accounts on Tempo Moderato testnet
- Payment Operations: Send payments with memos using TIP-20 tokens
- Fee Sponsorship: Demonstrate native fee sponsorship where third parties pay transaction fees
- Batch Transactions: Execute multiple payments atomically in a single transaction
- Transaction History: Query and display payment history with memo filtering
- Real-time Logging: Live stream of all blockchain interactions with educational context
- Backend: TypeScript, Hono web framework, Node.js
- Frontend: React 19, Vite build tool, Tailwind CSS
- Blockchain: Viem client library with Tempo extensions
- Network: Tempo Moderato Testnet (Chain ID 42431)
- Deployment: Railway platform
The application uses an instrumented client architecture that wraps the viem blockchain client to intercept and log all operations. WebSocket connections stream real-time updates to the frontend, providing immediate feedback on transaction states and blockchain interactions.
- Node.js 18 or later
- npm or yarn package manager
# Clone the repository
git clone https://github.com/elimchayseng/eth_tempo_experiments.git
cd eth_tempo_experiments
# Install dependencies
npm install
# Run type checking
npm run check# Start both frontend and backend in development mode
npm run dev
# Or run them separately:
npm run dev:server # Backend on port 4000
npm run dev:web # Frontend on port 5173# Build the frontend for production
npm run build- Setup Accounts: Click "Setup Accounts" to generate test wallets and request testnet funds
- Check Balances: Verify account balances using the TIP-20 contract
- Send Payments: Transfer tokens between accounts with optional memos
- Fee Sponsorship: Experience sponsored transactions where fees are paid by a third party
- Batch Operations: Execute multiple payments in a single atomic transaction
- View History: Query transaction history filtered by account and memo content
GET /api/health- Application health checkGET /api/health/blockchain- Blockchain connectivity statusGET /api/accounts- Current account statesPOST /api/setup- Initialize and fund test accountsPOST /api/balance- Refresh account balancesPOST /api/send- Send payment with self-paid feesPOST /api/send-sponsored- Send payment with sponsored feesPOST /api/batch- Execute batch paymentsPOST /api/history- Query transaction history
The application supports environment-based configuration:
PORT- Server port (default: 4000)NODE_ENV- Environment mode (development/production)RPC_URL- Custom Tempo RPC endpointEXPLORER_URL- Custom block explorer URLENABLE_REQUEST_LOGS- Request logging toggle
The application is configured for deployment on Railway with automatic health checks and proper containerized networking. The main branch deploys automatically to the production environment.
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and type checking
- Submit a pull request
This project is for educational and demonstration purposes.