Primcast
中文

Identity

IdentityRegistry is the chain's single source of facts about wallets. It answers one question for every other contract: what do we know about this address? It does not decide what an asset allows; that is up to each token.

What is stored

FieldMeaning
kycClearedA registrar has completed KYC/AML for the holder of this wallet
kycExpiresAtWhen that KYC lapses (0 = no expiry). Expired KYC fails every KYC check.
accreditedThe holder qualifies as an accredited / professional investor under the registrar's assessment
jurisdictionA short code such as US, DE or US-NY (empty = unknown)
statusActive or Frozen. A frozen account fails every gate on every token.
didOptional W3C DID (did:…) pointing to off-chain credentials
registrar, createdAt, updatedAtWho last wrote the record, and when

No personal data goes on-chain. Names, documents and addresses stay with the registrar. The chain stores only the flags above, which is enough for contracts to enforce rules and for regulators to audit decisions.

complianceOf(address) returns everything a token needs in one call: known, sanctioned, frozen, kycValid, accredited and jurisdiction. kycValid already accounts for existence, freeze and expiry.

Registrars

  • Governance appoints registrars with addRegistrar(address, displayName) and removes them with removeRegistrar. The number of registrars is capped.
  • A registrar can set or update any account with setAccount(subject, did, kycCleared, accredited, jurisdiction, kycExpiresAt), and freeze or unfreeze any account with a reason.
  • A registrar cannot sanction an address, create tokens or move funds.

All registrars are trusted equally. Any registrar can overwrite a record written by another registrar, or freeze any account. Every write emits AccountSet, AccountFrozen or AccountUnfrozen with the registrar's address, so misuse is visible. Removing a registrar is governance's remedy.

Sanctions

  • Only governance can add or remove a sanction: addSanction(address, listSource, reason) and removeSanction(address).
  • The sanctions set is enumerable (sanctionedCount, sanctionedAt), which is how the sequencer's restricted list is built. See Compliance.
  • A sanctioned address fails every application gate: token transfers, subscriptions, dividend claims, redemptions, refunds and token creation. It is also blocked from transacting at all by the sequencer filter once the list refreshes.
  • Sanctions are public by design, including their history (SanctionAdded / SanctionRemoved events).

Using identity as an investor

  1. Complete onboarding with a registrar (off-chain).
  2. The registrar writes your record on-chain. The Account page shows exactly what is stored.
  3. Each asset page shows whether your wallet meets that asset's rules before you act.
  4. Keep your KYC current. On KYC-gated tokens an expired KYC blocks sending, receiving, claiming dividends and completing redemptions until a registrar renews it.

Events

RegistrarAdded, RegistrarRemoved, AccountSet, AccountFrozen, AccountUnfrozen, SanctionAdded, SanctionRemoved.