· 11 min read
How to Verify Cumulative Risk Limits for a DeFi Vault Across Multiple Trades
How allocators can check that covered vault trades stayed within approved risk limits across multiple trades, without seeing the curator’s positions.
TL;DR
- To verify that covered trades in a DeFi vault stayed within an approved cumulative limit without seeing protected positions, an allocator needs evidence that binds each covered action to its policy version and an authoritative record of accepted state updates.
- A verifier must check sequence continuity and how the record handles concurrent trades, retries, rejected actions, and exceptions.
- Inherence can enforce allocator-approved limits before covered actions execute and provide independently verifiable evidence without disclosing protected positions. Curators can keep their strategies private.
- A verified calculation establishes its defined claim over committed or attested inputs. It does not establish the truth of external inputs, cover bypassed actions, or prove settlement. These requirements are buyer diligence criteria, not claims about a specific Inherence deployment.
The post-deposit problem: what an allocator actually needs to confirm
After an institutional allocator deposits capital into a DeFi vault, the curator’s trades can change the vault’s total exposure or its exposure to a counterparty. The allocator needs the approved limit to constrain covered trades after deposit. A check on each trade in isolation cannot establish that several accepted trades stayed within a cumulative cap.
Dashboards and periodic reviews can help an allocator assess reported activity. Dashboards and reviews can identify a breach after a trade, but they do not by themselves block it. For a cumulative limit, the allocator needs evidence that each covered trade was checked against the applicable mandate and the accepted running exposure before execution.
That evidence should be independently checkable without disclosing protected positions or strategy. Privacy gives curators a way to accept the allocator’s guardrails without opening their books. Any claim about those guardrails remains limited to actions routed through the defined enforcement path and evaluated against committed or attested inputs.
What a defined mandate and policy versions must cover
A defined mandate states how the vault measures exposure and which limit applies before each covered trade. For an exposure cap, the rules must specify which positions count and how to value them. It must also specify how the proposed trade changes exposure, including any required offset for positions it closes. A counterparty limit must identify the counterparty for each covered trade and specify whether exposure is aggregated across its accounts or venues. The allocator and curator can then identify the rules they intend to enforce without requiring public disclosure of protected positions.
Each covered trade must bind to the allocator-approved policy version that governed its decision. A verifier should be able to match the trade’s action identifier and proposed terms to the policy commitment used for evaluation. The verifier also needs evidence that the allocator approved that version and that it had taken effect when the trade was evaluated. A valid calculation against an unapproved or superseded version would not establish adherence to the allocator’s mandate.
Policy changes need an explicit rule for existing exposure. Suppose a vault holds $8 million against a $10 million cap, and the allocator approves a $7 million cap. The new version must say whether the existing position may remain while new exposure is blocked. If it requires a reduction, the mandate must specify how and when that requirement applies to covered actions. Records should preserve which version governed each trade rather than applying the latest version retroactively. A cumulative-limit review must establish which approved rules governed each action as the policy changed.
Why a sequence of trades needs authoritative shared state
An allocator can test a cumulative limit only if each covered trade uses the same authoritative record of accepted exposure. A check on one trade can show that its proposed exposure fits beneath a cap. A check across trades also needs to establish which earlier trades had already consumed capacity. A verifiable calculation over committed inputs cannot establish that history on its own.
Consider a vault with a limit of 100 units and 70 units already accepted. Two trades that each add 20 units would each pass if both checks read the same starting balance. Together, the trades would raise accepted exposure to 110 units. Approval must reserve capacity and update the authoritative state as one indivisible decision. Only one trade can be accepted against the 70-unit state. The other must be checked against the resulting 90-unit state and rejected if it would raise exposure to 110 units. The same question applies when approvals arrive through different covered routes.
Retries can also produce conflicting claims about accepted exposure. A network timeout may cause a curator to submit the same trade again without knowing whether the first attempt succeeded. A buyer should ask whether a retry with the same action identity returns the original decision without consuming capacity twice or issuing a second executable approval. A changed trade should receive a new decision against the current accepted state.
For diligence, the vendor should identify the record that determines accepted state and explain how concurrent approvals and retries affect it. Individual receipts may show correct calculations, but they do not establish that every calculation used the accepted balance left by the preceding trade.
What counts as evidence of sequence continuity?
A verifier needs an authoritative record of accepted state transitions to establish sequence continuity. For each covered trade, the verifier should check the action identifier, applicable policy version, prior state commitment, resulting state commitment, and evidence that the limit calculation passed. The resulting commitment for one accepted action must match the prior commitment for the next. Each transition also needs an ordered identity so the verifier can detect gaps or competing successors.
A valid calculation over committed inputs does not establish that the inputs represent the vault’s accepted history. The verifier must also check that the authoritative record accepted each transition once, contains no missing accepted transitions, and did not accept two competing updates against the same prior state. The record can expose commitments and transition status without exposing positions, provided the verifier can establish which record governs the vault’s covered actions.
Rejected actions must leave the accepted state unchanged. For a claim that includes rejected attempts, the record should identify each rejection and show that no executable approval or state update followed from it. A retry of the same action must retain its identifier and resolve to the same recorded outcome without consuming the limit again. A revised trade needs a new identifier and a fresh evaluation against the current accepted state.
Sequence evidence remains limited to the actions routed through the defined enforcement path. An allocator should therefore confirm where that path begins and compare the authoritative record with the vault’s execution records. A continuous chain of commitments cannot account for trades that never entered the chain.
Exceptions, emergency routes, and actions outside the gate
An allocator should examine who may change a limit and when the new version takes effect. An effective-time record should identify the rule version applied to each covered action. The record must also show whether a pending action was evaluated under the old version or checked again under the new one.
Emergency permissions require the same scrutiny. The Morpho Vault V2 role documentation (opens in a new tab) describes different permissions and timing for cap changes. Check the vault’s configured roles and timelocks before treating those permissions as controls on a particular vault. A sentinel can also deallocate assets or revoke a pending curator proposal. Function-specific timelocks can start at zero (opens in a new tab), so the presence of a timelock does not itself establish a waiting period. Native caps block allocations within Morpho’s adapter and cap system (opens in a new tab). They do not establish that a separate allocator-approved counterparty limit governs a manual trade.
For each manual or emergency route, the allocator needs to determine whether the action passes through the defined enforcement path. If the cumulative claim includes an emergency deallocation, its effect on exposure must enter the authoritative state used by the next covered check. An action outside that path falls outside the verification claim, regardless of why it was taken.
Authenticating offchain inputs: broker positions and price feeds
A cumulative limit on a hybrid DeFi vault depends on offchain data the vault cannot read directly. A broker position may change the exposure reported for a vault. A price feed may change the value assigned to an existing position. An allocator should ask which offchain inputs each covered trade uses and when those inputs enter the calculation.
The vendor should identify who supplies each input and how the enforcement path establishes its source, timestamp, and applicable trade. The allocator should also ask what happens when a broker report arrives late, a price becomes stale, or a source corrects an earlier value. For each case, the vendor should show whether the trade is rejected, held for updated data, or evaluated under a documented exception.
An independently verifiable calculation establishes its defined result over committed or attested inputs without disclosing protected positions encoded in the proof. It does not establish that a broker reported every position or that a price feed gave the correct market price. The allocator therefore needs separate evidence for the provenance and completeness of those inputs.
What an independently verifiable calculation proves, and what it doesn't
An independently verifiable calculation establishes its defined policy statement over the inputs bound to that statement. For a cumulative exposure limit, the verifier must identify the policy version, covered action, and prior state used in each check. A valid calculation does not establish that the reported positions matched the vault’s actual positions.
A claim about multiple trades also needs an authoritative record of accepted, non-conflicting state transitions. Correct arithmetic over a claimed prior balance cannot show whether an accepted trade was omitted.
Inherence provides evidence for covered actions routed through the defined enforcement path and evaluated against committed or attested inputs. Inherence does not independently establish the truth of every external input or cover actions executed outside that path. A verifier must also check the receipt against the intended action and applicable policy version. Execution records must establish whether a trade occurred. Settlement records must separately establish whether it settled. A valid policy check alone cannot establish settlement.
Comparing native caps, monitoring, signed decisions, and verifiable enforcement
Approach | Blocks covered actions before execution? | What an outside allocator can check |
|---|---|---|
Yes. The vault enforces caps on covered allocations through an enabled adapter. | Onchain caps and allocations within the adapter and risk-identifier scope. The caps do not establish limits for positions outside that scope. | |
The linked vault page describes breach alerts rather than a pre-execution block. | Reported positions, risk measures, and alerts available to the allocator. These do not by themselves establish an enforced sequence of accepted trades. | |
The linked vault page describes pre-trade analysis but does not establish that Kaiko blocks execution. | Valuations and supporting records available to the allocator. These do not by themselves establish an enforced sequence of accepted trades. | |
Signed policy decision | A connected gate can act on the decision before execution. The signature alone does not block a trade. | The issuer’s identity and the signed verdict, not whether the issuer calculated it correctly. |
Inherence: independently verifiable enforcement (opens in a new tab) | Inherence can block covered actions against allocator-approved rules before execution when those actions pass through the defined enforcement path. | Whether the committed policy calculation produced the recorded result, without disclosing protected positions encoded in the proof. |
Native caps give an allocator a genuine pre-execution constraint within the vault’s defined scope. Monitoring helps an allocator detect and investigate exposure, but the cited 1Token and Kaiko pages do not describe blocking the trade that caused it. A signature proves who issued a verdict. Inherence provides evidence that an outside party can use to check whether the committed policy computation produced it.
For a cumulative-limit claim, the allocator must also establish which actions entered the gate and which state transitions the vault accepted. The comparison does not establish either fact for a particular vault.
A diligence checklist for allocators
- Identify the policy for every covered trade. Ask for the allocator-approved limit, the policy version applied to each action, and a record of when any version changed.
- Trace accepted state across trades. Ask which record holds the authoritative cumulative exposure or counterparty total. Check that each accepted action starts from the preceding accepted state.
- Test simultaneous requests and retries. Ask how the vendor prevents two approvals from spending the same remaining limit. Confirm that a retried action cannot create a second executable approval or state update. Check execution records separately for duplicate trades.
- Account for exceptions. Check how the evidence distinguishes rejected actions from accepted ones. Identify emergency trades, manual overrides, and policy edits, then determine which routes can execute outside the enforcement path.
- Check offchain inputs. For broker positions and price feeds, ask who supplied each input, how it was authenticated, and which value the calculation used.
- Define the verification claim. Ask what an independent party can check without seeing protected positions. A valid calculation over committed or attested inputs does not establish that external inputs were true, that bypassed actions complied, or that a trade settled.
For pre-deposit permissions and exceptions, see the curator due-diligence checklist (opens in a new tab). The onchain/offchain hedge guide (opens in a new tab) covers inputs under a single mandate. The published vault risk tools comparison (opens in a new tab) provides a fuller vendor-scoring table.
FAQ
Does a verifiable receipt prove the vault’s reported positions are true?
No. A receipt can establish that a defined limit calculation held over the positions committed or attested as inputs. It cannot independently establish that those positions matched the vault’s actual holdings.
How can an allocator verify a cumulative limit across multiple trades?
The verifier must check each covered action against its applicable policy version and confirm that every accepted action advances an authoritative state record. That record must resolve simultaneous approvals and prevent retries from counting twice. A valid calculation for one trade cannot establish an unbroken history on its own.
What happens when a curator takes an action outside the enforcement path?
A receipt for covered actions makes no claim about an action outside the enforcement path. The allocator needs separate execution records to identify such actions and determine how they affect the vault’s exposure.
How does a verifiable receipt differ from a signed approval?
A signed approval identifies the issuer of a decision. An independently verifiable receipt lets an outside party check the defined calculation against its bound inputs without seeing protected positions. Neither establishes settlement by itself.
What are committed or attested inputs in a vault limit check?
Committed inputs are values bound to the calculation without necessarily revealing them to the verifier. Attested inputs carry a claim from an identified source, such as a broker reporting positions or a provider supplying prices. The verifier must assess the source and freshness separately because a valid calculation does not prove that an external report was accurate.
Conclusion
Institutional allocators should accept a cumulative-limit claim only when an authoritative record connects each accepted trade to the state left by the previous one. A standalone calculation cannot establish that sequence or account for actions outside the defined enforcement path.
An allocator can use the accepted-state record and independently checkable calculations to assess whether approved limits constrained covered trades after deposit without seeing protected positions.