Manager Contracts¶
The Manager Contracts serve as primary entry points for the Nestor Protocol, handling critical market operations including permission oversight, treasury functions, security issuance/transfer/settlement, and deposit attestations for NestorFundDepositTokens.
Four Core Manager Contracts¶
NestorPermissionsManager¶
This contract governs participant authorization within the protocol. It defines an enumeration of user types (PROTOCOL_TREASURY, PERMISSIONED_CUSTODIAN, etc.) and establishes which agents can register users and manage associated claims.
NestorTransferManager¶
Manages token transfers and collects transaction fees according to manager-configured schedules. The contract supports two operational modes:
onlyTreasury Mode: PROTOCOL_TREASURY executes exchanges via the exchangeTokens function, handling primary and secondary trades with optional fee collection.
Process:
1. PROTOCOL_ADMIN establishes transfer fees
2. PROTOCOL_TREASURY invokes exchangeTokens with transaction polarity
3. Transfer executes using ERC-3643-compliant IToken.forcedTransfer
onlyCounterpart Mode: Enables peer-to-peer bilateral trading through createTransferOffer, confirmTransferOffer, and cancelTransferOffer functions with optional protocol fees.
Process:
1. PROTOCOL_ADMIN sets transfer fees
2. Investor X creates offer via createTransferOffer
3. Investor Y confirms via confirmTransferOffer using IToken.transferFrom
NestorTreasuryManager¶
Manages minting, transferring, and burning of Nestor tokens:
- Minting: Creates Fund Deposit Tokens, Digital Security Tokens, and On-Chain Asset Tokens
- Management: Tracks existing tokens, prevents duplicates for same currency/IBAN
- Permissions: PROTOCOL_ADMIN initiates minting; PROTOCOL_TREASURY and valid agents handle subsequent supply increases, transfers, and burns
NestorAttestationManager¶
Provides proof-of-reserve attestations for NestorFundDepositToken underlying balances. Independent PERMISSIONED_FUND_ACCOUNTANT signers submit regular balance snapshots.
Attestation Fields:
| Field | Description |
|---|---|
| CASH_IBAN | Account IBAN |
| CURRENCY | 3-letter currency code |
| REPORT_START_DATE | Report period start |
| REPORT_END_DATE | Report period end |
| CASH_BALANCE | Balance at REPORT_END_DATE |
| LAST_TX_COUNTERPARTY_ID | Last transaction party ID |
| LAST_TX_TIMESTAMP | Last transaction time |
| LAST_TX_AMOUNT | Last transaction amount (credit positive, debit negative) |