Session Security Configuration: TTL, Renewals, and Absolute Lifetime for AI Agents
Session security configuration is the foundation of safe AI agent wallet operations, determining when credentials expire and how often they can be renewed. Without proper session boundaries, an AI agent could maintain indefinite access to your funds, creating serious security risks.
Why Session Control Matters
AI agents operate autonomously, making transactions without human oversight. Unlike traditional applications where users actively log in and out, AI agents run continuously—sometimes for days or weeks. This creates a fundamental security challenge: how do you grant sufficient access for the agent to function while maintaining strict boundaries to prevent catastrophic losses?
Session timeouts, renewal limits, and absolute lifetimes act as automatic circuit breakers. Even if an agent's logic fails, its credentials, or your security policies are compromised, these time-based controls ensure that access eventually expires.
WAIaaS Session Security Architecture
WAIaaS implements a three-layer session security model that balances agent functionality with strict access control:
Layer 1: Session Token Expiration (TTL)
Every AI agent session has a Time-To-Live (TTL) that determines when the session token expires. The agent must actively renew before expiration or lose access:
// Create session with 1-hour TTL
curl -X POST http://127.0.0.1:3100/v1/sessions \
-H "Content-Type: application/json" \
-H "X-Master-Password: my-secret-password" \
-d '{
"walletId": "<wallet-uuid>",
"ttl": 3600,
"name": "trading-agent"
}'
Short TTLs (15-60 minutes) force frequent renewal checks, creating opportunities to detect and halt misbehaving agents. Long TTLs (24+ hours) reduce renewal overhead but increase risk exposure.
Layer 2: Maximum Renewals
Even valid sessions can't renew indefinitely. The maxRenewals parameter limits how many times a session can extend its lifetime:
# Session can renew maximum 10 times (11 total TTL periods)
curl -X POST http://127.0.0.1:3100/v1/sessions \
-H "Content-Type: application/json" \
-H "X-Master-Password: my-secret-password" \
-d '{
"walletId": "<wallet-uuid>",
"ttl": 3600,
"maxRenewals": 10,
"name": "limited-agent"
}'
This prevents agents from running indefinitely, even if they're functioning normally. After 10 renewals, the session dies permanently and requires human intervention to create a new one.
Layer 3: Absolute Lifetime
The absoluteLifetime parameter sets a hard deadline for session termination, regardless of renewal attempts:
# Session dies after 7 days, no matter what
curl -X POST http://127.0.0.1:3100/v1/sessions \
-H "Content-Type: application/json" \
-H "X-Master-Password: my-secret-password" \
-d '{
"walletId": "<wallet-uuid>",
"ttl": 1800,
"maxRenewals": 100,
"absoluteLifetime": 604800,
"name": "weekly-trading-agent"
}'
Even if the agent successfully renews every 30 minutes for a week, the session terminates after exactly 7 days. This provides a guaranteed upper bound on agent access duration.
Practical Session Configuration Patterns
Pattern 1: Short-Lived Task Agent
For agents performing specific, time-bounded tasks:
curl -X POST http://127.0.0.1:3100/v1/sessions \
-H "Content-Type: application/json" \
-H "X-Master-Password: my-secret-password" \
-d '{
"walletId": "<wallet-uuid>",
"ttl": 900,
"maxRenewals": 8,
"absoluteLifetime": 7200,
"name": "arbitrage-task"
}'
- 15-minute TTL with 8 renewals = maximum 2 hours of operation
- Absolute lifetime caps at 2 hours regardless
- Perfect for focused arbitrage or liquidation bots
Pattern 2: Daily Trading Agent
For agents that should operate during trading hours but stop overnight:
curl -X POST http://127.0.0.1:3100/v1/sessions \
-H "Content-Type: application/json" \
-H "X-Master-Password: my-secret-password" \
-d '{
"walletId": "<wallet-uuid>",
"ttl": 3600,
"maxRenewals": 12,
"absoluteLifetime": 43200,
"name": "daily-trader"
}'
- 1-hour TTL with 12 renewals = up to 12 hours active
- Absolute lifetime of 12 hours forces overnight shutdown
- Requires daily session recreation
Pattern 3: Long-Running with Checkpoints
For agents that need extended operation but with periodic human verification:
curl -X POST http://127.0.0.1:3100/v1/sessions \
-H "Content-Type: application/json" \
-H "X-Master-Password: my-secret-password" \
-d '{
"walletId": "<wallet-uuid>",
"ttl": 21600,
"maxRenewals": 7,
"absoluteLifetime": 604800,
"name": "weekly-dca-agent"
}'
- 6-hour TTL with 7 renewals = maximum 2 days continuous
- 7-day absolute lifetime for weekly cycles
- Balances automation with regular human oversight
Session Monitoring and Health Checks
Active session monitoring helps detect issues before they become problems:
# Check all active sessions
curl http://127.0.0.1:3100/v1/sessions \
-H "X-Master-Password: my-secret-password"
Key monitoring metrics:
- Time until TTL expiration
- Remaining renewals
- Time until absolute lifetime expiration
- Recent transaction activity
WAIaaS automatically logs session events:
- Creation and renewal timestamps
- Failed renewal attempts
- Expiration and termination events
- Policy violations during session lifetime
Emergency Session Termination
Even with careful configuration, you need kill switches for emergency situations:
# Terminate specific session immediately
curl -X DELETE http://127.0.0.1:3100/v1/sessions/<session-id> \
-H "X-Master-Password: my-secret-password"
# Terminate ALL sessions for a wallet
curl -X DELETE http://127.0.0.1:3100/v1/sessions \
-H "X-Master-Password: my-secret-password" \
-d '{"walletId": "<wallet-uuid>"}'
This immediately invalidates session tokens, stopping agent access within seconds.
Integration with Policy Engine
Session security works alongside WAIaaS's 21 policy types and 4 security tiers. Even active sessions face additional constraints:
- SPENDING_LIMIT policies can trigger DELAY or APPROVAL tiers
- RATE_LIMIT policies can pause transaction processing
- TIME_RESTRICTION policies can block activity during certain hours
Session controls handle the "when" of agent access, while policies handle the "what" and "how much."
Quick Start: Secure Session Setup
Install WAIaaS CLI:
npm install -g @waiaas/cli waiaas init waiaas startCreate wallet with restrictive policies:
waiaas wallet create --chain solana --network mainnetCreate time-limited session:
waiaas session create --wallet-id <id> --ttl 1800 --max-renewals 4 --absolute-lifetime 7200Monitor session health:
waiaas session statusConfigure emergency shutdown:
waiaas session terminate --all # Kill switch
Session security configuration isn't just about preventing unauthorized access—it's about creating predictable boundaries for autonomous systems. By combining TTL, renewal limits, and absolute lifetimes, you ensure that AI agents operate within safe, well-defined time windows while maintaining the flexibility needed for effective automation.
For more advanced security configurations, see Policy Engine Configuration: 21 Types, 4 Tiers, Default-Deny and Human-in-the-Loop Transaction Approval via WalletConnect.
What's Next
Ready to implement secure session management for your AI agents? Check out the complete documentation and examples at GitHub or explore the full security architecture at waiaas.ai.