🤖Asset Controller Program
Last updated
Last updated
The Asset Controller Program (ACP) serves as the control unit for the protocol. For permissioned assets to exist, a central program needs to be responsible for distribution, managing data, and maintaining the registry of identity information.
The ACP program mints a new asset using the Token-2022 standard with transfer hook extension. It delegates authority functions to a PDA generated from an asset identifier and issuer identifier. All transactions that modify the distribution of tokens (mints, burns, transfers) undergo a transaction approval check. This check is performed by a PDA written to by a delegated account to ensure compliance with external requirements. The Transfer Hook extension interface introduces the ability to create mint accounts that execute custom instruction logic on every token transfer and therefore enabling standardized policy checks. Policy checks are a crucial component to maintain the composability of newly issued assets that come with a variety of transfer restrictions.
As previously mentioned, the program implements the Transfer Hook Interface. Therefore, on every transfer the handler function processes asset transfers, incorporating identity checks, data validation, and policy evaluation. It verifies user identity levels to potentially skip policy enforcement, iterates over policies to enforce rules, and updates transfer history accordingly. It ensures secure and efficient asset transfers while maintaining integrity and compliance with defined policies.
At a high level, the following image is what the transfer looks like.
For more technical specifications, the following section highlights important information regarding how the transfer hook specifically works.
Below is a more detailed diagram of how transfers work.
For even more detail, please reference the program.