OpenClaw · Skill
Chia Splitxch
Create complex XCH royalty distribution addresses from natural language descriptions.
Install
Start with the primary install command. Alternate entrypoints are included below for ClawHub and OpenClaw CLI users.
Primary command
clawhub install koba42corp/chia-splitxchClawHub installer
npx clawhub@latest install koba42corp/chia-splitxchOpenClaw CLI
openclaw skills install koba42corp/chia-splitxchDirect OpenClaw install
openclaw install koba42corp/chia-splitxchWhat this skill does
Create complex XCH royalty distribution addresses from natural language descriptions.
Why it matters
Handles the basis-points math and nested split ordering automatically, removing the need to manually calculate 9850-point distributions or sequence multi-level API calls.
Typical use cases
- Split NFT royalties between a creator and collaborators
- Divide revenue from a Chia-based service among team members
- Set up cascading splits for a label with sub-artists
- Distribute XCH payments across more than 128 wallet addresses using nested splits
- Preview basis point allocation before committing to an on-chain split
Source instructions
SplitXCH Royalty Split Builder
Create complex XCH royalty distribution addresses from natural language descriptions.
How It Works
SplitXCH creates special Chia blockchain addresses that automatically split incoming payments to multiple recipients based on configured percentages. The API computes a puzzle address; any XCH sent to that address gets distributed automatically on-chain.
Workflow
- Parse the user's plain-language split description into recipients with percentages
- Convert percentages to basis points (scale to 9850 total, API adds 150 bps / 1.5% fee)
- For nested splits (splits-of-splits), build bottom-up: create leaf splits first, then use their addresses as recipients in parent splits
- Call the SplitXCH API via
scripts/splitxch.shor direct curl - Return the generated split address and a summary
Basis Points Conversion
- 10,000 bps = 100%. API fee = 150 bps (1.5%). Recipients get 9,850 bps total.
- Formula:
points = round(percentage / 100 * 9850) - Adjust last recipient so points sum to exactly 9850.
Example: "Split 60/40 between Alice and Bob"
- Alice: round(0.60 * 9850) = 5910
- Bob: 9850 - 5910 = 3940
Building the API Payload
{
"recipients": [
{"name": "Alice", "address": "xch1...", "points": 5910, "id": 1},
{"name": "Bob", "address": "xch1...", "points": 3940, "id": 2}
]
}
Save to a temp file and run:
bash <skill_dir>/scripts/splitxch.sh /tmp/split-payload.json
Nested Splits (>128 recipients or hierarchies)
When the user describes groups within groups:
- Create each leaf-level split first via the API
- Use the returned
addressas a recipient in the parent split - Each split level incurs its own 150 bps fee
Example: "Team A (Alice 50%, Bob 50%) gets 70%, Charlie gets 30%"
- Create Team A split: Alice 4925 + Bob 4925 = 9850 → returns
xch1teamA... - Create parent split: TeamA address 6895 + Charlie 2955 = 9850
Validation Rules
- All addresses must start with
xch1and be valid bech32m - Max 128 recipients per split
- All addresses unique within a split
- Each recipient's points > 0
- Points must sum to exactly 9850
Output Format
After creating a split, present:
- Split Address: The generated
xch1...address - Summary Table: Each recipient's name, address (truncated), and percentage
- Fee Note: "SplitXCH takes a 1.5% platform fee per split level"
- Usage: "Send XCH to this address and it will automatically distribute to all recipients"
If nested, show the full tree structure.
API Reference
For detailed API docs, validation rules, and error handling, see references/api.md.
Important Notes
- The user MUST provide valid XCH wallet addresses for all recipients. If addresses are missing, ask for them before calling the API.
- If the user only provides names and percentages without addresses, list what's needed and ask.
- For dry runs / previews, show the calculated basis points without calling the API.