A worked scope class for a provider that reads records through your API on behalf of a named person, such as a reporting or planning service your staff or your customers use.
Reading is the most common thing a provider does through an API, so the guardrails are about how much, on whose authority, and nothing else.
Everything on this page is illustrative. It is not published as a scope class, it binds nobody, and no member is admitted into it. The real one for your API is written with you.
Part A
The scope class: the guardrails
Each action is allowed or denied, and an allowed action may carry a limit. These are control points based on rules. They make sure the provider behaves, or it pays a fixed sum.
| Action | Rule | Limit |
|---|---|---|
Read one recordread.record | Allow | All reads together: up to 600 an hour and 5,000 a day |
Read a list or run a searchread.collection | Allow | Up to 200 an hour, within the total above |
| Keep sessions open | Allow | Up to 10 at once |
| Create a record | Deny | — |
| Change a record | Deny | — |
| Delete a record | Deny | — |
| Move money | Deny | — |
| Send a message to someone else | Deny | — |
Every read needs a delegation: the authority of a named person or organization on whose behalf the provider is reading, valid for at most 24 hours. The person is named in the report, and the provider states that it checked the authority.
Limits are counted per provider and count only the calls the provider made. They are set per hour and per day, because a limit per session could be dodged by opening more sessions.
Those rules still exist, at your own edge. You may always apply a restriction stricter than the class, privately, without telling anyone. A refusal under that right is not a breach by anybody.
The class names kinds of call, not your endpoints. You map each of your endpoints to a kind, by what it actually does. An endpoint that reads and quietly writes maps to the write.
| Both sides report | The provider also reports |
|---|---|
| Session open, one report for each call, session close | The delegation the session rests on |
| On every report: the session identifier, who sent it and in which role, the kind of call, who initiated it, and the field names with a fingerprint of their values | The build of the software that made the calls |
| # | Breach | Fixed sum |
|---|---|---|
| B1 | Attempting a denied actionAn attempt counts, whether or not it succeeded | $250per session |
| B2 | Reading without a valid delegationNone, expired, or beyond what the person authorized | $500per session |
| B3 | A session or call you saw, with no report from the providerNever cheaper than B2: silence must not pay | $500per session |
| B4 | A false or misleading reportIncluding a call mapped to a kind that understates what it does | $500per report |
| B5 | A late reportThe common case: a provider that forgot | $50per report |
| B6 | A limit exceeded | $100per hour |
Sums are paid by the provider to you, never to Rootwall. No single breach costs more than half of a provider’s yearly membership. Aggregate cap: $5,000 per provider, per counterparty, per rolling 30 days. Standing moves too: repeated breaches put a provider under review, and can suspend it. Illustrative figures for this example.
A class that also allowed creating and changing records would move everything else with it:
What does not change: the rules themselves, the reporting standard, or anything in the rulebook. A scope class sets what a provider may do. It never varies a rule.