Smart contracts
Smart contracts are digital contracts that use blockchain technology to execute and enforce the terms of an agreement. The Nexera Interoperability Protocol smart contract is a EIP-2535 diamond contract that is responsible for the transmisson of messages between dApps on different networks. One of the key benefits of this contract is that it can be upgraded with new functionalities without the need to redeploy the whole contract (thus changing its address).
Notice: This page is under construction.
Members
Currently, active Nexera Interoperability Protocol validators are referred to as "members" in the contracts. An initial set of members is set up during contract deployment and all member updates (additions and removals) after that requires [n/2;n) signatures, where n is the current size of the members set. Member updates after deployment are performed using the updateMember
function (Router).
The following message is expected to be signed by the validators for member updates:
keccak256(abi.encode(account, status, administrativeNonce))
account
is the address of the member being added/removedstatus
is a boolean denoting whether this is a remove or an add operationadministrativeNonce
is a nonce used for all administrative actions and can be retrieved using theadministrativeNonce
function.
Fees and rewards
The Nexera Interoperability Protocol charges a small fee in native coin for every bridging transaction, which is distributed among all currently active members. The fee amount is set upon deployment.
The fee amount can be changed using the setServiceFee
function from the FeeCalculator facet. The following message is expected to be signed by the Nexera Interoperability Protocol validators for fee amount updates:
keccak256(abi.encode(oldFee, newFee, administrativeNonce))
oldFee
is the current fee amountnewFee
is the fee amount that will be set using these signaturesadministrativeNonce
- self-explanatory
Validator rewards are equally distributed among all validators at the start of every bridging transaction (lock/burn transactions) and accumulated separately for every member. Members can claim their rewards at any time using the claim
function from the FeeCalculator facet.