KIP Ecosystem Core Contracts
KIP Ecosystem Protocol (smart contracts) consist of:
KIPManagementContract:The contract is used as the
KIP Ecosystem Governancecontract.Manages the
Treasurywallet that receives incoming fees.Manages the payment acceptance token used in the Ecosystem.
Manages a list of special actors granted special privileges in the Ecosystem.
DEFAULT_ADMIN_ROLE:Manages settings in the
KIPManagementcontract.Has the authority to grant/revoke other roles.
Has the authority to set/revoke roles for itself.
Has the authority to set
Treasurywallet.Has the authority to set payment acceptance token.
OPERATOR_ROLE:Has the authority to perform special tasks, such as managing contract settings.
MINTER_ROLE:Has the authority to mint NFT items (e.g., KIP Identification).
KIPIdentificationcontract:The contract is used to manage identities in the KIP Ecosystem.
Currently, there are three types of users:
App Owner(e.g., idType = 1)Model Owner(e.g., idType = 2)Dataset Owner(e.g., idType = 3)
Each identity is represented by an NFT using the
ERC-721standard.Identities are transferable and tradable.
The contract uses
ERC721URIStorage, implemented by OpenZeppelin, which offers:Each
tokenIdcan have its own customtokenURIthat links to its metadata.The
ownercan easily update the URL as needed.
KIPRegistrationcontract:The contract is used to manage identification registration.
Assigned the
MINTER_ROLEso it can generate Identity NFTs.Currently, the contract manages three types of registration:
App Register:
mintApp()functionModel Register:
mintModel()functionDataset Register:
mintData()function
KIPServicecontract:The contract is used to manage payment-related features in the Ecosystem.
As the
User:Call
payment()to make a payment for oneappId.
As the
App Owner | Model Owner | Dataset Owner:Set/Update a listing price for their items.
Set/Update a payment pool that will receive accumulated revenues generated by their items.
The
payment poolcould either be:An
Externally Owned Account(EOA) if the owner doesn't need to share a profit.A contract (e.g.,
Multisig WalletorPayment Splitter) if the owner wants to share the profit with a limited number ofshareholders.A special contract, implemented and deployed by the owner, that handles effective profit-sharing among a large list of
shareholders.It's updatable by the
tokenId's owner.
Accumulated
revenuespertokenIdare claimable by calling theclaimRevenue()function.The commission fee will be accumulated and stored in the contract (
accumulatedFee).The
accumulatedFeeis claimable by callingclaimFee()function
Last updated