aging
Track overdue balances and outstanding obligations.
Grouping what is overdue by how late it is turns a list of unpaid balances into an expected loss you can book.
14 reusable /p/ primitives, deployed across mainnet and onyx-1, meant to be imported into your own realms. Not all of them are on every chain — each package page carries its own paths and digest. This is what you build with: the applications show what they compose into.
Track overdue balances and outstanding obligations.
Grouping what is overdue by how late it is turns a list of unpaid balances into an expected loss you can book.
Understand where money comes from and where it goes.
Splits a period's cash movement into operating, investing and financing activity, and says so plainly when the split cannot be determined.
Receive, pay out and sweep coins without rewriting the checks each time.
Every realm that holds funds needs the same payment guards, so they are written once here and audited once.
Know what a capital asset is worth after a given number of periods.
Spreads an asset's cost over its useful life so the carrying amount is a calculation rather than a judgement call.
Authorize an action now and carry it out later.
Keeps the schedule of what is due, when, and whether it has already run, so a realm can concentrate on the action itself.
Keep per-account balances and protocol fees in separate books.
Tracks what each user is owed apart from what the protocol has earned, so the two can never be spent out of the same pot.
Keep double-entry books that always balance.
Every entry is checked before it is recorded, so the ledger cannot drift out of balance one posting at a time.
Work out the cost of the goods you have used.
Draws down inventory lot by lot, so the cost of what left the shelf follows from what was bought rather than from an estimate.
Turn a running ledger into a report for one period.
Shows what moved between two dates, what the period earned, and the closing entry that carries the result into equity.
Define named permissions and check them in one call.
Answers whether an address may do a thing directly, so access rules stay readable as a realm grows.
Let one account spend another's funds, up to a limit.
Gives a delegate a bounded, revocable allowance instead of handing over the whole balance.
Let one account spend another's funds, with a changed expiry honoured.
The first version read the expiry from a stale field, so an owner's queued change could be missed; here every read resolves it the way spending does.
Turn a chart of accounts into finished financial statements.
Each account's type decides its section, its sign and every total, so two readers of the same books get the same statements.
Price an amount against a graduated schedule.
Charges each slice of an amount at its own rate, which is the arithmetic behind volume discounts, tax bands and tiered fees.
On gno.land an import path is a deployed, immutable address — importing a package means running the exact bytes every other consumer runs, and those bytes are byte-verified against the committed source.
Import the path for the chain you are deploying to. The namespaces differ, so the paths are not interchangeable. Each package page carries that path per chain, the full chain-derived API (gnoweb's $help shows only top-level functions of a /p/ package), the digest command to check the deployed bytes yourself, and the recorded limitations.