Tranche Redeem Approval — settle cycle (collect → fix → burn and pay) Deposit and redeem approval run in the same settle batch — which settlement prices the payout is a per-round setting (still open) · this diagram is the escrow burn and the payout becoming claimable · CCCP V2 = Hooks + Vault + Socket TX 1hub · runtime auto-run (Auto Pilot) TX 2spoke · relayer signs TX 3hub · relayer signs TX 4spoke · relayer signs dashed= Socket event (colour = originating tx) · ✂ = tx boundary SPOKE chain TX 4 — relayer signs · sourcing and payout fixed TX 2 — relayer signs · collect spoke chain NAV TrancheManager (Spoke) escrow · state machine the 7540 claim is fixed by the settle result CCCP V2 (Spoke) Hooks · Vault · Socket, collectively registers Socket request · runs poll hands to receiveMessage 4-3 receiveMessage(Msg E) → burn escrowed shares · payout becomes claimable settle fixed · then the user claims: withdraw/redeem (local, any time) the payout price follows the round's pricing setting — at settle: ① shares sitting in escrow are burned when settle is fixed ② short on sourcing → pay in requestId order, rest carries over ③ anything sourced beyond the need goes back into the adapters MultichainAdapter (Spoke) aggregates valuations · receives early sourcing 4-4 receive early-started sourcing → gathers at the hub via NET_BRIDGE 2-2 receiveMessage(Msg C) → collectEachNAV 2-4 responseNAV → sends Msg D Adapter_1IAdapter interface Adapter_2IAdapter interface Adapter_3IAdapter interface 2-3 requestNAV ×N view aggregation spoke-local yield sources — valuing is a view call, so nothing moves · reward tokens are swapped to the base asset by the adapter at settlement and held HUB chain (Bifrost) TX 1 — runtime auto-run · collect hub chain NAV TX 3 — relayer signs · NAV fixed · approval recorded 1-5 request sends Msg C 3-2 receiveMessage(Msg D) → responseNAV 4-1 approveShares → sends Msg E (payout and burn fixed) Investment Pallet ledger — Product · request · NAV · adapter detail recorded Investments Precompile 0x…0201 — called by Valuation only Valuation (Hub) core logic — gathers chain NAV waterfall · share price fixed one per product · calls record_* Orchestrator (Hub) CCCP handler (ICCCP_Receiver) one global — routes and sends recording calls belong to Valuation CCCP V2 (Hub) Hooks · Vault · Socket, collectively poll → hands to receiveMessage outbound via request 3-3 settle share price fixed (for deposits) — no redeem recompute 3-4 record_adapter_valuations · record_product_nav · record_investment_approval settlement_id +1 1-2 collectEachNAV 1-4 responseNAV Auto Pilot Pallet runtime triggers once per settle period 1-1 tryUpdateNAV — settle trigger MultichainAdapter (Hub) aggregates hub adapter valuations · gathers early-sourced funds 3-5 gathers the payout funds (sourced early) → asset escorted in Msg E Adapter_1IAdapter interface Adapter_2IAdapter interface Adapter_3IAdapter interface 1-3 requestNAV ×N — view aggregation hub yield sources — valuing is a view call, so nothing moves · reward tokens are swapped to the base asset by the adapter at settlement and held Msg E — SETTLE_DISTRIBUTE (combined) redeem payout detail (requestIds[] · owners[] · assets[]) · burn and payout fixed Relayers watches Socket events → ⅔+ signatures → submits Poll_Submit{msg, sigs, option} off-chain (tx boundary ✂) Msg D — chain NAV reply NAV_RESPONSE · settlementId · chainNav (observed chain NAV) + AdapterValuation[] detail attached Msg C — collect chain NAV COLLECT_NAV · settlementId 2-1 poll 4-2 poll Socket(Msg D) event ✂ 3-1 poll Socket(Msg C) event ✂ Socket(Msg E) event ✂