Testnet preview - Recoup runs on Base Sepolia. Nothing here moves real funds. What that means

Base Sepolia is a test network. The bonds are mock DexFi bonds, not DexFi Treasury Bonds, and they are worth nothing. Figures marked TESTNET are read from the contracts deployed there, and the buttons on this site send real transactions to them. Everything else on the site is illustrative, and says so where it sits.

Audit

33Labs reviewed the source of Recoup's lender pool and the contracts wired beside it, 7-22 September 2026. This page says what that covered, what it found, and what it does not tell you. The full report is at the bottom.

The lender pool was audited. The rest of the protocol was not, and no deployment was.

WHAT WAS REVIEWED

Six source files of the public repository thedelph/recoup-contracts at commit b66023d: the lender pool's accounting and withdrawals, the protocol wiring, the liquidity source, fee routing, configuration bounds and loan-to-value maths. The fixes were reviewed through commit f6893cb.

By 0x23r0 and PhantomOz of 33Labs ↗, an independent security research group.

WHAT IT DOES NOT MEAN
  • It is not an audit of the whole protocol. Nine other contracts, listed below, were outside the in-scope files.
  • The Base Sepolia test deployment predates these fixes; the audit is not a statement about any deployment.
  • The public lender pool stays closed. See Lend for where it stands.
  • A review cannot prove there are no bugs left. The report says so itself, quoted below.
WHAT IT FOUND
FINDINGS
13
none rated Critical
HIGH
4
MEDIUM
6
LOW
3
FIXED
10
ACCEPTED
3
acknowledged, disclosed

Statuses are the report's own. It classified 10 findings as fixed and 3 as acknowledged and accepted risk, judged against the code, the regression tests, the public risk disclosures and the maintainer and reviewer discussion, rather than whether a GitHub issue is open or closed.

SCOPE

AUDITED - IN SCOPE

  • src/LenderPool.sol
  • src/CreditWiring.sol
  • src/TreasuryLiquiditySource.sol
  • src/ProtocolFeeSplitter.sol
  • src/Config.sol
  • src/LtvMath.sol

NOT AUDITED - OUT OF SCOPE

  • CollateralVault
  • CreditManager
  • LiquidationAuction
  • EpochHarvester
  • NAVOracle
  • RiskParams
  • DirectCallAdapter
  • MintAttemptReceiver
  • ReferralRegistry

Several findings trace paths from the pool into CreditManager and LiquidationAuction, and some fixes landed there, so the reviewers read parts of those contracts along the way. They were not in the in-scope file list, and this page does not call them audited.

FINDINGS
The 13 findings in the 33Labs report, with severity, status and the public issue for each
IDFINDINGISSUE
H-01Borrower-keyed recovery provenance redirects an earlier workout's recoveryHigh · Fixed#45
H-02Auction replacement orphans a closed workout's recovery legHigh · Fixed#46
H-03Repeated request service converts more than a requester's pro-rata cash into senior claimsHigh · Fixed#47
H-04Manager migration strands post-close loss recoveries with no unblocked repair pathHigh · Fixed#53
M-01Permissionless yield sweep can confiscate an open workout's borrower yieldMedium · Fixed#48
M-02Realised open-workout yield bypasses the dedicated sweep protectionMedium · Fixed#49
M-03First clean workout close captures shared residual yieldMedium · Fixed#50
M-04Uncapped stream duration plus gross entry pricing lets a timed flush overcharge new lendersMedium · Fixed#51
M-05A lender-yield backlog above the deposit-cap ceiling can never be deliveredMedium · Fixed#52
M-06A request serviced down to one share-wei keeps the rest of its cash floor (maintainer-reported)Medium · Accepted risk#64
L-01Permissionless settle discards a borrower's sub-unit yield accrualLow · Fixed#54
L-02After a raw cash loss, the request floors can lock the whole remaining cash until a repayment or a cancelLow · Accepted risk#61
L-03A paused or blacklisting USDC shuts every bond door, because the farm pays its pending USDC inside the same call (maintainer-reported)Low · Accepted risk#68

Issue numbers are on the public repository's tracker, where each finding was filed and answered.

How much of "fixed" the reviewers re-ran

For H-01, H-02 and M-01 the report says the reviewers verified the fix on commit 68c0c26, and for H-03 that they verified the original High-severity routes there. For H-04, M-02, M-03, M-04, M-05 and L-01 it states the fix and its regression coverage without naming a verification commit. Those six are listed as fixed because the report lists them as fixed, not because this page has more evidence than the report does.

THE THREE ACCEPTED RISKS

These are not fixed. They are acknowledged, disclosed, and carried by lenders and borrowers if they happen.

  • M-06 · Medium · #64

    A withdrawal request serviced down to its last share-wei can keep the rest of its cash floor reserved, locking other lenders' cash with no owner lever and no time limit. Accepted at the report date without a code change: the obvious fix trades directly against L-02 below, and the report treats the two as one design decision.

    Since the report, a proposed fix has been opened for the reviewers as public PR #69. It is not merged and the reviewers have not yet reported on it, so M-06 is not counted as fixed here.

  • L-02 · Low · #61

    After a loss of the pool's own cash, queued withdrawal floors can lock all the remaining cash until a borrower repays or a floor holder cancels, with no guaranteed time. Kept by design: writing the floors down instead would make every queued lender permanently lose part of the amount she was quoted.

  • L-03 · Low · #68

    If Circle pauses USDC or blacklists the custody adapter while any farm reward is pending, bond deposits, withdrawals and harvests fail for as long as it lasts, because DexFi's farm pays out pending USDC inside the same call, and liquidation clocks keep running. Rated Low because no one in the protocol can cause a Circle pause or blacklist; the mechanism is unchanged.

THE REPORT'S DISCLAIMER
“A smart contract security review cannot prove the complete absence of vulnerabilities. This assessment was bounded by the agreed scope, review period, available documentation, and referenced commits. Additional review, deployment verification, monitoring, and a public bug bounty are recommended before production use.”
BEFORE THIRD-PARTY CAPITAL
“Before accepting third-party capital, 33Labs recommends revisiting M-06 together with the L-02 design trade-off, publishing the L-03 incident runbook, retaining the activation gate, and verifying deployment/source parity.”

From the report's conclusion.

THE FULL REPORT

Download the report (PDF, 2.87 MB) - “Recoup Security Audit Report”, 33Labs, dated 22 September 2026.

file    33labs-recoup-final-report-2026-09-22.pdf
bytes   2,866,419
sha256  612fbe1adb22a9d9cd4425b391196a222557d43430b79e6c6140f2ad7c3e92db

To check your copy, run sha256sum 33labs-recoup-final-report-2026-09-22.pdf and compare the output with the hash above.

Recoup is pre-launch software under active development. Nothing on this site is financial advice or an offer of financial services.