NAV, proof of reserves, and attestation
Folks in DeFi have been using the terms Proof-of-Reserves(PoR), attestation, and NAV without giving it much thought, so I thought it would be good to break down the differences because they describe vastly different things and have different uses.
Your LP asks for all three in one dm, in a tone suggesting they are three grades of the same homework. How do you respond?
What each one is
Section titled “What each one is”| Proof of reserves | Attestation | NAV | |
|---|---|---|---|
| What it is | how much of something you hold, at a moment | a third party checking that statement | the fair value of the fund, per unit |
| Counts or values | counts | counts, checked | both, and the value is what you are buying |
| Who says so | you | an outside accountant | your accountant, your administrator, or a tool |
| Used for | showing the thing is backed | putting an outside name near your number | the price investors subscribe and redeem at |
| Data it needs | a correct balance read, at one moment | the same, plus records an accountant can test | every transaction, in order, with a basis behind each mark |
What an attestation actually covers
Section titled “What an attestation actually covers”Attestation is the PoR artifact, checked. That is a real and useful thing, particularly for a stablecoin that has underlying assets backing its value. Having a third party attest to the holdings gives your holders more confidence that the assets backing the stablecoins exist and are where they are supposed to be at a point in time. Think of an attestation as audit light, with specific Agreed Upon Procedures (AUPs) that define what will be checked as part of the engagement, and the outcome of those checks being done and reported by the attestor.
NAV vs Proof-of-Reserves
Section titled “NAV vs Proof-of-Reserves”Whereas the focus for PoR is to make sure assets in the entity exceed its outstanding liabilities (the stablecoins for example), NAV on the other hand calculates the fair market value of a vault. It needs to be an unbiased valuation, because it’s used to calculate the transfer price for deposits and withdrawals into and out of the vault.
There are simple and hard ways to do this valuation. More often than not in DeFi, NAV is being calculated using a shortcut. That means taking on-chain balance snapshots across all the holdings of the fund, then summing the aggregate value to generate NAV.
It’s easy to do, and like a PoR it rests on one thin slice of data: what you hold right now. The LPs in the vault are asking about performance and risk, and those live in the history.
Traditional fund administrators compute it the hard way, by constructing full financials for the entity. That depth is what gives an LP confidence and clarity on the performance and health of the fund.
On a liquid book those two answers land in the same place and the argument is academic. They come apart on illiquid positions, and plenty of strategies are built on exactly those: locked tokens bought OTC, private credit, anything that earns real income while no market quotes it.
Snapshots have one price to work with, today’s. On positions like those, choosing that price is a judgment, and the choice moves real money between the LP subscribing and the LP redeeming.
Here is what each of them actually needs from your data.

Where does the price come from?
Section titled “Where does the price come from?”Both numbers come off the same balance sheet, and they read different parts of it. PoR works the asset side and asks whether it clears what the entity owes. NAV does the subtraction: assets minus liabilities, all of them, including accrued management and performance fees, borrowings, and a redemption you have declared and not yet paid. What is left belongs to the people who own the fund, which is where the name comes from. Divide by units outstanding and you have the price a subscription and a redemption happen at.
Pass or fail against one threshold, versus a number carried to four decimal places that money changes hands at. Those need different inputs, and the gap opens on the word “assets”, because your accountant has to price them.
Accountants sort prices into three levels:
- Level 1 is a quoted price in an active market. Your ETH, listed equities, treasury bills. Count times screen price, and no judgment enters.
- Level 2 has no direct quote but something close enough to model from: a similar instrument, a yield curve, an observable input a step removed.
- Level 3 has neither. You build the number out of your own assumptions and you defend them.
Most comparisons take a cheap shot at PoR here, and I think unfairly. It sits on liquid holdings for a reason: the job is to substantiate a liability denominated in dollars, so the assets on the other side need an unarguable dollar value. Level 1, where the price is easy to get and counting takes the focus, and PoR does that hard part well, which is why a fully government debt-backed stablecoin is close to an ideal case.
NAV has no such luxury. Your fund runs whatever strategy it runs, and the number still has to exist on the date a subscription or a redemption lands, so Level 2 and Level 3 come with it, and a Level 3 mark is a judgment you defend eight months later to an auditor who wasn’t in the room.
Income counts too: your loan earns for thirty days, and the fund is owed that money on the thirtieth even though no transaction says so. Leave it out and every redemption in the period prices too low.
One position, three defensible marks
Section titled “One position, three defensible marks”Take a trade some crypto funds are running right now. You buy a locked token OTC below spot, and you short the liquid perp against it. Cash leaves today. Tokens arrive months from now. In between, a number has to go on the promise.
One leg is Level 1, the other is Level 3. Your perp has a screen price. Your locked promise has no market, so its value comes from a model and a choice you make.

