Skip to main content

Create an Audit Trail

This guide walks you through creating a new AuditTrail object on the IOTA network, inspecting the built-in Admin role, defining a custom role, and issuing a capability for it.

Prerequisites

  • A funded IOTA account
  • Access to an IOTA network (testnet, devnet, or local)
  • Audit Trails client packages installed (Rust or Wasm)

Steps

1. Set Up Multiple Wallets

Create an admin wallet (which creates the trail) and a record-admin wallet that will receive a delegated capability.

Used Utility Functions
examples/audit-trail/01_create_audit_trail.rs
loading...

2. Create the Trail

Use the builder to create a trail with immutable metadata (name and description), mutable updatable metadata, and an initial seed record. On success, an Admin capability is automatically minted and transferred to your address.

examples/audit-trail/01_create_audit_trail.rs
loading...

3. Define a Custom Role

Use the Admin capability to create new roles. PermissionSet::record_admin_permissions() grants AddRecord, DeleteRecord, and CorrectRecord permissions.

examples/audit-trail/01_create_audit_trail.rs
loading...

4. Issue a Capability

Mint an on-chain Capability object for the role and send it to the target address. The holder can then perform the actions permitted by the role.

examples/audit-trail/01_create_audit_trail.rs
loading...

Expected Behavior

  • A new AuditTrail object is created on-chain with a unique trail ID.
  • The creator automatically receives an Admin capability with full permissions to administer the trail.
  • Custom roles can be defined and capabilities issued using the Admin capability.
  • Each capability is an on-chain object that can be transferred to other addresses.

Running Examples Locally

In order to run the examples, you will need to run an IOTA network locally. See the local network setup guide.

Full Example Code

examples/audit-trail/01_create_audit_trail.rs
loading...