Narok • Crypto fund on Base

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, redeem or accrueFee.

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)

ETH Base Sepolia Optimism

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/contracts implementing ERC‑4626 + ERC‑20.
  • Scripts: deployment and management scripts live under /Narok/scripts and /Balancer/jobs.
  • On-chain sync utilities: /integrations/onchain.php and front-end watchers use the same Base RPC as deployment.
  • UI is Tailwind-based with custom accessibility helpers; navigation uses the refreshed summary above.