Skip to main content
This page is for the engineer wiring an existing customer base into Trusset. After reading it you will know which sub-module does what, and the order to call them in. The 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.
All customer operations hang off trusset.customers:

Sub-modules

KYC Proofs

The core journey: register your operator key, generate zk-STARK KYC proofs locally, verify customers on-chain with the root hash, and 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.

Onboard an existing customer base

A bank onboarding its existing customers 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. The KYC data itself never leaves your infrastructure; the root, the manifest and the proofs do.
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), sending the manifest signature and STARKs with it, 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.