LEARN · VERIFY

Check Recoup's numbers yourself

Each figure Recoup shows is labelled with its source: the public blockchain, a figure derived from it, DexFi, an outside data service, or an illustration. This guide shows how to check the on-chain ones without trusting Recoup, a self-repaying loan protocol on Base.

Last updated · Written by Recoup

NAV ORACLEnavPerBond()29.79282900USD, the post of 6 October 2026IF THE SITE AND THE CHAIN DISAGREE, THE CHAIN IS RIGHT

Why would I verify anything?

Because a DeFi protocol is only as honest as the numbers it shows, and on a blockchain you do not have to take those numbers on trust.

1 · EVERY FIGURE CARRIES ONE OF THESE
  • ON CHAINRead live from Recoup's contracts.YOU CAN CHECK IT: FULLY, ON CHAIN
  • INDEXEDRebuilt from the contracts' own event logs.YOU CAN CHECK IT: FULLY, ON CHAIN
  • DERIVEDWorked out from on-chain figures.YOU CAN CHECK IT: BY REDOING THE SUM
  • DEXFIDexFi's own reporting, named in words beside the figure.YOU CAN CHECK IT: ONLY ELSEWHERE
  • DEBANKAn outside data service's read of DexFi's treasury.YOU CAN CHECK IT: ONLY ELSEWHERE
  • ILLUSTRATIVEAn example, not a reading.YOU CAN CHECK IT: NOT AT ALL

Two more labels mean a figure is not a reading at all:DEMO DATA when a live read failed and a stored placeholder shows, andSYNTHETIC on data made up to show what a screen looks like.

A blockchain is a public ledger of every contract and transaction. A block explorer such as Basescan lets you browse it. If the site and the chain disagree, the chain is right.

Where are the numbers and addresses?

The Verify screen in the app lists the bond value Recoup is using, where it comes from, the insurance fund, the realised yield history and a command you can run to read the value straight from the chain.

2 · TWO SCREENS
VERIFYOPEN ↗
  • CURRENT NAVON CHAINlive
  • DIVERGENCE FROM DEXFIlive
  • INSURANCE FUNDON CHAINlive
  • REALISED WEEKLY YIELD PER BOND - LAST 12 WEEKShistory
CHECK IT YOURSELF · $ cast call …
A SKETCH OF THE SCREEN · NO FIGURES
  • TOTAL VALUE LOCKEDON CHAINlive
  • DEBT OUTSTANDINGON CHAINlive
  • LENDER POOL ASSETSON CHAINlive
  • NAV PER BONDON CHAINlive
Then the history, every panel badged: NAV PER BOND · POSTED ON CHAININDEXED, TOTAL HARVESTED, BY EPOCHINDEXED, SHARE OF EACH, BY RANKDERIVED, THE DEXFI FUND · CONTEXTDEBANK
The Verify screen holds the price, the insurance fund, the yield history and the command; the Stats screen holds the history. Each figure wears its badge.
MORE DETAIL

The Stats screen holds the history: value locked, debt outstanding, every bond value posted, every harvest and every auction. Each figure carries a badge naming its source: indexed from the contracts' event logs, derived from those, or from DexFi or DeBank. The history is served from Recoup's own published data branch, not read live, so you can check its on-chain figures against the chain.

How do I check the bond value Recoup is using?

Read it from Recoup's price contract, the NAV oracle, with one command or one page on a block explorer.

3 · ONE COMMAND

1 · RUN IT

$ cast call ‹NAVOracle› \
"navPerBond()(uint256)" \
--rpc-url https://mainnet.base.org
2979282900

2 · MOVE THE POINT 8 PLACES LEFT

2979282900.8 places29.79282900

The answer is the bond value in US dollars with 8 decimal places.

3 · COMPARE

THE CHAIN
$29.79
the same
THE VERIFY SCREEN
$29.79

They should match. If they do not, the chain is right.

Copy the exact command, with the oracle's address filled in, from CHECK IT YOURSELF on the Verify screen. The answer shown is the oracle's post of 6 October 2026: an example, not a live read.
4 · WHAT THE NUMBER IS · NAV, NET ASSET VALUE

NAV per bond equals the part of DexFi's treasury Recoup can price itself, at full value, plus the rest at DexFi's own figure less a 20% haircut, divided by the bonds outstanding. The example is the oracle's post of 6 October 2026: $29.79.

