Narok Fund Whitepaper
This paper explains how Narok.finance coordinates the Narok contracts and the automated Balancer strategies to keep NK tokenization on Base secure, auditable and accessible.
Quick summary: Depositing USDC mints NK shares through an ERC‑4626 vault. Narok.finance manages mint/redeem cycles, fee accrual and NAV reporting while Balancer orchestrates strategy execution and liquidity buffers. Full data is published via the Transparency & audits tab.
Overview
Narok Fund is an on-chain vehicle that preserves capital and sources yield from blue-chip crypto exposures. The single ERC‑4626 vault on Base issues NK shares which always reflect the vault’s NAV after Balancer executes the investment mandate. The web UI, scripts and smart contracts operate under one roof there is no parallel interface.
- Base Mainnet is selected for low fees, Coinbase tooling and full compatibility with the OP Stack.
- Suggested allocation floor is US$ 10k per wallet; the UI enforces configurable limits while the chain enforces nothing beyond vault arithmetic.
- Liquidity for exits is provided through the official redeem path; DEX pools remain optional after initial MVP.
Deployment & emission
Deployment is handled via Ape, using the same Base RPC configured in production. The script loads either an Ape alias or a bare private key, enforces the admin wallet (also used for the 2% admin fee) and deploys the NKVault with the Base USDC reference.
import os
from dotenv import load_dotenv
load_dotenv()
BASE_RPC_URL = os.getenv("BASE_RPC_URL")
if BASE_RPC_URL:
os.environ["WEB3_HTTP_PROVIDER_URI"] = BASE_RPC_URL
from ape import accounts, project
from ape.logging import logger
ApeAlias = os.getenv("APE_ACCOUNT_ALIAS")
PRIVATE_KEY = os.getenv("PRIVATE_KEY")
ADMIN_WALLET = os.getenv("ADMIN_WALLET") or os.getenv("TAX_ADM")
USDC_ADDRESS = os.getenv("USDC_ADDRESS", "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913")
def main():
...
This keeps RPC, admin and USDC addresses centralized, ensuring the deployed vault matches the site’s configuration and emits NK as described in the contract below.
Narok Vault (ERC‑4626)
The vault tracks USDC deposits, external asset valuations and fee accruals through a single ERC‑4626 implementation. Key features include:
- USDC-backed mint/redeem with 2% yearly fee streamed every block to the admin wallet.
- Total assets = USDC balance + reported external NAV (cbBTC, cbETH, AAVE, LINK, CRV, CAKE, AERO, etc.).
- Fee accrual only happens when the vault activity calls
deposit,redeemoraccrueFee.
NK token (shares)
NK inherits the USDC decimal precision and represents a proportional ownership of the vault’s total assets. Supply is minted on deposit and burned on redemption, ensuring NK per share equals NAV per share.
Balancer Engine
Balancer rebalances the vault’s holdings, shifting capital among strategies aligned with yield, liquidity, or hedging goals. Narok.finance updates the vault’s externalNavUsd before each rebalance to reflect the off-chain exposures.
Narok.finance orchestrator
Narok.finance triggers mint/redeem, fee capture and NAV reporting while presenting a single interface for investors. Every internal script (Ape, Python) and UI integration passes data to integrations/onchain.php so the site reflects on-chain truth.
Base Network connectors
Contracts, token data and Balancer integrations rely on Base RPCs. Etherscan V2 and the Base RPC ensure share transfers, swaps and vault balances are verifiable with the same RPC URL described in the deployment script.
Operational flow
Investors deposit USDC, mint NK, and the vault stores USDC plus reported external assets. Narok.finance triggers Balancer to adjust strategy weights while investors monitor the on-chain movements modal for mints/redeems. The admin can pause or call accrueFee as needed.
Fees, limits & liquidity
A 2% annual fee (200 BPS) accrues continuously and flows to the admin wallet. Suggested issuer policies include a 7-day recommended lock-up and configurable per-wallet caps. The vault keeps a 20% liquidity buffer for immediate redeems.
Transparency & audits
Status of the Narok Vault and Balancer contracts, on-chain metrics, and fund audits (data via Etherscan API V2). Everything displayed is verifiable on-chain using the same Base RPC configured for deployment.
Contracts
Narok Vault (ERC‑4626) • Stable
Balancer Engine • Synced
Base Mainnet • updated 17/11/2025 17:36:26
Networks (read-only)
Immutability enforced by Base RPC; UI disables interactions for unsupported chains.
Audit findings
Official findings will be published once the next on-chain audit round concludes. The only open action was a transaction edit awaiting confirmation; we already rerouted the signed swap to the verified contract address and documented the fix below.
Verification & reports
Verification reports capture the resolved issue above. All other contracts, fees, liquidity buffers and NK movements have been audited through on-chain proofs and aligned with the Base RPC data.
Governance & compliance
A multi-sig with time-lock governs upgrades. A committee approves parameter changes (fees, limits, whitelists) while an audit team monitors logs and may pause activity. Narok.finance handles regulatory reporting via the admin wallet (also the tax admin).
Technical references
- Core contracts:
/Narok/contractsimplementing ERC‑4626 + ERC‑20. - Scripts: deployment and management scripts live under
/Narok/scriptsand/Balancer/jobs. - On-chain sync utilities:
/integrations/onchain.phpand front-end watchers use the same Base RPC as deployment. - UI is Tailwind-based with custom accessibility helpers; navigation uses the refreshed summary above.