Overview
Purpose
Tags are assigned to addresses by application administrators through the application manager contract. A maximum of 10 Tags per address are stored as bytes32 in the Tags data contract. This data contract is deployed when the app manager is deployed. The Tags data contract can be migrated to a new application manager during an upgrade to maintain tagged address data. App administrators can migrate data contracts to a new app manager through a two step migration process.
The protocol uses tags to assess fees and perform rule checks for tag-based rules. A user’s transactions will be subject to tag-based rules based on the tags assigned to that user. For example, users with “TagA” may have a max balance limit of 1000 protocol supported tokens where users with “TagB” may have a 10,000 token limit, and users with “TagC” may have no limit at all.
Rules may utilize a “blank tag” where no specific tag is provided to the protocol when the rule is created. These rules will apply to all users of the protocol supported token that do not have a tag assigned to them. For example, if an Account Min/Max Token Balance rule is active with a blank tag, every user that is not assigned a tag for that rule will be subject to the minimum and maximum limits of that rule.
Tags are also used for the assessment of fees within the protocol. When activated, fees are additive and will be assessed for each tag an address has stored.
Scope
Tags can be applied to individual accounts or addresses of contracts. Tags are used to assess fees or facilitate tagged rule checks throughout the protocol. When an account (user) is tagged, they will be subject to all rules that are active that utilize that tag.
see TAGGED-RULES
Enabling/Disabling
- Tags can only be added in the app manager by an app administrator.
- Tags can only be removed in the app manager by an app administrator.