Skip to content

Post-Deployment Integration

After organisation deployment is completed, additional post-deployment configuration may be required for interoperability infrastructure and minting permissions.

This configuration process enables Lucid’s interoperability infrastructure to interact with deployed token systems and Asset Controller contracts.

The post-deployment integration flow primarily focuses on:

  • permission management
  • minting rights configuration
  • interoperability controller access
  • role assignment verification

AccessControl Infrastructure

Lucid uses OpenZeppelin’s AccessControl framework for managing operational permissions across deployed infrastructure.

AccessControl is used to:

  • assign operational roles
  • manage mint permissions
  • coordinate interoperability access
  • secure contract interactions
  • restrict privileged functions

Additional information about AccessControl can be found in the OpenZeppelin documentation.

Message Controller Permissions

After deployment, the Message Controller contract may require permission to interact with the organisation’s Asset Controller infrastructure.

This permission allows interoperability infrastructure to:

  • coordinate mint operations
  • execute cross-chain asset settlement
  • interact with interoperability routing systems
  • manage bridge-based mint and burn flows

The Message Controller must be granted the appropriate operational role before interoperability functionality becomes fully active.

grantRole() Configuration

Minting permissions are assigned using the:

grantRole(bytes32 role, address account)

function from OpenZeppelin’s AccessControl framework.

Parameters:

ParameterPurpose
roleThe permission role hash
accountThe address receiving the permission

The granted role determines which privileged operations the assigned address can execute.

Role Hash Configuration

Each deployed token infrastructure defines specific role hashes during deployment.

These role hashes determine:

  • mint permissions
  • interoperability permissions
  • operational access rights

The correct role hash must be supplied when assigning permissions to the Message Controller contract.

Example:

grantRole(0x<role-hash>, 0x<message-controller-address>)

Replace:

  • <role-hash> with the appropriate permission role
  • <message-controller-address> with the deployed Message Controller address

Asset Controller Integration

The Asset Controller manages:

  • mint permissions
  • interoperability coordination
  • bridge-integrated token operations
  • mint and burn infrastructure

The Message Controller must be authorised on the same chain as the deployed Asset Controller infrastructure.

This integration enables:

  • cross-chain mint coordination
  • interoperability-aware token settlement
  • bridge-agnostic asset transfers

Role Verification

After assigning permissions, organisations should verify that the role assignment completed successfully.

Verification is performed using:

hasRole(bytes32 role, address account)

The function should return:

true

if the role assignment was successful.

This verification step ensures:

  • interoperability permissions were configured correctly
  • operational access is active
  • mint infrastructure is functional

Security Considerations

Permission assignment controls critical interoperability infrastructure and should be handled carefully.

Important considerations:

  • verify all contract addresses before assigning permissions
  • confirm role hashes match the intended operational role
  • ensure permissions are granted on the correct chain
  • avoid assigning privileged roles to unintended addresses

Incorrect role assignment may:

  • disable interoperability functionality
  • expose privileged operations
  • affect mint and burn coordination

Interoperability Activation

Once:

  • roles are assigned
  • permissions are verified
  • interoperability infrastructure is configured

the organisation’s token and bridge infrastructure becomes fully operational within Lucid’s interoperability environment.