| Layer | Grants | Question it answers |
|---|---|---|
| Network membership | Capability | May I call this kind of operation on this network at all? |
| Consent | Permission | May I query this particular subject? |
| Entitlement | Visibility | Of the data that exists, which records and fields may I see? |
Where entitlement comes from
SOLO maintains, per participant, a ledger of which records that participant has earned the right to read. Entries land in the ledger three ways.Furnishing
When you furnish data for an entity, SOLO records an entitlement link for each record you contributed, tied to your entity and the subject’s profile. On future queries for that subject, those records — and the consolidated results built from them — are readable by you. This is the most direct path: furnish what you know about a consumer or business, and subsequent queries for that subject return data — yours, plus anything else you’re entitled to — consolidated into one result.Querying
When you query an entity (with valid consent), SOLO records entitlement links for the records that query actually read. Having lawfully queried a subject, you remain entitled to the data that query covered. Entitlement therefore accrues over time. Each legitimate interaction — furnishing or querying — widens the set of data you can see for the entities you’ve actually engaged with. At read time, SOLO takes the union of your furnish-derived and query-derived entitlements.Field access grants
The third source is explicit: a field access grant. A grant ties a consent record to a furnishing entity and enumerates the specific field definitions you may read from that furnisher’s data about the subject. Grants are created automatically when a consent record is created, and they are returned when you read the consent back:- Effective windows. A grant carries
effective_fromandeffective_todates. A grant outside its window contributes nothing. - Revocation. A revoked grant stops contributing immediately, regardless of its window.
- Consent expiry. Grants ride on the consent they belong to — when the consent expires, its grants stop expanding your access.
How entitlement is enforced
Entitlement is enforced at read time, per record. When you run a query, SOLO loads your ledger for the subject — the union of everything you’ve earned through furnishing and through prior queries — and filters the candidate records down to the ones the ledger covers. Records you aren’t entitled to are simply not consulted when the consolidated result is built; they don’t appear redacted, they don’t appear at all. Three consequences follow from this design:- Entitlement is per subject. Furnishing one consumer earns you nothing about a different consumer, even one furnished by the same institution into the same network.
- Entitlement is per participant. It attaches to your entity. It is not shared across a network, not inherited from a parent network, and not transferred when roles change hands.
- Entitlement doesn’t expire on its own. Furnish- and query-derived entitlements persist; only field access grants carry effective windows and revocation. (Consent, by contrast, can expire — and you always need valid consent to ask in the first place.)
Putting it together
A query result is shaped by three layers, applied in order:Consent
You hold a valid consent record for the
subject — you’re permitted to ask.
Policy ceiling
The network’s querying policy
defines the maximum set of fields this product can expose in this network —
for anyone.
| Question | Answered by |
|---|---|
| In this network, what is this product allowed to expose at all? | Querying policy — what may be read |
| Of that, what have I personally earned the right to read? | Entitlement — what you may read |
This is why two participants can run the same query on the same entity
and get different results: each sees only the data they’ve earned access
to. The policy is shared; the entitlement ledger is per-participant.
Worked examples
The JSON below is illustrative sketches, trimmed to the fields that matter for each example.Example A: a furnisher reads back its own furnished fields
Coastal Bank furnishes a KYC record for Jane Doe into its network:Example B: a querier sees gaps because it lacks entitlement
Summit Bank — a member of the same network, with the querier role and a valid consent for Jane — runs the identical query. Summit has never furnished or queried Jane, and no grant names Summit. The query is authorized (membership- consent), and the policy would allow the fields — but Summit’s entitlement ledger has nothing for Jane:
403. For certificate products, if the entitled
data can’t satisfy the policy’s requirements at all, the API returns 204 No Content instead of issuing a certificate.
Example C: a field access grant expands the result
Jane now consents to Summit’s inquiry, and the consent’s field access grant names Coastal as the furnishing entity whose data Summit may read:- Before (no grant)
- After (grant active)
What entitlement is not
- Not a role. Being a governor of a network does not entitle you to members’ data.
- Not network containment. Sharing a network with another participant does not entitle you to what they furnished.
- Not retroactive by configuration. Changing roles, network settings, or governance rules does not grant access to data you didn’t earn through your own furnishing, querying, or an explicit grant.
- Not a bypass of policy. An entitlement (or grant) to a field the querying policy excludes still returns nothing — the policy is the ceiling.
Troubleshooting: “why is this field missing?”
Work down this checklist when a query succeeds but a field you expected is absent:- Is the field enabled in the querying policy? The policy caps every reader. Check the policy’s field configuration — see Querying Policies.
- Have you furnished this subject? If not, you have no furnish-derived entitlement to their records.
- Have you previously queried this subject? Query-derived entitlement only covers what earlier queries actually returned.
- Is there a field access grant for you — and is it alive? Check the
consent record’s
field_access_grants: is the field listed infield_definitions, is today insideeffective_from/effective_to, has the grant been revoked, has the consent expired? - Was the data furnished at all? Entitlement filters existing data; it can’t surface a field nobody contributed. A coverage check tells you whether data exists before you spend a query.
- Are you querying the right network scope? Data is network-bounded; see Network Governance for which networks your query can reach.
request_id from the response.
Related concepts
Consent
The permission layer that gates whether you may query at all — and carries
field access grants.
Querying Policies
The per-network ceiling on what a product can expose.
Querying
How entitlement is applied when a query runs.
Furnishing
Contributing data — the most direct way to earn entitlement.