Skip to main content
Every transaction that passes through the FunctorPolicyHook emits a FunctorTxExecuted event. This creates a permanent, onchain audit trail that anyone can read and verify.

What gets logged

Each event captures:
FieldDescription
accountThe smart account that executed the transaction
keyIdWhich key signed the transaction
targetThe contract or address the transaction interacted with
valueETH value transferred
policyResultsWhich policies were evaluated and their results
feeThe Functor fee collected
timestampWhen the transaction executed
Blocked transactions emit a separate FunctorTxBlocked event with the denial reason, so the developer can see what the agent tried to do and why it was stopped.

Why this matters

Existing session key modules have limited event coverage. Most policies don’t emit per-transaction events. There is no unified log of what happened, when, and why. Functor’s audit trail enables:
  • Debugging - see exactly why a transaction was blocked
  • Compliance - provable, onchain records that the agent operated within defined rules
  • Monitoring - the dashboard reads these events to show real-time agent activity
  • Accountability - if an agent misbehaves, the record is permanent and public

Events are onchain

The audit trail lives on the blockchain as event logs. It is not stored in a database, not controlled by Functor, and not deletable. Any party with an archive node can independently query and verify the history of any Functor-managed account. The Functor dashboard indexes these events for a better user experience, but the source of truth is always the chain.