This primer explains how to set resale royalty splits for a builder mint after you have minted a cubixles_ builder token. The builder mint deploys a per-token BuilderRoyaltyForwarder that you (the minter) own. You can update the split at any time.
If you minted via the legacy/bootleg flow, this document does not apply. That flow uses the shared RoyaltySplitter; see docs/royalty_setter.md.
0x35aD1B49C956c0236ADcD2E7051c3C4e78D4FccA.royaltyForwarderByTokenId(tokenId).setSplits(recipients, bps). recipients is an array of addresses. bps is an array of uint16 values in basis points. The sum of bps must be <= 10000 (100%). Any remainder (if sum < 10000) goes to the forwarder owner.getSplits() or pending(address).export RPC_URL="https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY"
export TOKEN_ID="4186"
export BUILDER_MINTER="0x35aD1B49C956c0236ADcD2E7051c3C4e78D4FccA"cast call \
--rpc-url "$RPC_URL" \
"$BUILDER_MINTER" \
"royaltyForwarderByTokenId(uint256)(address)" \
"$TOKEN_ID"export FORWARDER="0xYourForwarderAddress"
cast send \
--rpc-url "$RPC_URL" \
--private-key "$WALLET_PRIVATE_KEY" \
"$FORWARDER" \
"setSplits(address[],uint16[])" \
"[0xAlice...,0xBob...,0xTreasury...]" \
"[6000,2500,1500]"cast call \
--rpc-url "$RPC_URL" \
"$FORWARDER" \
"getSplits()(address[],uint16[])"Suppose you want:
Use:
recipients = [alice, bob, treasury]bps = [6000, 2500, 1500]If you instead set [6000, 2500], the remaining 15% automatically accrues to the forwarder owner.
Royalties are credited to pending(address) for each recipient. Each recipient withdraws their own balance by calling withdrawPending() from their wallet.
To remove all splits and revert to the default (100% to the owner), call:
cast send \
--rpc-url "$RPC_URL" \
--private-key "$WALLET_PRIVATE_KEY" \
"$FORWARDER" \
"setSplits(address[],uint16[])" \
"[]" \
"[]"