Cosmic Bull

Packages

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.

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.

Details15 exported symbols · 32,972 bytes · used by 1 application

cashflow

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.

Details16 exported symbols · 33,331 bytes · used by 1 application

coinio

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.

Details3 exported symbols · 5,685 bytes · used by 16 applications

depreciation

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.

Details13 exported symbols · 19,983 bytes · used by 1 application

duebook

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.

Details24 exported symbols · 16,570 bytes · used by 3 applications

feeledger

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.

Details17 exported symbols · 8,723 bytes · used by 16 applications

journal

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.

Details44 exported symbols · 35,285 bytes · used by 8 applications

lots

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.

Details31 exported symbols · 33,062 bytes · used by 1 application

periods

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.

Details13 exported symbols · 32,007 bytes · used by 2 applications

permbook

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.

Details23 exported symbols · 18,208 bytes · no on-chain consumer yet

spendbook

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.

Details17 exported symbols · 25,023 bytes · used by 2 applications

spendbook/v2

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.

Details17 exported symbols · 29,541 bytes · no on-chain consumer yet

statements

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.

Details10 exported symbols · 18,362 bytes · used by 2 applications

tiers

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.

Details12 exported symbols · 36,347 bytes · used by 3 applications

Why packages, not copies

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.

How to import one →