Architecture Components
Last updated
Last updated
Description: A multi-signature contract controlled by all Neura validators, used to securely execute critical on-chain transactions — such as distributing ANKR from the Neura Vault — once a threshold of validator signatures is collected via the SafeTxnAggregator.
Purpose: Manages secured execution of on-chain transactions, such as transferring tokens from the Neura Vault. All validators are owners of the Safe, and their signatures are aggregated through the SafeTxnAggregator to meet the multisig threshold for execution.
Control:
Controls access to the Neura Vault and any associated system-level transactions.
Defines the active validator set, as all validators are included as Safe multisig owners.
Functions:
execTxn
: Executes transactions once quorum is met.
getOwners()
: Returns the current active validator set.
Description: A coordination service that collects and aggregates validator signatures for Safe multisig transactions. Acts as the intermediary between validator add-ons and the Safe multisig.
Purpose: Facilitates multisig transaction flow by allowing validator add-ons to propose transactions and submit signatures. Once a threshold of validator signatures is reached, the aggregator submits the transaction to the Safe multisig for execution.
Control:
Coordinates transaction proposals and signatures from validator add-ons.
Does not sign or execute transactions itself — it facilitates submission to the Safe once quorum is reached.
Functions:
proposeTxn
: Submits a transaction proposal.
signTxn
: Allows validators to sign the proposed transaction.
Internally manages collection, aggregation, and submission of signatures to the Safe Multisig.
Description: The central holding contract for all ANKR tokens on the Neura chain. It is controlled by the Safe multisig and is used to distribute pre-minted ANKR based on validated bridge transactions.
Purpose: Holds and manages the supply of ANKR tokens on Neura. Transfers from the Vault are executed only via the Safe multisig once validator signatures have been aggregated and approved through the SafeTxnAggregator.
Control:
Fully controlled by the Safe Multisig.
All ANKR tokens that will ever exist on Neura are pre-minted into the Vault and validator accounts at network launch.
Functions:
Transfer: Executes token transfers on command from the Safe Multisig.
Description: A smart contract deployed on Ethereum and BSC that acts as the entry point for bridging ANKR tokens to Neura. It locks tokens on the source chain and emits events that initiate the cross-chain transfer process.
Purpose: Receives ANKR deposits from users who want to bridge tokens to Neura. Once tokens are locked, the contract emits a standardized event that is observed by the Indexer and relayed to Neura validator add-ons for validation and processing.
Functions:
Deposit: Receives ANKR tokens from users.
Claim: Releases tokens during outbound bridge operations.
Mechanism:
Accepts ANKR transfers.
Locks the tokens in the bridge contract.
Emits an event that is picked up by the Indexer.
Description: A helper module attached to each Neura validator’s Besu node. It observes bridge-related events, processes bridge messages, signs them using the validator’s key, and submits signatures to the appropriate destination (SafeTxnAggregator or Neura Bridge contract).
Purpose: Enables validator participation in cross-chain bridge operations. The add-on is responsible for monitoring events, signing bridge messages, and ensuring they are relayed correctly for either multisig execution (inbound transfers) or validator approval (outbound transfers).
Control:
Runs alongside each validator’s Besu node with access to the validator's private key.
Operates autonomously per validator, but follows coordinated logic based on the observed chain events and bridge contract rules.
Functions:
Tracking:
pending deposits
pending withdrawals
Submission:
Deposits: Processes, signs, and submits bridge messages to the SafeTxnAggregator for inbound transfers.
Withdrawals: Processes, signs, and submits approvals to the Neura Bridge smart contract via approveTransfer for outbound transfers.
Capabilities:
Has access to the validator’s private key.
Connects to the Indexer to monitor events from all three chains (Ethereum, BSC, and Neura).
Submits signed transactions via the Neura RPC interface:
To the SafeTxnAggregator for multisig coordination.
To the Neura Bridge smart contract for approval of outbound transfers.
Description: The smart contract on Neura that manages outbound bridge transfers. It receives ANKR tokens from users, constructs a message hash, stores it on-chain, and collects validator approvals to finalize cross-chain withdrawals.
Purpose: Serves as the interface for users bridging ANKR from Neura to Ethereum or BSC. It ensures all outbound transfers are securely approved by a threshold of validators before users can claim their tokens on the destination chain.
Functions:
bridge(recipient, chainId) payable
Receives ANKR transfers.
Transfer the ANKR tokens to the system vault contract.
Generates a message hash and stores it in the smart contract state:
Emits a BridgeRequested
event to signal the withdrawal.
approveTransfer(bytes hash, bytes signature) onlyValidator
Receives and stores signatures from validators.
Once the required threshold is reached, emits a BridgeTransferApproved
event, enabling redemption on the destination chain.
Description: A monitoring service that watches for bridge-related events across Ethereum, BSC, and Neura, and relays them to the validator add-ons to trigger appropriate signing workflows.
Purpose: Acts as the event gateway for validators. The Indexer ensures that validator add-ons are reliably and consistently informed of relevant BridgeRequested or BridgeTransferApproved events across all supported chains, enabling timely processing of bridge messages.
Responsibilities:
Listens to deposit/claim events on Ethereum and BSC.
Relays events to validator add-ons.
Enables validators to track cross-chain transfers in a consistent and timely manner.