$OPERATOR and $APPROVER are two bearers.
Tx 1 · The price source publishes the period-end NAV
The price source signs the period-end NAV point from its own NAV system (aPublishedNav, read through the Oracle interface). The point carries the withholding rate the period is taxed at.
Preview, then freeze the plan
GET /v1/distribution-calendar lists the record and payment dates due; the preview shows what a distribution would pay now, each line, and who is left out and why. Executing freezes the plan, under four eyes.
curl
period, a plan for another period is refused (period-mismatch). A period whose NAV points carry more than one withholding rate is refused rate-changed-in-period unless the body says "acknowledgeRateChange": true. A period is distributed once, and the next waits until every paid line of the last is booked (distribution-unrolled).
The price source’s distribution list
Where the fund’s administrator states each holder’s distribution, the plan becomes payable only once its list agrees. Its feed posts the list as a statement, under afeed bearer; the export is the frozen plan to compare it with.
curl
distribution.payable); one that does not holds the fund (distribution.held). See Events and webhooks.
Tx 2 to 4 · The issuer pays; each holder accepts
On its DA Registry, the issuer pays each line of the export once: a mint to itself (Tx 2), then a transfer to the holder (Tx 3), which the holder’s custodian accepts in its wallet (Tx 4,TransferInstruction_Accept). A holder that preapproved the fund’s payouts accepts nothing: Tx 3 completes at once. The issuer reads GET /v1/distributions/{distributionId}/export for the lines and GET /v1/distributions/{distributionId} for those already booked, so it pays no line twice.
Tx 5 · Book each paid line
Rolling books every delivered line to its holder’s record (income, withholding, balance); a line not yet delivered stayspending, so calling again is safe. The distribution reads paid once every line is booked.
curl
Period end with no manual step
A standing approval lets NodeAsset’s scheduler execute the fund’s due periods itself, within bounds: at most a year, a cap on one period’s payout and on the NAV’s yearly growth, and only on a clean book. It takes two approvers besides its maker, and one call revokes it.curl
distribution.due). A period the scheduler refuses, such as one over the payout cap, is final for that grant, and the announcement says why.
Back to the workflow: Distributions and period end
