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.