Core Contracts

This document provides a detailed overview of the Noderr Protocol's core smart contracts, including their public interfaces and functions.


Vaults

The user-facing vaults are six per-tier vaults built as EIP-2535 Diamonds implementing the ERC-7540 asynchronous tokenized-vault standard. They are live on Base Sepolia and denominated in tUSDC, the underlying asset, which is mintable through a public faucet. Each vault uses a two-bucket design: a principal-protected Floor bucket and a Trading bucket.

For deployed contract addresses, see Contract Addresses.

Fee Model

Every vault charges a 0% management fee. The only fee is a performance fee, assessed on the high-water mark (NAV per share above its prior peak), charged only from the Trading bucket — never from the principal-protected Floor — and only on returns above a per-vault soft hurdle.

VaultManagement feePerformance feeSoft hurdle
Conservative0%10%4%
Moderate0%15%6%
Aggressive0%20%8%
Hedged0%15%4%
Inverse0%20%8%
Configurable0%15% (DAO-configurable)6%
Prediction Markets0%25%15%

The Prediction Markets vault is planned and not yet deployed.

Functions

Vaults follow the ERC-7540 asynchronous request → fulfill → claim lifecycle:

  • deposit(uint256 amount): Deposits the specified amount of the underlying asset (tUSDC) into the vault.
  • withdraw(uint256 amount): Requests the redemption of the specified amount of vault shares.
  • claim(): Claims redeemed funds once the withdrawal request has been fulfilled.

StakingManager

Functions

  • stake(uint256 amount): Stakes the specified amount of NODR tokens.
  • unstake(uint256 amount): Initiates the unstaking of the specified amount of NODR tokens.
  • claimRewards(): Claims accumulated staking rewards.

TrustFingerprint

Functions

  • getScore(address user): Returns the TrustFingerprint score for the specified user.
  • updateScore(address user, uint256 newScore): Updates the score for the specified user. Restricted to authorized scorer roles (e.g., SCORER_ROLE) held by Guardian/Oracle-tier operators.

Governance

The on-chain DAO handles node/oracle elections and protocol parameter votes. It is not the administrative authority over the core contracts: upgrade and admin authority sits with a 2-of-3 Gnosis Safe acting through a MultiSigTimelock with a 7-day delay, which holds DEFAULT_ADMIN and UPGRADER over the core contracts.

Functions

  • propose(...): Submits a new governance proposal.
  • castVote(uint256 proposalId, bool support): Casts a vote on the specified proposal.
  • execute(uint256 proposalId): Executes a passed proposal.

NodeAdmissionController

For deployed contract address, see Contract Addresses.

Overview

Node admission on Noderr is permissionless self-registration. Prospective operators register themselves directly through the NodeAdmissionController by satisfying the network's on-chain requirements; there is no off-chain application, pre-approval, whitelist, or gatekeeper. This model replaces the earlier gated onboarding flow and its NodeRegistry-as-gatekeeper dependency, both of which have been removed.

How It Works

Registration completes on-chain, with no manual approval step, once an operator meets the requirements enforced by the controller:

  • Stake requirement: the operator posts the NODR stake for the chosen tier — 0 / 25,000 / 50,000 / 150,000 NODR for the Micro / Validator / Guardian / Oracle tiers respectively. These are protocol-provided, 24-month-locked allocations.
  • TrustScore floor: the operator must meet the on-chain TrustScore admission floor for the tier — 0.70 (Validator), 0.80 (Guardian), and 0.90 (Oracle).

Oracle-tier participation additionally requires election through the on-chain governance process: an operator self-nominates with a qualifying TrustScore, and only current Oracles vote on admission.

After joining, every operator is subject to the same performance monitoring, TrustScore stay-in floors, and slashing conditions as all others.

results matching ""

    No results matching ""