# Payment Splitter > ⚠️ **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](https://github.com/moul/gno-contracts/blob/main/r/moul/x/daily/README.md) --- 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` ## Example calls ``` # 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:" ``` ## What changed in v1 State moved from a hand-rolled `avl.Tree` + `nextID` + zero-padding helper to [`p/moul/kit/store`](/p/moul/kit/store/v0), which keys entries by [`seqid`](/p/nt/seqid/v0) instead of a fixed-width decimal string. v0 padded ids to width 12. Past that width the padding stops and the tree orders `"1000000000000"` before `"999999999999"`, so every list this realm renders would be wrong from that entry on. `store` keys are 8 big-endian bytes whose order is numeric for every `uint64`, so there is no width left to outgrow. `group` loses its `id` field, which the store now owns, and **group ids start at 1** where `v0` handed out 0 for the first group. This is a storage change, which under this repo's versioning rule is a compatibility change, hence a new version rather than an edit in place. [`v0`](https://github.com/moul/gno-contracts/tree/4f2df83869b80470eb81c48a82fdbe82256b8113/r/moul/x/daily/splitter) stays live and untouched. --- Part of **[moul/gno-contracts](https://github.com/moul/gno-contracts)** — moul's versioned gno.land contracts. See the repository for the full catalog, build/test tooling, and usage. **Dependency graph:** ![gno.land/r/moul/x/daily/splitter/v1 dependency graph](https://raw.githubusercontent.com/moul/gno-contracts/main/_assets/gno.land/r/moul/x/daily/splitter/v1/deps.png) > 🧪 **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](https://github.com/moul/gno-contracts/blob/main/DISCLAIMER.md).