customers module covers the full investor lifecycle: creating customer records, verifying identities on-chain via the contract, sending KYC verification links, and bulk-synchronizing with your existing databases.
Sub-modules
KYC Proofs
The core journey: generate zk-STARK KYC proofs locally, verify customers on-chain with the root hash, add proof-backed claims.
Management
Create, update, search, and archive customer records. Link wallets to pre-registered customers. Query by name, address, external ID, or reference key.
Identity Verification
Verify identities on-chain, manage claims, check KYC status, run transfer compliance checks. Single and batch operations with full transaction receipts.
ID Links
Generate and manage Sumsub-powered KYC verification links. Send via email or SMS, optionally charge a fee, track status, revoke or resend.
Verification Profiles
Read the reusable KYC requirement sets configured on your instance (beta).
Database Sync
Bulk-import customer records from existing systems. Configurable conflict resolution, optional on-chain verification, progress tracking.
Typical integration flow
A bank onboarding existing customers onto tokenized assets typically follows this sequence:1
Import existing customers
Use
sync.importRecords to batch-import customer records from your core banking system, mapped by your internal customer ID (externalId). Customers without a wallet address receive a referenceKey for later linking.2
Generate KYC proofs locally
Run the KYC proof tool against the customers you have already KYC’d. It produces a proof bundle and a root hash per customer - no KYC data ever leaves your infrastructure.
3
Collect wallets
For customers who already have a wallet, use
manage.linkWallet to associate their address with their Trusset record. For investors who still need identity verification, send hosted KYC links via idLinks.create instead - they complete Sumsub and connect a wallet themselves.4
Verify on-chain
Call
identity.verifyFromManifest per customer, or identity.batchVerify with each subject’s root hash, to register identities on the IdentityRegistry contract. This enables compliant token transfers for those addresses.5
Add claims
Use
identity.addClaimsFromProof to attach proof-backed claims (KYC, residency, citizenship, accreditation) and identity.addClaim for your own attestations (AML, sanctions, PEP, tax residency).6
Ongoing compliance
Use
identity.canTransfer before token operations to check real-time compliance. Use identity.getStatus to monitor KYC expiry and on-chain state.