Skip to content
Document

Governance system smart contracts overview

Partisia Blockchain is governed by a group of system smart contracts. The system contracts solve different types of tasks. Below the contracts are listed under a category and description of their overall responsibilities. Each contract description links to the contract on chain via the the Partisia Blockchain Browser. In the browser you can see the contract state and invoke the actions of the contract with your wallet.

Node operation

Node operators own and operate the nodes (servers) where the blockchain software runs. System contracts are needed for listing and staking for confirmed block producers, as well as for payment to node operators for the services they provide, votes on software updates and registration of new node operators.

Block producer orchestration contract

The Block producer orchestration (BPO) contract holds the information about block producers. In the state you can see the current and previous committees. You can see the timestamp showing the last committee change. Invoking the contract will change the committee if the current committee is more than a month old. See contract in browser

Block producer orchestration contract documentation

Fee distribution

The Fee distribution contract takes care of the payment for baker node services. Every node makes a list of how many signatures they have received from every other node. Roughly, the top ⅔ best performers in each list get a vote. If more than ⅓ producers vote for your node, then it will be paid in that epoch. See contract in browser

Fee distribution contract documentation

System update

The system update contract facilitates votes from committee members (confirmed and active block producers) on updates of on chain information, such as updates to governance contracts. There are manual and automated votes. Automated votes are yes votes by default unless actively changed by the individual node operator. Learn how to change the automated vote from yes to no for a specific vote. See contract in browser

System update contract documentation

Synaps KYC / KYB contract

The KYC contract validates block producer's personal information coming from the KYC provider before they can be confirmed as block producers and listed in the BPO contract. See contract in browser

Synaps KYC / KYB contract documentation

BYOC - The system of liquidity

On Partisia Blockchain you use coins from other chains (BYOC) as payment for transactions. PBC also allows users to transfer BYOC between accounts and contracts. BYOC system contracts controls allocations of nodes handling the transfers, withdrawals, deposits, price monitoring, staking of nodes and the audit of transfers done in each epoch.

Large oracle contract

Administrates and oversees work done by small oracles. This includes allocation of eligible nodes to serve in the small oracles, the tokens staked on oracle service and voting on all disputes regarding the small oracles' work with BYOC.
See contract in browser

Large oracle contract documentation.

Small oracles

Small oracles move funds (Deposit and withdrawal oracles) or check prices (Price Oracles). Each deposit and withdrawal oracle consist of 3 nodes selected by the Large oracle. There is a small oracle contract for each deposit and withdrawal oracle corresponding to the different coins supported on PBC. Price oracles can be supported by a large number of nodes, there is likewise a small oracle contract for each price oracle monitoring a price of a specific BYOC.

Price Oracles

Price oracles ensures accurate prices for specific BYOC. The nodes serving in price oracles get price data from Chainlink nodes. Price oracle explanation. The contracts responsible for the price oracles are below.
ETH Price Oracle
BNB Price Oracle

Price oracle contract documentation.

Deposit and withdrawal oracles

You see the oracle contracts handling deposits and withdrawals for BYOCs in the list of bridgeable coins. These contracts have a transfer limit controlling when the nodes providing the service will be rotated. The contract state shows which nodes serve the oracle and a list of the deposits or withdrawals they have completed.

Comprehensive list of deposit and withdrawal oracles on PBC and native chains of BYOC

Deposit oracle contract documentation.

Withdrawal oracle contract documentation.

BYOC orchestration

Facilitates the deployment of new price, deposit and withdrawal oracles. See contract in browser

BP Orchestration contract documentation.

MPC tokens

MPC tokens are the native tokens of PBC. They are used by node operators and other token holders for staking on a service provided by a node. Tokens can be confiscated in case of malicious behavior and be used for dispute settlement. Staked tokens incentives honest and reliable node services. Read more about MPC tokens

MPC token contract

Facilitates the change of state (location, association, staking, vesting) of MPC tokens as well as transfer of MPC tokens between accounts. MPC tokens are always associated with the MPC token balance of a specific account or contract. You can learn more about MPC tokens and their properties in the MPC token model.

MPC token contract documentation.

MPC MPC20 contract

Facilitates transfers of MPC tokens between accounts or contracts. Note that the "MPC token" contract does not allow transfers to and from contracts. This contract uses the standard of MPC-20

MPC MPC20 contract documentation

Public smart contracts and Zero Knowledge smart contract

Users can deploy two types of smart contracts, public contracts and zero knowledge contracts. Node operators can register their nodes for ZK services. ZK calculations requires the allocation of 4 registered nodes to handle the secret calculation. You have the ability to deploy your own smart contracts with WASM Deploy and ZK Deploy.

ZK Deploy

Responsible for the deployment of new ZK smart contracts. See contract in browser

ZK Deploy contract documentation.

ZK Node Registry

Handles registration of new ZK nodes, as well as disputes and allocation to specific ZK jobs. See contract in browser

ZK Node Registry contract documentation.

ZK Preprocess

Preprocesses data prior to use for secure multiparty computation by currently allocated ZK nodes. See contract in browser

ZK Preprocess contract documentation.

WASM Deploy

Facilitates deployment of public smart contracts. See contract in browser

Public deploy contract documentation.

Foundation

Partisia Blockchain foundation provide incentives for node operators in form of token rewards. The incentives depend on initial time and size of investment as well measured scores of reliability and trust. The foundation raise funds for infrastructure through the sale of tokens. These two tasks are handled by following system contracts. Read more about PBC foundation

Foundation Eco-System

Allows foundation members to release remaining tokens from the Eco-system pool to incentivize further growth of the infrastructure and expansion of services. See contract in browser

Foundation eco-system contract documentation

Foundation Sale

Facilitates the sale of MPC tokens. See contract in browser

Foundation sale contract documentation (Same as foundation eco-system)