Skip to content

docs: proof-gated in-transit accounting token (ADR 0002)#28

Draft
0xgleb wants to merge 1 commit into
docs/security-designfrom
docs/in-transit-accounting-token
Draft

docs: proof-gated in-transit accounting token (ADR 0002)#28
0xgleb wants to merge 1 commit into
docs/security-designfrom
docs/in-transit-accounting-token

Conversation

@0xgleb

@0xgleb 0xgleb commented Jun 25, 2026

Copy link
Copy Markdown
Member

Motivation

The LayerZero x Centrifuge "Unlocking Tokenized Fund Composability" report
proposes "accounting tokens" so capital mid-transfer between chains does not
disappear from NAV. Our security-design Section 8 deliberately does the
opposite — bridged principal is excluded from verifiable_nav until it
provably lands — which is the safe direction but leaves a real cost: NAV dips
while principal is mid-bridge and jumps when it arrives, a temporary mispricing
window across exactly the repatriation that rail 6 already touches.

Solution

Add an In-transit accounting token refinement to ADR 0002 that adopts the
report's pattern only in a proof-gated form:

  • In-transit principal contributes to NAV solely against rail 6's consume-once
    repatriation proof tuple — never manager-assertable; a forged, replayed, or
    double-counted proof contributes 0 (rail 6's existing failing-test vector
    extends to it).
  • Fails safe to the Section 8 exclusion when no fresh proof exists.
  • Prices adverse-to-actor (low side for redeemers, high side for depositors),
    nets to zero against the cumulative-outflow latch, and counts against the
    destination venue's total-loss-tolerable cap.

Candidate refinement, not ratified — strictly optional on top of the Section 8
exclusion, ships failing-tests-first if adopted. Its architectural context is
ADR 0004 (stacked above). Stacked on #11, which introduces ADR 0002.


This is part 1 of 2 in a stack made with GitButler:

@coderabbitai

coderabbitai Bot commented Jun 25, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: bc175533-cb77-4bde-9ec5-ea6458e72c17

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/in-transit-accounting-token

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@0xgleb 0xgleb self-assigned this Jun 25, 2026
@0xgleb 0xgleb force-pushed the docs/security-design branch from a7a5f18 to 67747b9 Compare June 27, 2026 21:29
@0xgleb 0xgleb force-pushed the docs/in-transit-accounting-token branch from 2bd571a to e6a7ca2 Compare June 27, 2026 21:29
The LayerZero x Centrifuge "Unlocking Tokenized Fund Composability" report
proposes "accounting tokens" to keep capital mid-transfer from disappearing
from NAV. Adopt that pattern only in a proof-gated form: in-transit principal
contributes to NAV solely against rail 6's consume-once repatriation proof
tuple, fails safe to the security-design Section 8 exclusion, prices
adverse-to-actor, and nets to zero against the cumulative-outflow latch -- so
it smooths the repatriation NAV dip without reintroducing the bridge/manager
trust Section 8 refuses. Candidate refinement, not ratified; ships
failing-tests-first if adopted.
@0xgleb 0xgleb force-pushed the docs/in-transit-accounting-token branch from e6a7ca2 to 9c7764d Compare June 28, 2026 01:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant