Real-time monitoring and alerts for AI agent wallets on Base.
Website · Observatory · API Docs · SDK · CLI
ChainWard gives you real-time visibility into your on-chain agent wallets. Track transactions, monitor balances, catch failed transactions and gas spikes, and get alerts delivered to Discord, Telegram, or webhooks — all within 30 seconds of on-chain activity.
- Real-time indexing — Transactions indexed via Alchemy webhooks as they land on-chain
- 7 alert types — Large transfer, gas spike, failed tx, new contract, balance drop, inactivity, idle balance
- 3 delivery channels — Discord embeds, Telegram bot, custom webhooks
- Dashboard — Fleet overview, per-agent detail, transaction history, gas analytics, balance charts
- Base Agent Observatory — Public dashboard tracking 39+ agent wallets on Base (chainward.ai/base)
- Wallet Lookup — Free public tool to inspect any Base wallet's recent activity
- TypeScript SDK — Programmatic access to all endpoints
- CLI — Monitor agents from your terminal with
chainward watch - Framework plugins — Drop-in integrations for elizaOS, Coinbase AgentKit, and Virtuals GAME
Alchemy webhook → API /api/webhooks/alchemy → BullMQ queue
→ Indexer: parse tx, insert to TimescaleDB, evaluate alerts
→ Alert pipeline: evaluate → deliver to Discord/Telegram/webhook
| Component | Tech |
|---|---|
| API | Hono (Node 22) |
| Web | Next.js 15, Tailwind CSS v4 |
| Database | TimescaleDB (PostgreSQL + hypertables) |
| Queue | BullMQ + Redis |
| Auth | SIWE (Sign In With Ethereum) + JWT |
| Monorepo | Turborepo + pnpm workspaces |
git clone https://github.com/saltxd/chainward.git
cd chainward
pnpm installCopy environment files:
cp apps/api/.env.example apps/api/.env
cp apps/web/.env.example apps/web/.envConfigure your .env files with database, Redis, and Alchemy credentials, then:
pnpm devThis starts the API on localhost:8000 and the web app on localhost:3000.
npm install @chainward/sdkimport { ChainwardClient } from '@chainward/sdk';
const client = new ChainwardClient({ apiKey: 'ag_...' });
const agents = await client.listAgents();
const txs = await client.listTransactions({ limit: 20 });
await client.createAlert({
walletAddress: '0x...',
chain: 'base',
alertType: 'failed_tx',
channels: ['discord'],
discordWebhook: 'https://discord.com/api/webhooks/...',
});npm install -g @chainward/cli
chainward login
chainward agents
chainward watch # live transaction stream
chainward alerts listnpm install @chainward/elizaos-pluginimport { chainwardPlugin } from '@chainward/elizaos-plugin';
// Add to your elizaOS agent character
const character = {
plugins: [chainwardPlugin],
settings: {
secrets: {
CHAINWARD_API_KEY: 'ag_...',
},
},
};npm install @chainward/agentkit-pluginimport { chainwardActionProvider } from '@chainward/agentkit-plugin';
const provider = chainwardActionProvider({ apiKey: 'ag_...' });
// Add to your AgentKit agent's action providersnpm install @chainward/virtuals-pluginimport { ChainwardPlugin } from '@chainward/virtuals-plugin';
const plugin = new ChainwardPlugin({ apiKey: 'ag_...' });
const worker = plugin.getWorker();
// Add worker to your GAME agentAll endpoints accept Bearer ag_ API keys or session cookies. Base URL: https://api.chainward.ai
# List agents
curl -H "Authorization: Bearer ag_..." https://api.chainward.ai/api/agents
# Get transactions
curl -H "Authorization: Bearer ag_..." https://api.chainward.ai/api/transactions?limit=20
# Create an alert
curl -X POST -H "Authorization: Bearer ag_..." \
-H "Content-Type: application/json" \
-d '{"walletAddress":"0x...","chain":"base","alertType":"gas_spike","thresholdValue":"5","thresholdUnit":"usd","channels":["discord"],"discordWebhook":"https://discord.com/api/webhooks/..."}' \
https://api.chainward.ai/api/alertsFull API reference: chainward.ai/docs/api
| Package | Description |
|---|---|
apps/api |
Hono API server |
apps/web |
Next.js dashboard |
packages/common |
Shared types and utilities |
packages/db |
Drizzle ORM schema and migrations |
packages/indexer |
BullMQ workers for tx processing, alerts, and analytics |
packages/sdk |
TypeScript client (npm) |
packages/cli |
CLI tool (npm) |
packages/elizaos-plugin |
elizaOS plugin (npm) |
packages/agentkit-plugin |
Coinbase AgentKit plugin (npm) |
packages/virtuals-plugin |
Virtuals GAME plugin (npm) |
pnpm install # Install dependencies
pnpm dev # Start API + web dev servers
pnpm typecheck # Typecheck all packages
pnpm build # Build all packagesMIT