Field registry
SP/1 defines a closed registry of twelve field keys. Grants MUST reference registry keys exactly; implementations MUST NOT invent ad-hoc keys inside the protocol surface (extension fields belong in a future registry revision — see governance).
Registry
Section titled “Registry”| Key | Label | Notes |
|---|---|---|
first_name |
First name | |
last_name |
Last name | |
email |
Lowercased before hashing/blind-indexing | |
phone |
Phone | |
address_line1 |
Address line 1 | |
address_line2 |
Address line 2 | |
city |
City | |
state |
State / region | Two-letter USPS code for US addresses |
zip |
ZIP / postal code | |
country |
Country | Short country code preferred (e.g. US) |
company |
Company | |
date_of_birth |
Date of birth | Opt-in only; MUST NOT be required by a recipient |
Scope groups
Section titled “Scope groups”Groups exist for consent presentation and update propagation; they expand to registry keys on the wire:
| Group | Expands to |
|---|---|
address |
address_line1, address_line2, city, state, zip, country |
- Values are UTF-8 strings, trimmed, 1–500 chars.
- A grant’s
fieldsarray MUST be non-empty and MUST be a subset of the registry. Order is not significant on the wire, but fingerprint inputs use the array as-granted (see fingerprints). - Recipients MUST NOT receive, cache, or infer fields outside the granted set.
- Subject updates to a field propagate to every active share whose scope
includes that field (
consumer.updated.*events) — and to no other share.