Thanks for the question. You have a couple of options here:
- If it's just a matter of permission changes, you can use custom permissions (e.g. high1) to control the privileges of any particular address and check them in a filter using the verifypermission callback.
- For other metadata, consider using the asset reissuance pattern (issuemore), which allows new metadata to be added to the asset by those who have permission to do so. This metadata can be retrieved by filter from the list of issuances using the getassetinfo callback with verbose=true. The only drawback here is that this list of issuances will get long if there frequent changes to this metadata, and eventually this will slow down the filter.
In case you didn't see it, the MultiChain Web Demo gives you an easy way to experiment with filters and callbacks, and test them out on transactions.
Do either of these methods work for you? If not could you say something about the content and size of this metadata and how often you expect it to change? I ask because we are looking into adding a purpose-built mechanism for this kind of filter-affecting metadata in the next protocol upgrade.