Case study: Barb Dwyer’s ice cream shop ($100k, 51% / 49%)
A story-driven walkthrough of how you could mirror this capital structure using this site’s XRPL Testnet tools — not legal or tax advice. The ledger records balances and offers; your operating agreement still defines who owns what, how profit is measured, and how dividends work.
The business story
← XRPL RWA overview · Open tokenization lab · Marketplace / DEX page
Barb Dwyer is opening Dwyer’s Creamery, a single-location ice cream store. She needs USD 100,000 in startup capital (build-out, equipment, permits, opening inventory). She wants to keep 51% economic interest in the venture and bring in Ty Coon as an investor for the other 49%, represented as on-ledger token units for this exercise.
Dividends (off-chain policy, on-chain payout): after revenue comes in and expenses are paid (including agreed “business improvement” reinvestment), profit is split 51% to Barb and 49% to Ty under their contract. The XRPL does not calculate profit; Barb’s accountant (or Ty) agrees the number, then you use payments to move value — typically native XRP on Testnet, or in production whatever asset your counsel allows.
How this maps to “tokenization” here
- Issuer account = the company registrar wallet Barb controls on-chain (it mints the IOU that stands in for “Creamery shares” in this demo).
- Holder account(s) = wallets that hold the IOU. Ty is one holder. For Barb’s 51% on-ledger, you want a second holder-class wallet (Barb’s personal/founder wallet), not the issuer account, so ownership reads like two investors on the same token line.
- Cap table on-chain: pick a whole number of units (example: 1,000,000 “ICE” units). Issue 510,000 to Barb’s holder wallet and 490,000 to Ty’s — that is exactly a 51/49 split of the minted float.
- $100,000 raise: the USD 100,000 lives in your subscription agreement and bank wires; the lab only stores a text note (Step 2). Ty’s wire does not auto-magically appear as XRP — you model distributions later with Step 5 payments.
Step-by-step in this app (what to enter & click)
Open XRPL Tokenization and connect Testnet when prompted. Below, each subsection matches a tab in the lab.
Step 1 — Wallets & Faucet
Goal: Create three Testnet identities: issuer (company), Ty’s holder, and Barb’s founder holder. The UI only shows two seed panels at once — use the faucet twice for Ty and Barb, and keep Barb’s founder seed in your notes before you overwrite the holder field, or fund Ty first, copy seeds to a password manager, then fund Barb.
- Under Issuer wallet, click Create funded issuer (faucet). Copy the issuer public address somewhere safe — that is your on-chain “registrar” for
ICE. - Under Investor / holder wallet, click Create funded holder (faucet). Treat this as Ty’s wallet first. Click Load holder and confirm balance/sequence lines populate.
- Save Ty’s seed from the field, then click Create funded holder (faucet) again in a fresh session tab or manually create another Testnet wallet externally — for a clean tutorial, the simplest path is: finish Ty’s flow in one browser session, write down seeds, then start a second session for Barb’s founder wallet. For a single session, paste Ty’s seed into notes, then use Create funded holder again to replace with Barb’s holder seed (you must not lose Ty’s seed).
Step 2 — Asset & Documents
Goal: Off-chain record of what the token is supposed to mean.
- Asset display name: e.g.
Dwyer’s Creamery LLC — Class A participation (demo) - Appraised / notional value: e.g.
USD 100,000 capital raise; 1,000,000 ICE units; Barb 51% / Ty 49% - Description / terms summary: paste a short version of: operating agreement, dividend waterfall (revenue → expenses → improvements → profit split 51/49), and that ICE is a Testnet stand-in for equity-like interests.
- Optionally upload a PDF (term sheet) via Legal & Supporting Documents.
Step 3 — Issuance & Trust
Goal: Define currency ICE, set issuer flags, open trust lines, authorize holders if using RequireAuth, then mint 510k / 490k.
- Currency code (issued IOU): enter
ICE(three letters). - Click Apply issuer flags (DefaultRipple + RequireAuth) or, if you prefer open holding, use only DefaultRipple in a future build — today’s button sets both (see overview help).
- Trust limit (for whoever is currently loaded as holder): enter e.g.
1000000. Click Holder: create trust line to issuer (now to the right of the limit field). - If you used RequireAuth: click Issuer: authorize holder (tfSetfAuth) for Ty’s
r…address (shown after Load holder). - Mint / send to holder: Issue amount (token):
490000→ click Mint / send to holder to move Ty’s 49%. - Switch the holder seed to Barb’s founder wallet, click Load holder, repeat trust line + authorize if needed, then issue
510000for Barb’s 51%.
Step 4 — DEX & Liquidity (Optional)
Goal: If Ty (or Barb) should be able to sell ICE for XRP on the order book, post an offer. Otherwise skip.
- Token amount to place on book: e.g. portion of Ty’s balance Ty is willing to sell.
- Ask (XRP received if filled): total XRP Ty wants if that whole ICE amount clears.
- Choose whether to sign with holder vs issuer checkbox, then Place DEX offer. Use Cancel sequence # + Cancel offer to tear down a mistake.
For a public discovery page with name/description in a database, use RWA DEX & marketplace (admin adds the listing with issuer r… + ICE).
Step 5 — Settlement, XRP Transfer & On-Chain Data
Goal: Model dividends as explicit payments after you have computed profit off-chain.
- Suppose distributable cash for the period is D (USD in real life). Your agreement sends 0.51×D to Barb and 0.49×D to Ty. On Testnet, convert that story into two XRP amounts (rough illustration only).
- Send XRP (uses issuer seed): set Destination r-address to Ty’s public address, Amount (XRP) to Ty’s share, click Send XRP. Repeat for Barb’s address with her share (or Barb sends from a treasury wallet you control — the important part is two deliberate payouts matching 49/51 of the agreed pool).
- Return tokens to issuer (redemption): use if your agreement buys back ICE (e.g. Ty exits under a buyback clause).
- Use Load trust lines / offers / recent transactions to prove what the ledger shows after each quarter’s distribution.
What XRPL did not automate
Revenue recognition, expense categories, “business improvement” caps, tax withholding, and board approval of dividends stay in accounting and governance. Your code gives Barb a reproducible checklist for issuance, permissions, trading, and payouts — the business truth still lives in contracts and books.