Multi-Purpose Tokens (MPT) become immutable after issuance, but some use cases may require the capability to update an MPT's properties after its initial issuance.
The Dynamic MPT amendment extends Multi-Purpose Tokens by allowing issuers to set specific properties as mutable when creating an MPT issuance. This enables some properties to be updated later as business needs evolve. For example, an issuer might need to adjust transfer fees based on market conditions, or update token metadata. Issuers can achieve this by explicitly declaring which specific fields and flags can be modified when they issue the MPT. Fields not marked as mutable during initial issuance remain immutable.
(Requires the DynamicMPT amendment )
When you issue an MPT, you can declare selected fields and MPT issuance flags as mutable in the MutableFlags field of the MPTokenIssuanceCreate transaction. Field mutability supports operational updates such as metadata changes and transfer fee adjustments without requiring a new issuance. All other fields and flags must remain immutable.
After creating an MPT with mutable properties, you can update those specific fields or enable mutable MPT issuance flags using the MPTokenIssuanceSet transaction. You provide new values for mutable fields, or use a separate set of flags to enable mutable MPT issuance flags.
Mutable MPT issuance flags are intentionally one-way: if the corresponding mutability flag was set during creation, the issuer may later enable the MPT issuance flag through MPTokenIssuanceSet, but once enabled, that flag cannot be disabled.
Mutability is opt-in and strictly bounded by the issuer's original declaration:
- A field or MPT issuance flag can only be changed if it was explicitly declared mutable during
MPTokenIssuanceCreate. - Only the issuer of the
MPTokenIssuancecan useMPTokenIssuanceSetto modify mutable fields or enable mutable MPT issuance flags. - Mutable MPT issuance flags are one-way and cannot be disabled through
MPTokenIssuanceSetafter they are enabled. This prevents an issuer from weakening issuance behavior after participants may have relied on the enabled flag.