> For the complete documentation index, see [llms.txt](https://docs.adcpcapital.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.adcpcapital.com/protocol/capital-accounting.md).

# Capital Accounting

`ProtocolAccounting` is the single stateful source of truth for capital positions, the PEU ledger, revenue/loss recognition, reserve bookkeeping, and waterfall state. `TreasuryVault` is a custody-only contract — it holds actual USDC, exposes narrow deposit/withdraw calls callable only by `ProtocolAccounting`, and reports the protocol's actual controlled balance for reconciliation against the accounting ledger. See [Reconciliation](/verification/reconciliation.md) for how the two are compared.

## Principal is never profit

* `outstandingPrincipal = contributedPrincipal - recoveredPrincipal` for a given capital position.
* Capital recovery reduces outstanding principal. It is never yield, interest, profit, or an equity distribution.
* New participant capital is never treated as business profit, regardless of product.

## Revenue is realized economic activity only

Revenue recognized by the protocol is limited to realized economic activity: borrower interest, origination/service/liquidation fees, and realized permitted treasury gains. New deposits, issuance principal, and unrealized appreciation are never revenue.

## Distributable surplus and the waterfall

Distributable surplus only exists after senior obligations, liquidity reserves, and risk provisioning are satisfied, in a fixed constitutional order. What remains after every prior obligation may reach PEU's permanent residual layer — see [PEU](/protocol/peu.md). No equity-style distribution ever originates from investor principal.

## Custody vs. accounting

Two distinct properties are checked independently, not conflated:

* **Internal ledger self-consistency** — the accounting identity (assets equal liabilities plus equity) holds within `ProtocolAccounting`'s own bookkeeping.
* **Accounted-vs-actual custody conservation** — the balance the ledger believes it holds never exceeds what `TreasuryVault` actually, verifiably controls.

An unsolicited or unexplained token transfer into custody is never automatically treated as capital, revenue, or distributable surplus — it is a distinct classification bucket requiring explicit reconciliation, and no privileged role can relabel it as revenue.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.adcpcapital.com/protocol/capital-accounting.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
