Technical Overview
How are we creating our network of nodes and global liquidity layer
Last updated
How are we creating our network of nodes and global liquidity layer
Last updated
NashPoint's architecture is built around the interaction of three central contracts: NodeFactory, Node, and Escrow. Here's how they work together:
The process starts with the NodeFactory contract.
When an asset manager wants to create a new investment strategy, they call the create() function on the NodeFactory.
The NodeFactory deploys a new instance of the Node contract with the specified parameters.
This new Node is now ready to accept deposits and manage investments.
Users interact primarily with the Node contract for deposits and withdrawal requests.
Users call the deposit() function on the Node, which mints shares representing their stake when depositing.
For withdrawals, users first call requestRedeem() on the Node.
When a user requests a withdrawal, the Node contract transfers the shares to its associated Escrow contract.
The Escrow holds these shares securely until the withdrawal is processed.
When the withdrawal is ready, the Node contract instructs the Escrow to release the assets to the user.
The rebalancer is a trusted role, set by the node owner, interacts with the Node contract to manage investments.
Entities who wish to act as a rebalancer must by whitelisted by the NashPoint protocol.
The rebalancer uses functions like investInSyncVault() and investInAsyncVault() to allocate assets to different strategies.
It also processes pending withdrawals using fulfilRedeemFromReserve().
Synchronous Asset Management
To access liquid investment the Node will execute functions on the Synchronous Assets Module
This allows a Node to allocate to any ERC-4626-compliant vault using the standard deposit() and withdraw() functions.
Positions in each of the assets is tracked on the Node contract
For less liquid investments (asynchronous assets), the Node contract will execute functions on the Asynchronous Assets Module
This allows the Node to invest to any asset that meets the fully asynchronous ERC-7540 standard with non-fungible redeem requests (e.g. requestId = 0).
This allows for delayed processing of deposits and withdrawals, managed through a series of request and claim functions.
The Node contract includes a swing pricing mechanism to protect against speculative liquidity withdrawals.
This affects the share price calculation in the deposit() and requestRedeem() functions, adjusting prices based on the node's current liquidity state.
By orchestrating these contracts and mechanisms, NashPoint creates a flexible system for managing diverse investment strategies while maintaining liquidity and protecting investor interests.