cashflow
reportingPublish a cash flow statement over a ledger you do not own.
Reads a book it cannot write, so a statement can be shared without handing the publisher any power over the records.
gnoland-1 · onyx-1
Building, composing, verifying, and deploying open on-chain software.
Cosmic Bull assembles complete applications out of reusable packages — the same ones offered to you — and ties every deployment back to its committed source with a byte-for-byte match on chain.
Explore the ecosystemStart building
consumed_by entry in the catalog, not an illustration. Showing the 3 most-imported packages and 8 of the realms that import them; the full index has the rest.One deployment, in full: p/aging on onyx-1
3f1695ea…13c462height 362,56277510a46…1ae58832,972 bytesonyx/p/aging/aging.gno✓ byte-matchThe factory is a repeatable way of making on-chain software, not a pile of contracts. Each application goes through the same lifecycle, and each stage leaves a public artifact you can read: discovery records, composition decisions, test results, audits, byte-matches and deployment records.
Search what already exists — on the chain and in the ecosystem — before writing anything. Every build decision starts from a committed discovery record.
Prefer assembling verified, reusable packages over new infrastructure. The applications here import the same primitives offered to you. Browse the packages →
Write the smallest realm that completes the objective, in the open, with its design decisions written down. Start building →
Unit tests, file tests and adversarial cases against a chain-matched toolchain, with the dependency set proven to match the target chain before a green result is believed.
Audit the code, byte-match the deployed bytes against the committed source, and record what was checked — and what was not. How verification works →
Deploy to gno.land with the transaction, cost, live verification and known limitations written into a permanent record. See what is deployed →
This is not a roadmap. Deployed and byte-verified today, on the gno.land mainnet and the onyx-1 testnet:
Every deployment has a transaction hash, a byte digest and a written record. Nothing on this page is aspirational.
Applications are complete on-chain realms — marketplaces, bounty systems, grants programs, vaults, fee splitting, registries. They demonstrate what the factory can build.
Publish a cash flow statement over a ledger you do not own.
Reads a book it cannot write, so a statement can be shared without handing the publisher any power over the records.
Pay whoever triggers the maintenance calls nobody owns.
Permissionless upkeep only happens if someone shows up, so this funds a bounded reward and the work gets done on time.
Composed from 4 first-party packages
Let delegates spend from a shared pot, within limits you set.
A delegate draws what it needs without asking again, while the owner keeps a spending cap and the power to revoke.
Those three are not a curated pick: they are the applications that compose the most first-party packages, ranked from the catalog and re-ranked whenever it changes. Every chip above is an import the chain reports.
assetsauctionbooksbudgetscashflowcrowdfunddepositsfee_split/v2inventoryinvoiceslatefeesloansmetersnettingpayrollpayslipspermission_registryreceivablesreimbursementsrevsharesealedbidservice_marketservice_registrystatementssubscriptionstimelock_guardianupgrade_registryupkeepvesting
All applications, with provenance →
Packages are the reusable primitives those applications are composed from. They demonstrate what you can build with.
Track overdue balances and outstanding obligations.
32,972 bytes · live on onyx-1 · used by 1 application
Understand where money comes from and where it goes.
33,331 bytes · live on onyx-1 · used by 1 application
Receive, pay out and sweep coins without rewriting the checks each time.
5,685 bytes · live on mainnet and onyx-1 · used by 16 applications
Know what a capital asset is worth after a given number of periods.
19,983 bytes · live on onyx-1 · used by 1 application
Authorize an action now and carry it out later.
16,570 bytes · live on mainnet and onyx-1 · used by 3 applications
Keep per-account balances and protocol fees in separate books.
8,723 bytes · live on mainnet and onyx-1 · used by 16 applications
Keep double-entry books that always balance.
35,285 bytes · live on mainnet and onyx-1 · used by 8 applications
Work out the cost of the goods you have used.
33,062 bytes · live on onyx-1 · used by 1 application
Turn a running ledger into a report for one period.
32,007 bytes · live on onyx-1 · used by 2 applications
Define named permissions and check them in one call.
18,208 bytes · live on mainnet · no on-chain consumer yet
Let one account spend another's funds, up to a limit.
25,023 bytes · live on mainnet and onyx-1 · used by 2 applications
Let one account spend another's funds, with a changed expiry honoured.
29,541 bytes · live on mainnet and onyx-1 · no on-chain consumer yet
Turn a chart of accounts into finished financial statements.
18,362 bytes · live on onyx-1 · used by 2 applications
Price an amount against a graduated schedule.
36,347 bytes · live on onyx-1 · used by 3 applications
Every important claim here is checkable against the chain, a generated artifact, or a committed record. Each package page shows the transaction that deployed it, the digest of the bytes the chain is running, what was proved about it, and — stated as plainly as the rest — what was not.
You do not need our tooling to test the central claim. This fetches the bytes onyx-1 is actually executing for one package and prints their digest:
curl -sS 'https://onyx.testnets.gno.land/p/g1ut6uspuh73e02yauxpmyt8g3wwddaq8utagvm3/aging$download&file=aging.gno' | shasum -a 256The result should equal the sha256 on that package's page. Each deployment carries its own command, against its own chain. The verification model in full →
1 of 52 deployments on a live chain does not byte-match, and this is which
r/deposits on onyx-1 — an unintended divergence. BYTE-MATCH FAILED, and the divergence is 10 bytes in two '//' comment lines. What was measured about it, in full →The figures above cover the chains this site publishes. They are not a portfolio-wide total: a chain not published here is outside what they count, and this page makes no claim either way about one.
import "gno.land/p/g1ut6uspuh73e02yauxpmyt8g3wwddaq8utagvm3/aging"
On gno.land the import path is the deployed address — there is no address book and no bytecode to pin.
All 14 packages, with their APIs →
gnokey maketx call …
Every application page generates the call for its own chain, with the arguments its exported signature declares.
How to call one, end to end →
curl … | shasum -a 256
Fetch the bytes the chain is executing and compare the digest yourself. Nothing on this site asks to be taken on trust.
The verification model in full →
The factory is the foundation. On top of it sits the software — applications and the packages they share — and around the software, the people: developers who import the packages, users who call the applications, contributors who improve both. That is the ecosystem this site is the home of, and it stands on its own: everything described above exists today and works without any further layer.
Participation has a future shape too: contributions — code, documentation, testing, research — recognized around the working ecosystem. None of that is live yet, and this site will not pretend otherwise — how participation will work.