Multi-Tier Permissioning
Protocol Permissions System
NashPoint implements a multi-tiered permissioning system where protocol-level governance controls which contracts can be used, routers control which components can be integrated, and Node owners select from these approved options. This ensures security while maintaining Node owner autonomy over their strategy.
Registry Level (Top)
Registry Owner controls global whitelist of valid contracts:
function setRegistryType(address addr, RegistryType type_, bool status) external onlyOwner {
if (type_ == RegistryType.UNUSED) revert ErrorsLib.InvalidRole();
if (type_ == RegistryType.NODE) revert ErrorsLib.NotFactory();
roles[addr][type_] = status;
}Types: ROUTER, QUOTER, REBALANCER, FACTORY
Router Level (Middle)
Registry owner controls which components each router can use:
function setWhitelistStatus(address component, bool status) external onlyRegistryOwner {
isWhitelisted[component] = status;
}Node Level (Bottom)
Node owners can only add protocol-whitelisted services:
No Forced Upgrades
The Registry Owner can revoke protocol-level permissions for routers, rebalancers, quoters, and components. However, these changes only affect future additions - any Node's existing configuration continues to function normally. This ensures Node owners maintain full control over their strategy and cannot be forced to upgrade or change their Node's setup.
Node operations don't check current registry status:
Router operations don't re-check registry status:
Component operations continue after whitelist removal:
Adding Components & Routers
To correctly configure a Node to use new Routers and Components follow this guide:
Last updated