A move larger than the oracle allows for the time since the price last changed is held back for at least 12 hours and takes effect only if it is confirmed in a separate step before it expires.
MORE DETAIL
  1. Open the Verify screen and find CHECK IT YOURSELF. It gives a cast call command (cast is a free command-line tool for reading blockchains) that asks the oracle for its current value.
  2. Run it. The answer is the bond value in US dollars with 8 decimal places, so move the decimal point 8 places left.
  3. Compare it with the figure the Verify screen shows. They should match.

The value is NAV, net asset value: what one DexFi Treasury Bond is worth to Recoup. It counts the part of DexFi's treasury Recoup can price itself, plus the rest at DexFi's own figure less a 20% haircut, divided by the number of bonds, and is posted about once a day. A move larger than the oracle allows for the time since the price last changed is held back for at least 12 hours and takes effect only if it is confirmed in a separate step before it expires. See what DexFi is.

How do I check that the weekly yield is real?

Each harvest is a transaction that leaves a public record of how much USDC came in and where it went.

5 · THE RECEIPT
EVENT · HARVESTEDEPOCHHARVESTER
tx ‹hash› · block ‹n›
An illustrative Harvested event: the USDC that came in and each part of the split
USDC in totalYield100.00
borrowers' debts 55%toBorrowers55.00
lenders 25%toLenders25.00
insurance fund 10%toInsurance10.00
protocol fee 10%toProtocol · takes any rounding remainder10.00
ILLUSTRATIVE · ON $100 · NOT FROM CHAIN
  1. 1Anyone can trigger the harvest once bonds pay out.
  2. 2The contract splits what came in: 55% against borrowers' debts, 25% to lenders, 10% to the insurance fund and 10% as the protocol fee.
  3. 3The Stats screen lists every harvest with its split.
The Verify screen's yield history is the last 12 weeks actually received: history, not a promise.
Each harvest leaves one Harvested event: what came in, and where each part went.

Has Recoup been audited?

Its lender pool has. 33Labs independently audited the pool's source, where lenders' money sits, in September 2026, and the full report is published. The borrowing, collateral, oracle, harvest and liquidation contracts were outside that review.

6 · SCOPE

AUDITED · THE LENDER POOL

6 contracts
  • LenderPool: in the audit
  • CreditWiring: in the audit
  • TreasuryLiquiditySource: in the audit
  • ProtocolFeeSplitter: in the audit
  • Config: in the audit
  • LtvMath: in the audit

NOT IN THAT REVIEW · WHAT YOUR LOAN RUNS THROUGH

  • CreditManagerborrowing and its limits
  • RiskParamsthe borrowing limits
  • CollateralVaultholds your bonds
  • DirectCallAdapterstakes them in DexFi's farm
  • NAVOracleprices them
  • EpochHarvesterruns the harvest
  • LiquidationAuctionruns liquidations

And 4 more outside it, listed on the security page.

FINDINGS
13
FIXED
11
ACCEPTED RISKS
2
REPORT SHA-256
83d9…562a
CHECK YOUR COPY ↗
An audit lowers risk; it does not remove it. The auditors read one version of the code, and the public contracts repository is on GitHub for anyone to read. The security page gives the scope, every finding with the commit each fix was verified on, and the report.
MORE DETAIL

The audit covered LenderPool, CreditWiring, TreasuryLiquiditySource, ProtocolFeeSplitter, Config and LtvMath. It did not cover CollateralVault, CreditManager, LiquidationAuction, EpochHarvester, NAVOracle, RiskParams and DirectCallAdapter: the contracts that handle borrowing and its limits, hold and stake your bonds, price them, run the harvest and run liquidations.

The security page gives the scope, the 13 findings (11 fixed and 2 accepted risks, with the commit each fix was verified on) and the report with its SHA-256 hash, a fingerprint of the file, plus the command to check your copy matches.

What can I not verify on-chain?

Anything that depends on DexFi's own reporting, and anything that has not happened yet.

7 · THE LIMITS
  • NOT ON CHAINPart of DexFi's treasury.Some positions cannot be valued from the chain alone, which is why Recoup applies the 20% haircut to that part.
  • NOT ON CHAINFuture yield.No one can verify next week's payout. Recoup promises no rate; any estimate, the lender calculator's rough APR included, is built from realised history and labelled as a projection.
  • NOT ON CHAINDecisions by key holders.The chain shows what an owner key did, not what it will do. Who holds which controls is in the FAQ and the DexFi guide.
Three things the chain cannot answer, however carefully you look.

KEEP READING