@fabrknt/accredit-core
v1.0.3
Published
Shared KYC/AML compliance type definitions
Readme
@fabrknt/accredit-core
Chain-agnostic KYC/AML compliance types and logic. Zero chain-specific dependencies.
Not every DeFi protocol needs TradFi compliance -- but if yours does, you shouldn't have to rebuild from scratch. Fabrknt plugs into your existing protocol with composable SDKs and APIs. No permissioned forks, no separate deployments.
Install
npm install @fabrknt/accredit-coreQuick Start
import {
KycLevel,
Jurisdiction,
isJurisdictionAllowed,
KYC_TRADE_LIMITS,
} from "@fabrknt/accredit-core";
import type { WhitelistEntry, ComplianceCheckResult } from "@fabrknt/accredit-core";
// Check if a jurisdiction is allowed in a bitmask
const allowed = isJurisdictionAllowed(Jurisdiction.Japan, bitmask);
// Look up per-level trade limits
const limit = KYC_TRADE_LIMITS[KycLevel.Standard]; // 10,000,000
// All address fields are plain strings (base58 or hex) -- no PublicKey dependency
const entry: WhitelistEntry = {
address: "So11111111111111111111111111111112",
kycLevel: KycLevel.Enhanced,
jurisdiction: Jurisdiction.Singapore,
expiresAt: Date.now() + 86400_000,
};Features
- Chain-agnostic types -- all addresses are
string, notPublicKeyorAddress - KYC level definitions (Basic, Standard, Enhanced, Institutional) with trade limits
- Jurisdiction model with bitmask-based allow/block logic
- Whitelist/blacklist entry types for on-chain enforcement
- Pool compliance and route verification types for DEX routing
- Compliant asset wrapper types (wrap/unwrap requests and config)
- Zero-knowledge compliance proof type definitions
- String conversion helpers for KYC levels and jurisdictions
API
Enums
KycLevel-- Basic, Standard, Enhanced, InstitutionalJurisdiction-- Japan, Singapore, HongKong, EU, USA, OtherPoolStatus-- Active, Suspended, Revoked
Functions
isJurisdictionAllowed(jurisdiction, bitmask)-- check jurisdiction against a bitmaskisJurisdictionInBitmask(jurisdiction, bitmask)-- test bitmask membershipkycLevelToString(level)/kycLevelFromString(str)-- enum-string conversionjurisdictionToString(j)/jurisdictionFromString(str)-- enum-string conversion
Constants
KYC_TRADE_LIMITS-- per-level transaction size limits
Types
WhitelistEntry,BlacklistEntry,KycRegistry-- identity registryComplianceCheckResult-- transfer validation resultChain--"solana" | "evm"PoolComplianceEntry,RouteComplianceResult,ComplianceRouterConfig-- DEX routingCompliantQuoteResult,QuoteRequest,QuoteResponse-- quote typesSwapRoute,SwapParams,SwapResponse-- swap execution typesZkComplianceProof-- zero-knowledge proof structureWrapperConfig,WrapRequest,UnwrapRequest,WrapResult-- asset wrapping
Documentation
See the Accredit repository README for full documentation, including Solana program references, SDK guides, router integration, and KYC provider setup.
Related Packages
| Package | Description |
|---------|-------------|
| @fabrknt/accredit-sdk | Solana PDA derivation, KycClient, RegistryClient, WrapperClient |
| @fabrknt/accredit-router | Compliance-aware DEX routing with Jupiter integration |
| @fabrknt/accredit-kyc-providers | Multi-provider KYC integration (Civic, World ID) |
License
MIT
