An open protocol for issuing managed tokens on Solana.
Cardinal is a composable protocol for issuing conditional NFTs that are managed by the protocol. Using the invalidators and approvers in various ways allows for building rentals, in-game items, DNS services and more.
Carinal protocol provides a token-manager implementation as well as basic plugins for paid claim, permissioned transfer, and time invalidation. These plugins can be extended to support various use cases or similar ones built with entirely new logic for token handling the token invalidation.
Program addresses are the same on devnet, testnet, and mainnet-beta.
- TokenManager:
mgrMbgLbusR19KEKMa9WsYDAeL94Tavgc9JHRB1CCGz
- PaidClaimApprover:
pcaQ9jQLzb8VszyM6oPRoiGsdjizxMyvGjauhKPD5EF
- TimeInvalidator:
tmexpMz3HojAQ4i97rgaJYhPHM9hV6AzWmQ7EprRPGe
- UseInvalidator:
useB5qbYZgjE14qXxWx17Zm4JS5bzWrDcWXt3uBq62L
- RentalCounter:
cntQPZbfxBeLa8HVBbA4fApyAKh8mUxUVeaCjBLFSFP
Cardinal token-manager is made to be composable. It allows for plugins for
- Claim approvers
- Transfer authorities
- Invalidators
When instantiating a token-manager, the issuer can set a claim approver, transfer authority and invalidators that can control the claim, transfer and invalidate mechanisms. These are all plugins that can be pointed to any program-derived account or user owned account. Out of the box, there are basic plugins to power use and time rentals and subscriptions.
Documentation is a work in progress. For now, one should read the tests.
We soon plan on releasing a React library to make it easy to integrate Cardinal with your frontend.
Cardinal Protocol is licensed under the GNU Affero General Public License v3.0.
In short, this means that any changes to this code must be made open source and available under the AGPL-v3.0 license, even if only used privately.