Skip to content

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).

Key Label Notes
first_name First name
last_name Last name
email 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

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 fields array 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.