For anyone who wants to check the plumbing: how consent is recorded, what the bridge emits, what the vault contract exposes, and how to read a payout on the chain.
Four components. Three are off-chain services we run. One is a contract on Robinhood Chain that anyone can read.
| Component | Runs where | Holds |
|---|---|---|
| Consent service | Our servers | Signed consent records, relative preferences, wallet mapping |
| Call bridge | Telephony provider plus our media layer | Per-second connection and live-audio flags for the duration of a call, then discarded |
| Verifier | Our servers | Call summaries (start, end, connected time, audio ratio, confirmation) and device integrity results |
| Vault contract | Robinhood Chain | Stock tokens, per-stock fragment sizes, earmarks, nullifiers, payout events |
Created when a relative taps yes. Stored off-chain, hashed on-chain alongside their wallet so a payout can prove consent existed without revealing the phone number.
Withdrawal: replying STOP or tapping withdraw sets withdrawn_at. Future calls do not pay. Existing fragments are untouched.
The bridge places two outbound legs and joins them. It emits a per-second event stream to the verifier for the duration of the call. Events are not persisted beyond the running window needed to compute the summary.
Turns the event stream into a pass or fail. The rules are fixed and public.
On pass, the verifier signs a payout authorization and submits it to the vault contract. The authorization carries the call ID, both wallet addresses, the stock, and the verifier's signature. The contract checks the signature against the current verifier key, checks the nullifier is unused, checks the balance, and pays.
payout reverts if the call ID has been used, the verifier signature is invalid, or the balance (general plus earmark for that relative) cannot cover two fragments. Earmarked balance is spent first.
Anyone can add stock to the vault earmarked for a specific relative's wallet. Earmarked stock only pays out on calls with that relative. This is how a family funds its own calls.
A company or fan can add to the general pool for a specific stock. Sponsored balance pays any relative who chose that stock. Sponsors get a public event and nothing else. No data, no targeting, no message in the call.
Every payout is a Paid event. Filter by relative wallet to see a family's history, or by stock to see how much of a company has gone out to grandmothers. The Vault page does this for you.
Phone numbers, names, call times, or anything about the conversation. The chain sees two wallets, a stock, a fragment, and an opaque call ID.