Operations & Activity Log
The platform presents a single, unified history of everything that happens — both on-chain governance and off-chain administration — through the operations module. The same records power the Activity Log lists and the Operation detail page.
Two kinds of operation
Every entry has an OperationKind:
| Kind | What it is | Has votes? |
|---|---|---|
| CHAIN | A governed proposal that hit the chain — mint, burn, transfer, group change, disbursement, redemption. | Yes — full M-of-N vote breakdown + lifecycle |
| ADMIN | An off-chain administrative action recorded for audit. | No — read-only detail |
ADMIN operation types (AdminOperationType) include: WHITELIST_ADD / WHITELIST_REMOVE, EXCHANGE_ADDRESS_SET, EXCHANGE_FROZEN / EXCHANGE_UNFROZEN, USER_INVITED / USER_ROLE_CHANGED / USER_DEACTIVATED, INVITATION_CANCELLED / INVITATION_RESENT, CHAIN_RPC_UPDATED, ACCOUNT_CREATED, DISBURSEMENT_REQUESTED, REDEMPTION_REQUESTED.
Activity Log
GET /api/activity-log returns the unified, org-scoped feed; it appears on the dashboard and on each account's detail page (filtered to that account). My Tasks (/my-tasks) is the personal slice — CHAIN operations still awaiting the current user's vote.
The org-scoped Activity Log on the dashboard — chain and admin entries interleaved by recency, each row carrying its signature progress and status.
Operation detail
/operations/$operationId resolves a single operation from the id alone (so links are shareable). The page renders one of two templates:
- Chain operation — transaction details, the vote breakdown, the proposal lifecycle, and receipts. Sign / Reject actions appear when the proposal is live (
SUBMITTED), the viewer is a member, and it isn't proposer-restricted. - Admin operation — a read-only summary of the action with a link back to the surface that produced it (whitelist, control panel, organization, …).
A chain-operation page: the same id-addressable view for any operation, here a completed disbursement with its vote breakdown and lifecycle.
GET /api/operations/lookup resolves an operation by its identifying attributes (used for share-link / legacy ?multisigId= support); GET /api/operations/:operationId fetches the detail.
Where it comes from
CHAIN operations are projected live from the chain's proposals/votes; ADMIN operations are persisted to the activity-log audit table as they happen. Reading any of these requires the read · Operation ability (all three roles have it).