Non-custodial policy layer for AI agent wallets
Give your AI agents the ability to make payments whilst enforcing spending limits—without custodying keys.
AI agents need to make autonomous payments, but developers face a dilemma:
- Give agents direct wallet access → Risk of runaway spending, no oversight, compliance gaps
- Use custodial solutions → Liability, trust issues, regulatory complications
- Build custom controls → Weeks of engineering, security risks, maintenance burden
We solve this: A non-custodial policy layer that wraps any wallet SDK, enforcing spending limits without ever touching your keys.
Real-time monitoring of multiple agents with different spending policies
Detailed audit trail showing ALLOWED and BLOCKED transactions
Runs on http://localhost:3001
Open http://localhost:3002 to see real-time monitoring.
⚠️ POC Mode: This demo runs in dry-run mode and does not execute real blockchain transactions. Policy enforcement (Gates 1 & 2) runs completely, but blockchain execution is simulated to avoid needing funded wallets. This demonstrates the policy layer without requiring gas fees.
This demonstrates:
- 🤖 3 agents with different spending limits (conservative, moderate, generous)
- ✅ Transactions being ALLOWED based on policy
- ❌ Transactions being BLOCKED when limits exceeded
- 📊 Real-time counter tracking and dashboard updates
- 🔒 Two-gate enforcement with tamper protection
- 💸 Simulated transaction execution (real blockchain code available but commented out)
Key Security Features:
- ✅ Intent Fingerprinting - Tamper detection via SHA-256 hashing
- ✅ Single-Use Tokens - JWT tokens with 60-second TTL, consumed on first use
- ✅ Immediate Reservation - Amount reserved at Gate 1, preventing race conditions
- ✅ Non-Custodial - Your keys never leave your infrastructure
Instead of using a wallet SDK directly:
Wrap it with our policy layer:
| Per-Transaction Limits | Maximum amount per single transaction |
| Daily Limits | Maximum total spending per 24-hour period (midnight reset) |
| Hourly Limits | Maximum total spending per hour (UTC hour boundaries) |
| Recipient Whitelist | Only allow transactions to pre-approved addresses |
| Transaction Frequency | Maximum X transactions per time period (e.g., 3 per hour) |
| Multi-Agent Management | Different limits for each agent |
| Real-Time Monitoring | Live dashboard with auto-refresh |
| Audit Trail | Append-only log of every policy decision |
| Tamper Protection | Intent fingerprinting prevents modification |
| Single-Use Authorisations | Tokens consumed on first verification |
| Ethereum Support | Native ETH and ERC-20 tokens |
- Time-Based Limits - Weekly, monthly caps
- Velocity Controls - Cooldown periods, burst protection
- Recipient Controls - Blacklists, address screening
- Multi-Chain - Bitcoin, Solana, Polygon, Arbitrum, etc.
- Approval Workflows - Two-person rule, supervisor approval for large amounts
- Fraud Detection - Anomaly detection, behavioural analysis
- Compliance - KYC/AML integration, sanctions screening, reporting
Want to contribute? See 100+ potential controls and pick one to implement!
| Spending Limits | ❌ None | ✅ Per-agent limits |
| Audit Trail | ❌ No logging | ✅ Full audit log |
| Monitoring | ❌ No visibility | ✅ Real-time dashboard |
| Multi-Agent | ❌ Complex DIY | ✅ Built-in management |
| Compliance | ❌ DIY | ✅ Regulatory-ready |
| Tamper Protection | ❌ None | ✅ Fingerprinting + single-use tokens |
| Key Security | ✅ You control | ✅ You control |
| Key Custody | ❌ Third-party holds keys | ✅ You keep keys |
| Liability | ❌ High (custodian risk) | ✅ Low (non-custodial) |
| Trust Required | ❌ Must trust custodian | ✅ Minimal trust needed |
| Policy Enforcement | ✅ Yes | ✅ Yes |
| Vendor Lock-in | ❌ High | ✅ Wraps any wallet SDK |
| Compliance | ⚠️ Custodian's responsibility | ✅ Your control |
Agent can purchase items up to $100/day, preventing runaway spending on expensive items.
DeFi agent can rebalance positions with per-transaction limits and daily caps.
Support agent can issue refunds up to $50 without human approval, larger amounts require oversight.
Grant access to multiple research agents, each with different budgets for experiments.
Platform with hundreds of agents, each with custom spending policies.
- Basic spending limits (daily, per-transaction)
- Hourly spending limits
- Recipient whitelist controls
- Transaction frequency limits
- Two-gate enforcement model
- Real-time monitoring dashboard
- Audit logging
- Ethereum support (ETH + ERC-20)
- Multi-agent management
- npm package distribution
- Persistent storage (PostgreSQL)
- Redis for token management
- Comprehensive test suite
- SDK for multiple wallet providers
- Docker deployment
- Production security hardening
- Weekly/monthly limits
- Recipient blacklists
- Advanced velocity controls & rate limiting
- Multi-chain support (Bitcoin, Solana)
- Approval workflows
- Webhooks & notifications
- Fraud detection & anomaly detection
- Compliance reporting (KYC/AML)
- Multi-organisation support
- Role-based access control
- API rate limiting
- SaaS offering
Want to help? Check CONTRIBUTING.md and POLICY_CONTROLS.md!
- ARCHITECTURE.md - Detailed technical documentation
- POLICY_CONTROLS.md - 100+ potential policy controls
- CONTRIBUTING.md - How to contribute
- Tether WDK Docs - Wallet SDK documentation
⚠️ NEVER commit sensitive data:
- Seed phrases
- Private keys
- API keys
- Production credentials
All sensitive configuration belongs in .env (gitignored).
This is a proof of concept. Before production use:
- Replace in-memory storage with PostgreSQL
- Add Redis for distributed token management
- Implement rate limiting on API endpoints
- Add comprehensive input validation
- Security audit of JWT implementation
- Add monitoring & alerting
- Implement backup & recovery procedures
Q: Do you custody my keys? A: No. Your keys remain on your infrastructure. We only enforce policy before you sign.
Q: Does this work with any wallet SDK? A: Currently demonstrated with Tether WDK. The SDK wrapper pattern works with any wallet library.
Q: What happens if your API goes down? A: Agents can't make payments (fail-closed design). In production, deploy your own policy API with high availability.
Q: Can I use this in production? A: This is a POC. See "Current Limitations" above. We're working towards production-ready releases.
Q: Does the demo execute real blockchain transactions? A: No. The demo runs in dry-run mode and simulates blockchain execution. Policy enforcement (the core innovation) runs completely. To enable real transactions, uncomment the production code in src/sdk/policy-wallet.ts and fund your wallet with ETH for gas.
Q: How do I add my own policy controls? A: Check CONTRIBUTING.md and POLICY_CONTROLS.md for guidance.
Q: Is there a hosted version? A: Not yet. Phase 1 is self-hosted. Hosted SaaS coming in Phase 4.
We welcome contributions! This project is young and there's lots to build.
High-value contributions:
- Implement policy controls from POLICY_CONTROLS.md
- Add support for more wallet SDKs
- Write tests (unit, integration, security)
- Improve documentation & examples
- Add multi-chain support
See CONTRIBUTING.md for detailed guidelines.
MIT License - see LICENSE for details.
- Tether WDK - Multi-chain wallet SDK
- Agentic Commerce - Inspiration for agent-driven economy
- GitHub Issues: Report bugs or request features
- Twitter: @L1AD
- Email:
.png)