Three ways to mark it, all defensible:
Hold it at book. Your promise sits still until the token arrives, so what moves on the page is the hedge, alone. It looks like a fund having a terrible quarter, and the trade is fine.
Mark it at a fixed spread to the perp. Both legs cancel and the line drifts gently down. That slope is your funding cost. It looks like a fund quietly bleeding, and it keeps looking like that until the unlock.
Accrue the discount. Your arbitrage profit comes in evenly across the lock-up, so the line goes up and to the right with no pop at the end, because you booked it already. It looks like a fund in good health.
Same cash out. Same tokens in. Same return. You changed when you booked it.
Each chart shows you something the other two hide, so you need all three. They answer questions you actually get asked:
| Mark | What you are looking at | The question it answers |
|---|---|---|
| Hold at book | the hedge swinging alone | can you survive it? Margin and solvency |
| Fixed spread | the two legs canceling | what is the carry, really? Spread minus funding |
| Accrue the discount | a smooth line | what yield do you report, and what do people redeem at? |
Snapshot NAV lands on one of the first two, and the reason is structural: it holds balances and prices. Accruing the discount is built from the terms you agreed, the days that have passed since, and a policy your fund manager wrote down and can defend. Your LPs subscribe and redeem against that third line, so fairness rides on it.
What a balance leaves out
Section titled “What a balance leaves out”Balances carry the amount. Here is what sits outside one:
- how it got there. Yield earned and a transfer landed look identical at rest
- the price in force at each trade. Gains measure what you sold at against what you paid, and a balance read holds today’s price instead of either. Your cost has to survive a wrap, a bridge or a rebase on the way there, and a month-end price cannot value a position you closed on the 14th. That problem gets its own page, position pricing
- which part is realized. Realized gains get taxed, unrealized marks wait, and a total holds both in the same number
- income that arrives without a transaction, like interest accruing block by block with no event to index
Snapshot it daily and you get thirty positions, and every question above still needs the transactions between them.
Same gap sits under the question your LPs actually ask. Tracing a return back to the position that earned it, and splitting yield from price, runs on the transactions, and why the shortcuts do not work takes that apart.
Build the book from every transaction and all three marks come out of the same record, every figure naming its journal entry and every entry naming its transaction. Picking the mark for a given report depends on the investment and on who is reading it: an LP pricing a subscription and a holder checking reserves are asking different questions of the same position.
PennyWorks builds that book, alongside your administrator rather than in place of one, which is what shadow accounting means. You can follow any figure back to where it came from and reconcile it against a second source. Where a position has no clean quote, it carries a stated method where one exists and a stated mark where none does, and a person picks that mark. We aren’t your auditor and we don’t attest.
Good accounting won’t stop a bad trade, and it won’t slow a hedge blowing out by one second. It moves the conversation months earlier, onto whether the position should be that size, instead of leaving it at the redemption window, onto whether the cash is there.
Wasn’t crypto supposed to be transparent?
Section titled “Wasn’t crypto supposed to be transparent?”Crypto’s ethos is transparency: every transaction public, verify it yourself instead of trusting a report. Then DeFi built its fund reporting around a balance snapshot, which tells you what a fund holds today and stops there. TradFi allocators open an audited set of financials and follow the money from the opening balance to the closing one. Your LP reading a dashboard total gets the closing balance.
That is backwards, and the raw material to fix it is already public. Every transaction a DeFi fund made sits on a chain, permanently, in the open. In any other market that file arrives when a broker decides to send it. Matching what a TradFi allocator already expects should be the floor here. In a market where every transaction is public, clearing it is ordinary.
Ask for the marks. Then ask them to show how they got there.