Skip to main content
Use B20FactoryLib to produce canonical factory params and initCalls. The factory rejects malformed or unsupported params, so avoid hand-encoding unless you are testing decoder failures.

Deploy an Asset token

Pre-derive the token address

Some initCalls or offchain systems need the token address before deployment.
After creation, verify with:

initCalls rules

During initCalls, factory-originated calls bypass role gates and transfer-side policy gates. They do not bypass:
  • MINT_RECEIVER_POLICY
  • Pause state
  • Supply cap or other accounting invariants
That means ordering matters. Configure mint receiver policy before minting only if the mint recipient is authorized by that policy.

Admin-less deployment

To deploy admin-less from block one, set initialAdmin to address(0) and put all required role grants, policy bindings, and cap configuration into initCalls.
There is no later admin recovery path for an admin-less token. Missing policies or roles cannot be added after deployment.

Token lifecycle

IB20Factory reference