NashPoint
NashPoint
  • Introduction
    • Introduction To Nashpoint
    • Current Features & Capabilities
    • Post Launch Roadmap
  • User Documentation
    • Node Contract Overview
    • Node Owner & Rebalancer Roles
    • Portfolio Management
    • Rebalancing & Strategy Execution
    • User Deposits & Shares
    • Asynchronous Redemptions
      • Two Step Process
    • Swing Pricing
    • Processing User Redemptions
    • Management & Execution Fees
  • Developer Documentation
    • Overview
    • Role-Based Access Control
    • Smart Contract Architecture
  • Routers
    • ERC-4626 Router
    • ERC-7540 Router
    • Router Tolerance
  • Creating A Node
  • Asynchronous Redemptions
  • Managing a Node
    • Adding & Removing Components
    • Updating Component Allocations
    • Rebalance Window & Cooldown
    • Rebalancing a Node
    • Managing Rebalancers
    • Processing User Redemptions
      • Reserve vs Component Fulfillment
    • Reserve Management
    • Fees Configuration
    • Liquidation Queue Configuration
    • Max Deposit Limits
    • Operator Permissions
    • Emergency Controls
  • Upgrading a Node
    • Adding Quoters & Routers
    • Custom Router Development
    • Multi-Tier Permissioning
  • Cached Data & Gas Efficiency
  • Swing Pricing Calculations
  • Adding Routers and Components - Step by Step Guide
  • Node Execute Function
  • Resources
    • FAQ
    • Glossary
    • Supported Networks & Protocols
    • Deployments
    • Audits
    • GitHub
    • Telegram
    • NashPoint
  • Node Strategies
    • Test Node A
Powered by GitBook
On this page
Edit on GitHub
  1. Managing a Node

Managing Rebalancers

Managing Rebalancers

Rebalancers must first be whitelisted at the protocol level before they can be added to individual Nodes.

Protocol Level

// Protocol owner whitelists rebalancer
registry.setRegistryType(rebalancerAddress, RegistryType.REBALANCER, true);

Node Level

// Add rebalancer to Node
function addRebalancer(address newRebalancer) external onlyOwner {
    if (isRebalancer[newRebalancer]) revert ErrorsLib.AlreadySet();
    if (!registry.isRegistryType(newRebalancer, RegistryType.REBALANCER)) {
        revert ErrorsLib.NotWhitelisted();
    }
    isRebalancer[newRebalancer] = true;
}

// Remove rebalancer from Node
function removeRebalancer(address oldRebalancer) external onlyOwner {
    if (!isRebalancer[oldRebalancer]) revert ErrorsLib.NotSet();
    isRebalancer[oldRebalancer] = false;
}

Constraints

  • Only Node owner can add/remove rebalancers

  • Cannot add zero address

  • Cannot add already-set rebalancer

  • Cannot add non-whitelisted rebalancer

  • Cannot remove non-existent rebalancer

Important Notes

  • A Node without any rebalancers cannot execute rebalances or fulfill redemptions

  • Best practice: Maintain at least one active rebalancer at all times

  • Removing all rebalancers will not affect existing positions but will prevent:

    • Starting new rebalances

    • Fulfilling redemption requests

    • Investing in or liquidating from components

PreviousRebalancing a NodeNextProcessing User Redemptions

Last updated 2 months ago