Query audit logs
- CLI
- Python SDK
- TypeScript SDK
Filter options
| Parameter | Description |
|---|---|
wallet_id | Filter to one wallet |
action | Filter by action type (see table below) |
result | allowed, denied, or pending_approval |
principal_id | Filter by principal who initiated the action |
limit | Maximum number of results to return |
Action types
| Action | When it fires |
|---|---|
transfer.initiate | Agent submits a transfer |
contract_call.initiate | Agent submits a contract call |
approval.requested | Transfer/call enters pending state |
approval.approved | Owner approves a pending operation |
approval.rejected | Owner rejects a pending operation |
approval.executed | Approved operation executes on-chain |
approval.expired | Pending operation expires without action |
delegation.freeze | Owner freezes a delegation |
delegation.unfreeze | Owner unfreezes a delegation |
Audit entry structure
Real-time events (SSE)
Subscribe to the event stream for real-time push of all decisions affecting your wallets:Event types
| Event type | Fired when | Key payload fields |
|---|---|---|
approval.requested | Agent operation enters pending state | resource_id (pending_operation_id), details.amount |
transaction.status_changed | Transaction status updates | resource_id (cobo_transaction_id), details.status |
policy.violated | Agent operation is denied | resource_id (wallet_id), details.denial_code |
delegation.created | New delegation is created | resource_id (delegation_id) |
delegation.revoked | Delegation is revoked | resource_id (delegation_id) |
heartbeat | Keep-alive (every 30s) | timestamp |
Scope
The SSE stream is scoped to the authenticated principal:- Owners receive events for all wallets they own
- Operators receive events for wallets they have active delegations on
Common audit queries
Show all denied transfers today:- Python SDK
- TypeScript SDK