Token-2022 extensions: size and rent
Each Token-2022 extension adds bytes to the mint or to every token account, and every byte raises the rent-exempt deposit. Sizes come from the struct definitions in the token-2022 interface.
The current rent rate: no data yet. The page shows nothing rather than a guess.
Extension sizes
| Extension | On | Value bytes | Source file |
|---|---|---|---|
| Transfer fee | mint | 108 | transfer_fee/mod.rs |
| Mint close authority | mint | 32 | mint_close_authority.rs |
| Default account state | mint | 1 | default_account_state/mod.rs |
| Non-transferable | mint | 0 | non_transferable.rs |
| Interest-bearing | mint | 52 | interest_bearing_mint/mod.rs |
| Permanent delegate | mint | 32 | permanent_delegate.rs |
| Transfer hook | mint | 64 | transfer_hook/mod.rs |
| Metadata pointer | mint | 64 | metadata_pointer/mod.rs |
| Group pointer | mint | 64 | group_pointer/mod.rs |
| Group member pointer | mint | 64 | group_member_pointer/mod.rs |
| Scaled UI amount | mint | 56 | scaled_ui_amount/mod.rs |
| Pausable | mint | 33 | pausable/mod.rs |
| Immutable owner | account | 0 | immutable_owner.rs |
| Required memo on transfer | account | 1 | memo_transfer/mod.rs |
| CPI guard | account | 1 | cpi_guard/mod.rs |
| Transfer fee amount (withheld) | account | 8 | transfer_fee/mod.rs |
| Non-transferable account | account | 0 | non_transferable.rs |
| Transfer hook account | account | 1 | transfer_hook/mod.rs |
| Pausable account | account | 0 | pausable/mod.rs |
Plus 4 bytes per extension (u16 type, u16 length). Confidential-transfer extensions are left out: their size depends on encryption fields this page does not model.
FAQ
How big is a Token-2022 mint with extensions?
165 bytes (the base, padded to the size of a token account) + 1 byte for the account type + 4 bytes of type and length per extension + the extension's own data. A mint without extensions stays at 82 bytes.
Which extensions make token accounts bigger?
Transfer fee adds a withheld-amount field (8 bytes) to every token account, transfer hook adds 1 byte, non-transferable and pausable add zero-length markers, and accounts created through the associated-token program carry Immutable owner. Each entry also costs 4 bytes of header.
Why is the metadata size variable?
The token-metadata extension stores name, symbol and URI as length-prefixed strings plus optional extra fields, so its size depends on what you write.