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))
accountis the address of the member being added/removedstatusis a boolean denoting whether this is a remove or an add operationadministrativeNonceis a nonce used for all administrative actions and can be retrieved using theadministrativeNoncefunction.
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))
oldFeeis the current fee amountnewFeeis 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.