Self-hosted push notifications for AI agent wallets eliminate the privacy risks and vendor dependencies that come with third-party notification services. When your AI agents handle crypto transactions worth thousands of dollars, you need complete control over the communication channels that approve or deny those operations.
Traditional notification systems require trusting external providers with sensitive transaction data, creating potential security vulnerabilities and privacy leaks. For developers building autonomous trading bots or DeFi agents, this dependency on external services introduces unwanted risk into their infrastructure stack.
Why Self-Hosted Notifications Matter
AI agents operating in DeFi need real-time approval workflows for high-value transactions. When your trading bot wants to execute a $10,000 swap or your yield farming agent needs to move funds between protocols, you want immediate notification and approval capabilities — without sending transaction details through someone else's servers.
Self-hosted notifications also eliminate API rate limits, service outages, and account suspensions that can interrupt critical trading operations. Your infrastructure, your uptime guarantees.
WAIaaS Push-Relay Architecture
WAIaaS includes a dedicated push-relay service that handles mobile notifications without external dependencies. The system uses 2 Docker images: the main WAIaaS daemon plus push-relay for notification delivery.
# docker-compose.yml with push-relay
services:
daemon:
image: ghcr.io/minhoyoo-iotrust/waiaas:latest
ports:
- "127.0.0.1:3100:3100"
volumes:
- waiaas-data:/data
push-relay:
image: ghcr.io/minhoyoo-iotrust/waiaas-push-relay:latest
ports:
- "127.0.0.1:3101:3101"
environment:
- RELAY_DAEMON_URL=http://daemon:3100
depends_on:
- daemon
volumes:
waiaas-data:
The push-relay service integrates with WAIaaS's 3 signing channels: push-relay-signing-channel, telegram-signing-channel, and wallet-notification-channel. This gives you multiple notification paths for transaction approvals.
Docker Deployment with Notification Setup
Start your self-hosted notification infrastructure in minutes:
# Clone and deploy both services
git clone https://github.com/minhoyoo-iotrust/WAIaaS.git
cd WAIaaS
docker compose up -d
# Configure notification channels
waiaas notification setup --push-relay http://localhost:3101
The Docker entrypoint supports auto-provision and Docker Secrets for production deployments. You can configure environment variables for your specific notification requirements:
# Production deployment with secrets
mkdir -p secrets
echo "your-secure-webhook-secret" > secrets/push_secret.txt
chmod 600 secrets/push_secret.txt
docker compose -f docker-compose.yml -f docker-compose.secrets.yml up -d
Policy-Driven Notification Triggers
WAIaaS's policy engine determines when notifications fire based on 21 policy types and 4 security tiers. Configure spending limits that trigger notifications at specific thresholds:
# Create policy that sends push notifications for transactions over $100
curl -X POST http://127.0.0.1:3100/v1/policies \
-H "Content-Type: application/json" \
-H "X-Master-Password: my-secret-password" \
-d '{
"walletId": "<wallet-uuid>",
"type": "SPENDING_LIMIT",
"rules": {
"instant_max_usd": 10,
"notify_max_usd": 100,
"delay_max_usd": 1000,
"delay_seconds": 900,
"daily_limit_usd": 5000
}
}'
The 4 security tiers (INSTANT, NOTIFY, DELAY, APPROVAL) integrate with your push notification system. NOTIFY tier executes transactions immediately while sending alerts. DELAY tier queues transactions for 15 minutes (configurable) with cancellation notifications. APPROVAL tier blocks execution until you approve via push notification.
Real-Time Transaction Monitoring
The incoming transaction monitoring service works with push notifications to alert you about deposits and other wallet activity:
# Check incoming transaction summary (triggers notifications)
curl http://127.0.0.1:3100/v1/wallet/incoming/summary \
-H "Authorization: Bearer wai_sess_<token>"
This integrates with the wallet notification channel to send real-time alerts when funds arrive in your AI agent wallets. Perfect for monitoring trading bot profits or DeFi reward claims.
Multi-Channel Notification Strategy
Configure multiple notification channels for redundancy. If push notifications fail, fall back to Telegram or other channels:
# Set up Telegram as backup channel
waiaas notification setup --telegram-bot-token <token> --chat-id <id>
# Configure notification preferences
curl -X POST http://127.0.0.1:3100/v1/settings/notifications \
-H "Content-Type: application/json" \
-H "X-Master-Password: my-secret-password" \
-d '{
"channels": ["push-relay", "telegram"],
"failover": true,
"retry_attempts": 3
}'
Quick Start: Self-Hosted Notification Setup
-
Deploy the stack:
docker compose up -dstarts both WAIaaS daemon and push-relay service -
Create a wallet:
waiaas wallet create --name trading-bot --chain solana - Configure policies: Set spending limits that trigger notifications at your preferred thresholds
-
Set up push endpoints:
waiaas notification setup --push-relay http://localhost:3101 - Test the flow: Send a transaction above your notify threshold and verify push delivery
Integration with Mobile Apps
The push-relay service exposes webhook endpoints that mobile applications can subscribe to. Your custom wallet apps receive transaction approval requests without relying on Firebase, APNs, or other external push services:
# Register mobile app webhook
curl -X POST http://127.0.0.1:3101/v1/webhooks/register \
-H "Content-Type: application/json" \
-d '{
"endpoint": "https://your-app.com/webhook/waiaas",
"events": ["transaction_pending", "balance_change"],
"secret": "webhook-verification-secret"
}'
This gives you end-to-end control over the notification pipeline from transaction detection to mobile delivery.
Ready to eliminate third-party dependencies from your AI agent infrastructure? Check out the WAIaaS repository for complete Docker setup instructions, or visit the official documentation for advanced notification configuration options. Your keys, your server, your notifications — exactly as it should be.
Top comments (0)