📩Program Overview

Medici Program Suite

The Medici Programs suite encompasses various essential functionalities for managing assets within the Solana blockchain ecosystem. The Asset Controller Program (ACP) facilitates core asset management operations, offering standardized transfer controls and transaction privacy. In conjunction, the Policy Engine Program (PEP) acts as an on-chain policy enforcer, ensuring compliance with identity-level restrictions on transactions. Alongside, the Identity Registry Program (IRP) provides configurable identity issuance and tracking to enable on-chain transaction permissioning, designed for support of diverse regulatory frameworks. Finally, the Asset Data Registry Program (DRP) facilitates the ledgering of generic asset data, including legal documentation and off-chain references. The design of the programs was driven by the following key considerations.

Key Considerations

Configurability: The asset classes, applications, and regulatory frameworks that impact the management of assets is ever-growing. This necessitates an opinion-minimized standard focused on flexible and useful primitives.

Composability: The standard should minimize overhead for agnostic Solana programs to read and execute asset transactions (outside of issuer-established restrictions). The standard should also have an account structure that doesn't complicate future functionality extensions.

Cost: The longevity of the standard is dependent on minimizing the compute-related transaction costs due to compute, account size-related state management costs, and indexer and contract-related maintenance costs.

Understanding Permissioned Assets

At its core, Medici enables permissioned markets. When creating an asset controller, two crucial fields are owner and delegate.

The owner typically represents the issuing organization, possessing the authority to update the delegate responsible for managing permissions. However, both the owner and delegate hold equivalent permissions, enabling them to attach, remove transfer controls, revoke, or freeze the asset.

For instance, let's consider Circle issuing a 10-year bond on the blockchain. If the SEC needs the capability to revoke the asset, the SEC's public key would serve as the delegate, while Circle would act as the owner. Although permission by Circle and the SEC, the SEC can freeze the asset on-chain promptly if needed.

Typescript SDK and Program Overview

The SDK helps to abstract the four programs into a manageable, linear instantiation process. The following diagrams demonstrate how the SDK works with the program to create and issue a real-world asset token.

For a comprehensive guide, please see Meidic Quickstart.

Last updated