ONCHAINID Integration
ONCHAINID provides on-chain identity contracts that store verifiable claims about participants. Galileo uses ONCHAINID for KYC/KYB verification in compliant token transfers.
Claim Topics
Galileo defines 12 standard claim topics:
| Topic ID | Name | Purpose |
|---|---|---|
| 1 | KYC | Individual identity verified |
| 2 | KYB | Business identity verified |
| 3 | AML | Anti-money laundering cleared |
| 4 | ACCREDITED | Accredited investor status |
| 10 | BRAND_ISSUER | Authorized to create product DIDs |
| 11 | SERVICE_PROVIDER | Authorized service provider |
| 20 | COUNTRY | Country of residence/registration |
| 21 | JURISDICTION | Regulatory jurisdiction |
Identity Contract
Each participant deploys an Identity contract using CREATE2 for deterministic addresses:
interface IIdentity {
function addClaim(
uint256 topic,
uint256 scheme,
address issuer,
bytes calldata signature,
bytes calldata data,
string calldata uri
) external returns (bytes32 claimId);
function getClaim(bytes32 claimId)
external view returns (
uint256 topic,
uint256 scheme,
address issuer,
bytes memory signature,
bytes memory data,
string memory uri
);
function getClaimIdsByTopic(uint256 topic)
external view returns (bytes32[] memory);
}Trusted Issuers
Claims are only valid if issued by trusted issuers registered in the TrustedIssuersRegistry:
- KYC providers (Onfido, Jumio, etc.)
- Accreditation bodies
- Brand verification services
Transfer Verification Flow
- Token transfer initiated
- Compliance module queries receiver's ONCHAINID
- Required claim topics checked (KYC, COUNTRY, etc.)
- Issuer validity verified against TrustedIssuersRegistry
- Transfer approved or rejected
Privacy Considerations
Claims use minimal disclosure:
- Claim data can be hashed (only hash stored on-chain)
- Actual data stored off-chain with controlled access
- Zero-knowledge proofs supported for sensitive claims