IPersonhood
Title: IPersonhood - Proof of Personhood Precompile
Query personhood status of an account.
Available at address 0x000000000000000000000000000000000a010000. The precompile reads from the alias-accounts pallet which stores per-context alias mappings backed by ring membership proofs. Ring roots are received from the People chain via XCM pub/sub. Example usage: IPersonhood personhood = IPersonhood(0x000000000000000000000000000000000a010000); IPersonhood.PersonhoodInfo memory info = personhood.personhoodStatus(someAddress, bytes32("dotns")); if (info.status == 2) { // full person ... }
Note: security-contact: admin@parity.io
Functions
personhoodStatus
Returns personhood info for an account within a specific application context.
function personhoodStatus(
address account,
bytes32 context
)
external
view
returns (PersonhoodInfo memory info);
Parameters
| Name | Type | Description |
|---|---|---|
account | address | The address to query. |
context | bytes32 | A 32-byte application identifier. Each application picks a fixed constant (e.g. bytes32("dotns")). The same person receives a different contextAlias in each context, preventing cross-application linkability. |
Returns
| Name | Type | Description |
|---|---|---|
info | PersonhoodInfo | The personhood info struct. All fields are zero when the account has no personhood. |
Structs
PersonhoodInfo
Personhood information for an account in a given context.
status tiers are defined incrementally: 0=None, 1=Lite, 2=Full. If we add more types in the future, the existing ones remain unchanged.
struct PersonhoodInfo {
uint8 status;
bytes32 contextAlias;
}
Properties
| Name | Type | Description |
|---|---|---|
status | uint8 | The personhood verification tier. |
contextAlias | bytes32 | Context-specific 32-byte pseudonym derived from ring membership proof. Unique per person per context, preventing cross-application linkability. Zero when status is None. |