Overview
Sardis smart contracts provide:- Policy Enforcement: On-chain spending limits, merchant allowlists, and token restrictions
- Gasless Transactions: ERC-4337 paymaster for sponsored transactions
- Safe Integration: Modular architecture compatible with Safe (formerly Gnosis Safe)
contracts/src/
SardisPolicyModule
Purpose: Safe module that enforces spending policies for AI agent wallets before every transaction. File:contracts/src/SardisPolicyModule.sol
Architecture: Modular guard that integrates with Safe Smart Accounts (>$100B TVL, battle-tested security).
Core Features
1. Spending Limits
Per-Transaction Limits:SardisPolicyModule.sol:334-341):
2. Co-Sign Mode
Elevated limits when both agent + Sardis approve:- Normal: Configured at initialization
- Co-Sign: 10x normal limits
- Daily Reset: Automatic at midnight UTC
3. Merchant Controls
Allowlist Mode:SardisPolicyModule.sol:326-332):
4. Token Allowlist
Stablecoin-only enforcement by default:5. Pause Control
Emergency pause for individual wallets:Transaction Flow
Initialization
View Functions
Events
SardisVerifyingPaymaster
Status: DEPRECATED - Use Circle Paymaster instead Circle Paymaster Address (all chains):0x0578cFB241215b77442a541325d6A4E6dFE700Ec
File: contracts/src/SardisVerifyingPaymaster.sol (reference only)
Why Deprecated?
Circle’s permissionless paymaster provides:- No deployment required
- Cross-chain support (Base, Ethereum, Polygon, Arbitrum, Optimism)
- Automatic USDC refills
- Production-grade reliability
Original Architecture
Purpose: ERC-4337 paymaster with wallet allowlist and sponsor caps. Key Features:1. Wallet Allowlist
2. Sponsorship Caps
SardisVerifyingPaymaster.sol:103-113):
3. Verifier Signature
Optional off-chain approval:Migration to Circle Paymaster
Sardis now uses Circle’s production paymaster:Contract Interactions
From Python SDK
Policy Management API
Deployment Addresses
SardisPolicyModule
| Chain | Address | Deployment |
|---|---|---|
| Base | Not yet deployed | Pending mainnet deployment |
| Base Sepolia | Not yet deployed | Testnet |
| Ethereum | Not yet deployed | Pending mainnet deployment |
| Polygon | Not yet deployed | Pending mainnet deployment |
Circle Paymaster (Production)
Address (all chains):0x0578cFB241215b77442a541325d6A4E6dFE700Ec
| Chain | Status |
|---|---|
| Base | ✅ Live |
| Ethereum | ✅ Live |
| Polygon | ✅ Live |
| Arbitrum | ✅ Live |
| Optimism | ✅ Live |
Security Considerations
SardisPolicyModule
Audited: Compatible with Safe’s audited module system Security Features:- Fail-Closed: Revert on policy violation (no bypass possible)
- Daily Limits: Automatic reset at midnight UTC
- Merchant Denylist: Blacklist overrides allowlist
- Token Enforcement: Stablecoin-only by default
- Pause Control: Emergency stop per wallet
- Only Sardis platform address can modify policies
- Wallet owners cannot bypass policy checks
- Co-sign requires Sardis signature
Best Practices
Gas Costs
SardisPolicyModule
| Operation | Gas Cost | Notes |
|---|---|---|
| Initialize Wallet | ~100k | One-time setup |
| Check Transaction | ~30k | Per transfer |
| Update Limits | ~50k | Admin operation |
| Allow Merchant | ~45k | Admin operation |
| Allow Token | ~45k | Admin operation |
Gasless Transactions (Circle Paymaster)
Sponsored Operations:- User pays: $0 (fully sponsored)
- Sardis/Circle pays: ~0.50 on Ethereum
- Direct: ~$0.0001 (user pays gas)
- Gasless: ~$0.0002 (Sardis pays gas)
Contract Source Code
SardisPolicyModule.sol
Full implementation:contracts/src/SardisPolicyModule.sol (362 lines)
Key sections:
- State Variables: Lines 23-43
- Wallet Initialization: Lines 96-121
- Transaction Guard: Lines 124-176
- Co-Sign Mode: Lines 179-219
- Policy Management: Lines 222-293
- Internal Helpers: Lines 325-360
SardisVerifyingPaymaster.sol
Reference implementation:contracts/src/SardisVerifyingPaymaster.sol (160 lines)
Deprecated: Use Circle Paymaster instead
Testing
Foundry Tests
- Spending limit enforcement
- Daily limit reset
- Merchant allowlist/denylist
- Token allowlist
- Co-sign mode
- Pause/unpause
- ERC-20 detection (transfer/approve)
Integration Tests
Next Steps
Gas Optimization
Minimize transaction costs with smart routing
Supported Chains
Chain configurations and RPC endpoints
Supported Tokens
Token addresses and allowlist management