Complete KYC through an anchor
When to use
Use when an individual wallet needs a reusable Keeta KYC certificate or an asset-movement provider requests KYC attributes. The public guide demonstrates the Footprint sandbox KYC anchor for country US; it does not establish Footprint production availability. Signzy is not named by the current public SDK guide, so do not substitute Signzy endpoints.
SDK steps
Confirm the environment, individual account, country codes, provider privacy terms, and attributes the user is willing to disclose.
Discover providers with the KYC client:
const kycClient = new KeetaAnchor.KYC.Client(userClient); const countries = await kycClient.getSupportedCountries(); const providers = await kycClient.createVerification({ countryCodes: ['US'], account: userAccount }); const provider = providers.find(candidate => candidate.id === 'Footprint');If the approved provider exists, call
provider.startVerification()and open its returnedverification.webURLfor the human to complete. Never automate identity answers or document submission.Poll only with
verification.getVerificationStatus()or retrieve withverification.getCertificates(). RespectretryAfterwhen the result is not ready.Inspect the certificate issuer, subject, validity, intermediates, and requested on-chain disclosure. With explicit approval, follow the documented certificate wrapping flow and attach using:
await userClient.modifyCertificate( KeetaAnchor.KeetaNet.lib.Block.AdjustMethod.ADD, certificate, intermediates );Verify with
userClient.client.getAllCertificates(userAccount).If an asset-movement provider raises a KYC-share-needed error, select only requested attributes, create
SharableCertificateAttributes.fromCertificate(...), grant access only toshareWithPrincipals, and callprovider.shareKYCAttributes(...)after confirmation.
Confirmations
- Get human consent before opening the provider URL, submitting identity data, attaching a certificate, or sharing attributes.
- Display provider, country, requested attributes, recipients/principals, certificate issuer, and environment.
- Treat terms-of-service and additional-user-action URLs as separate approval steps.
Failures
- If no provider supports the country, stop.
- If Footprint is not returned by Resolver discovery, do not use a remembered endpoint.
- On pending/manual review, report status and retry guidance; do not claim verification.
- On rejected or expired certificates, do not attach or share them.
- Keep PII out of logs, prompts, source files, and on-chain external identifiers.
Related skills
- Use discover-resolve-anchors to inspect providers.
- Use complete-kyb for a legal entity.
- Continue with pay-out after the required identity actions are complete.