func RecordIncome
crossing ActionRecordIncome adds amount to the pool of group id. amount must be positive.
Community realm. Read the code first. Community realm, deployed by its author. Read the code before you interact or send coins.
Package splitter is a share-based payment splitter for gno.land.
⚠️ Experimental — generated with no human supervision. This realm was produced automatically by an MCP-driven agent to exercise the gno MCP server and tooling, and to generate test content for gno compilers, linters and formatters. Not audited. Not for production. Full context & folder README: r/moul/x/daily
A share-based payment splitter for gno.land — an accounting-only port of the
Solidity PaymentSplitter. No real coins move: each group tracks payees, their
integer shares, and a pooled income figure, and computes what each payee is owed
as amount * share / totalShares.
Register a group with comma-separated payee addresses and matching shares, record
income against it, and Render shows every group's per-payee owed amounts
(integer division; any rounding remainder is displayed separately).
Realm path: gno.land/r/REPLACE_ADDR/splitter
# Create a group: alice gets 3 shares, bob gets 1 -> returns group id 0
Register("g1alice...,g1bob...", "3,1")
# Record 100 units of income into group 0
RecordIncome(0, 100)
# View the ledger (alice owed 75, bob owed 25)
gnokey query vm/qrender --data "gno.land/r/REPLACE_ADDR/splitter:"
Part of moul/gno-contracts — moul's versioned gno.land contracts. See the repository for the full catalog, build/test tooling, and usage.
Dependency graph:

🧪 Highly experimental — potentially vibe-coded. Not audited; may break, change, or be removed at any time. Do not use with anything of value. Full disclaimer: DISCLAIMER.
Package splitter is a share-based payment splitter for gno.land.
It is an accounting-only port of the Solidity PaymentSplitter pattern: no real coins move. A group is registered with a list of payees and a matching list of integer shares. Income recorded against a group is pooled, and each payee is owed a slice of that pool proportional to their shares: owed = pool * share / totalShares.
RecordIncome adds amount to the pool of group id. amount must be positive.
Register creates a new group from comma-separated payees and shares. payees: "g1abc...,g1def..." (addresses) shares: "3,1" (positive integers, same count as payees) Returns the new group id. Panics on malformed input.
Render shows all groups, their payees, shares, and computed owed amounts.