Choose the token
A dividend starts with the token whose holders you want to pay. This desk reads token metadata from a Pearlscriptions indexer you choose (GET-only — it never writes anything), or from metadata you type by hand when no indexer is reachable. Either way, the holder list itself always comes from your snapshot in step 2 — the indexer is never trusted for who gets paid.
Token card
- Ticker
- Max supply
- Minted
- Holders (indexer count)
- Decimals
- Indexer height
- Metadata source
The holder count above is the indexer's claim — your snapshot in step 2 is the list that actually gets paid, and the desk re-checks this count for drift before you broadcast.
Seal the holder snapshot
Paste your holder list as CSV — address,balance per line, balances in token units.
Export it from an indexer you run, or assemble it by hand. Every address is validated in-browser
(bech32m prl1…/tprl1…), duplicates are merged or refused — your call — and the
canonical list is sealed under a tamper-evident pearl-div-snapshot:v1 descriptor with a
64-bit fingerprint. The fingerprint binds the holder list only, so anyone can re-seal the
same CSV later and reproduce it exactly.
Duplicate addresses
The same address appears more than once. Merge (balances summed) or refuse (snapshot rejected).
Snapshot sealed
- Holders
- Total token units
- Supply check
- Fingerprint
Strike the dividend plan
Set the pool and the distribution rule. Every share is grain-exact integer math: proportional shares are floored, so the leftover — every single grain — is accounted as the remainder and returns to you (or to a treasury address) in the last transaction. Shares below the dust floor are dropped loudly, never silently. Recipients are chunked into transactions of at most 250 outputs.
Dividend plan
- Eligible / paid
- Total to holders
- Builder tip (optional)
- Remainder
- Dust-dropped
- Transactions
- Est. fees
- Plan fingerprint
Share table
| # | Address | Token balance | Share (PRL) | Tx |
|---|
Fund the payout
Point the desk at the funder's UTXOs — read live from Blockbook (GET-only) or paste them air-gapped. Coins are assigned per transaction, largest-first, covering that transaction's payouts plus its fee. The desk refuses loudly if any transaction is short.
Funding plan
Sign each payout
Every payout transaction is signed locally — the funder's key never leaves this page, is wiped after signing, and must control the funder address (the desk refuses otherwise). Each transaction's signatures are re-verified locally before the hex is shown. For air-gapped signing, export the unsigned bundle, sign it on the offline machine, and import it back.
Signed
- Txid
- Fee
- Signatures re-verified
Broadcast
Broadcast each signed payout transaction. Every broadcast is behind a double-confirm gate — arm, then confirm. Track confirmations per transaction below.
Verify — no trust required
Anyone can audit a dividend with three artifacts: the holder CSV, the dividend plan JSON, and the payout transactions (fetched live from Blockbook or pasted). The verifier re-seals the snapshot, recomputes every share from the plan's rule, and checks each payout transaction output-by-output. Verdict: PROVEN or NOT PROVEN — tampering is refused loudly, never averaged away.
Honest limits
- The holder list is yours, not the chain's. Pearl has no smart contracts and the PRL-20 ledger lives in the Pearlscriptions indexer — this desk pays whoever is in your CSV. A dividend is only as fair as the snapshot you seal; the verifier lets anyone re-check your work, but it cannot conjure a trustless holder set.
- Indexer metadata is a convenience, not consensus. Ticker, supply, and holder counts are read GET-only from an indexer you choose. If it lies, your snapshot is still exactly what you pasted — garbage in, audited garbage out.
- Snapshots go stale. Tokens move between your snapshot and broadcast. The desk pins the indexer height at seal time and warns on drift, but it cannot freeze the ledger.
- Dust is real. Shares below the dust floor cannot exist on-chain; they are dropped and disclosed. Tiny pools over many holders mostly evaporate into the remainder — the plan shows you before you spend a grain on fees.
- Optional builder tip. If you tick it in step 3, the last payout transaction carries
one extra output — 1% of the pool, paid by you on top of the pool to the builder address
prl1p62v09vuzyd8kdz9l23jaf3kph4wwx6jqcmhkkhg8lhr2qlxky8psu3zw9d— so holder shares are never reduced. It is off by default, mainnet only, waived when 1% would fall below the dust floor, sealed in the plan descriptor before anyone signs, and the standalone verifier recomputes it. - Keys. Pasted secrets live in memory only and are wiped after signing. Prefer the air-gapped bundle flow for mainnet money.