Skip to main content

Crypto fund NAV calculation from onchain holdings

What is crypto fund NAV calculation from onchain holdings?

Crypto fund NAV calculation from onchain holdings is working out a fund’s net asset value (NAV) from what its wallets and vault positions held at the valuation cut-off, read from the chain as of that moment.

Asset managers, tokenization platforms and custodian banks pin the holdings to the cut-off because balances keep changing after it, and a figure read late values a different portfolio from the one the NAV is struck on.

Goldsky finds the last block before the cut-off on each chain and reads every holding at that block on schedule; your pricing source values the positions and your fund administrator strikes and reports the NAV.

Who runs crypto fund NAV calculation from onchain holdings?

Crypto fund managers, issuers of tokenized funds and custodian banks that hold fund assets onchain, together with their fund administrators.

How crypto fund NAV calculation from onchain holdings works

The diagram follows one valuation from the scheduled run at the cut-off to the NAV your team reports, and shows who does each step. Your setup may differ.

Your business, step 1: Set the valuation pointDate and time holdings are valued
Goldsky, step 2: ComposeStart at the cut-offA scheduled task runs at valuation time
Goldsky, step 3: FeedsFind the cut-off blockLast block before the cut-off, per chain
Your business, step 5: Price the holdingsYour pricing source values each position
Goldsky, step 4: EdgeRead holdings at that blockWallet and vault balances, by eth_call
Your business, step 6: Fund administratorStrike the NAVThe fund administrator calculates it
Your business, step 7: Report NAVTo investors, or published onchain
  • Goldsky
  • Your provider

How to calculate crypto fund NAV from onchain holdings

A scheduled task runs at the valuation cut-off, finds the last block before it on each chain and reads every wallet and vault balance at that block. The holdings go to your pricing and your fund administrator.

What you’ll need

  • Goldsky Compose
  • Goldsky Feeds
  • Goldsky Edge
  • A list of the fund’s wallets and vault positions on each chain
  • A pricing source for each asset
  • A fund administrator who strikes the NAV
  • Somewhere to keep each run’s holdings
  1. Set the valuation point

    A NAV is struck as of one moment, so the fund has to fix that moment and what it covers.

    The fund documents fix the valuation time, and your team keeps the list of wallets and vault positions in scope. A position left off the list is left out of the NAV.

  2. Start the valuation at the cut-off

    Handled by Goldsky Compose

    The read has to happen at the valuation time every period, without depending on someone remembering to run it.

    Run the valuation on a fixed schedule set to the cut-off, and keep each run’s inputs and results. A run started by hand drifts from the cut-off and leaves no record of what it saw.

    With Goldsky, a Compose task can run on a cron trigger set to your valuation time, and every call it makes during the run is logged against that run.

    Schedule a task with cron (opens in a new tab)
  3. Find the cut-off block on each chain

    Handled by Goldsky Feeds

    Chains count time in blocks, so the cut-off has to be turned into a block number on every chain the fund holds assets on.

    Take the last block at or before the cut-off on each chain. Using the first block after it pulls in transactions that belong to the next valuation.

    The Feeds blocks endpoint returns the newest block at or before a Unix time when you pass timestamp_lte with sort=number_desc.

    Turn a time into a block (opens in a new tab)
  4. Read holdings at that block

    Handled by Goldsky Edge

    Holdings have to be what the fund held at the cut-off, not what it holds when someone checks.

    Read each wallet’s token balances and each vault position at the cut-off block on its chain. A balance read at the latest block includes trades made after the valuation point.

    Edge RPC runs eth_call at the block number you pass, so each balanceOf or vault read returns the position as it stood at the cut-off.

    Read state at a block (opens in a new tab)
  5. Price the holdings

    Token amounts become a value only when each one has a price as of the same cut-off.

    Your pricing source values each position at the valuation time under the fund’s pricing policy. A price taken at a different time from the holdings misstates the NAV even when both are right on their own.

  6. Strike the NAV

    The fund administrator calculates the official NAV from the valued holdings, fees and liabilities.

    The administrator receives the holdings and prices with the block each holding was read at. If it can’t trace a figure back to a block, it has to rebuild the holding itself before signing off.

  7. Report the NAV

    Investors and counterparties act on the NAV, so it has to reach them once it’s struck.

    Your team sends the NAV to investors, publishes it onchain for a tokenized fund, or both, and keeps the holdings behind it. A published NAV that differs from the one the administrator struck has to be corrected in public.

What you control

Your team
  • Set the valuation point
  • Price the holdings
  • Report the NAV
Your providers
  • Fund administrator

Security and deployment

  • SOC 2 Type IIIndependently audited security controls.
  • Dedicated infrastructureSingle-tenant options for production workloads.
  • Data residencyCloud, on-premises or co-located.

Calculate crypto fund NAV from onchain holdings with Goldsky

We’ll map it to your systems and show you what Goldsky runs, so your team builds the product, not the pipelines underneath it.

© Endless Sky Inc. All rights reserved.

PrivacyTermsSecurity

System status