Loading…
Loading…
Everything you need to integrate KUMPLY — smart contracts, SDK, REST API, the Compliance L1, and the KYA Tier-5 primitive.
Two-layer compliance primitive: on-chain attestations on C-Chain (live) + a dedicated KYB-gated Avalanche L1. All five tiers (KYC, KYB, KYA) compose with any DApp via the ComplianceGate contract.
Install the SDK and verify any address’s tier in under a minute. Production-ready against Fuji today.
pnpm add @kumply/sdk viemimport { KumplyClient } from "@kumply/sdk";
const client = new KumplyClient({
network: "fuji",
contractAddress: "0x9Bbb0797EA92277c268fe7E45BdB16b70E787d76",
});
const { verified, tier, expiry } = await client.verify(
"0xUserAddress…"
);
if (verified && tier >= 4) {
// user is KYB-verified — proceed
}// Solidity — 3-line dependency
import { ComplianceGate } from "@kumply/contracts";
contract MyDApp {
ComplianceGate immutable gate;
constructor() { gate = ComplianceGate(0x3Bf8F8ea2573Eb3f386aDF72D191869c4827062B); }
function protectedAction() external payable {
gate.protectedAction{value: msg.value}();
// your logic — only Tier 3+ users reach here
}
}All KUMPLY contracts are deployed and verified on Avalanche Fuji. Each is open-source, audited internally, and documented with NatSpec.
0x9Bbb0797EA92277c268fe7E45BdB16b70E787d760x3Bf8F8ea2573Eb3f386aDF72D191869c4827062B0x903f6E46f965C9A1127652D761400dBe487F555D// AttestationStore
verify(address) → (bool, uint32, uint64, uint64)
checkCompliance(address) payable → (bool, uint32)
issueAttestation(address, uint32 tier, uint64 expiry)
revoke(address)
setSubscription(address gate, bool)
setVerificationFee(uint256 wei)
// ComplianceGate
protectedAction() payable
updateRequiredTier(uint32)
getVerificationFee() view
// KumplyValidatorSetManager (ACP-99)
initiateValidatorRegistration(nodeID, blsKey, balOwner, disOwner, weight)
completeValidatorRegistration(messageIndex)
initiateValidatorRemoval(validationID)
completeValidatorRemoval(messageIndex)
initiateValidatorWeightUpdate(validationID, newWeight)
disableExpiredValidator(validationID)TypeScript-first, built on viem. Tree-shakable, zero runtime dependencies beyond viem.
import { KumplyClient, ATTESTATION_STORE_ABI, TIER } from "@kumply/sdk";
const client = new KumplyClient({
network: "fuji",
contractAddress: "0x9Bbb0797EA92277c268fe7E45BdB16b70E787d76",
});
// Read methods (free, no gas)
await client.verify(address); // → { verified, tier, expiry, issuedAt }
await client.isVerified(address); // → boolean
await client.hasTier(address, TIER.KYB); // → boolean (≥ tier 4)
await client.getTotalAttestations(); // → bigint
await client.getVerificationFee(); // → wei (current pay-per-use price)
// Network info
client.network; // "fuji" | "mainnet"
client.chainId; // 43113 | 43114
client.publicClient; // viem PublicClient (advanced use)Full API reference and type definitions live in the @kumply/sdk package. All reads are gas-free; writes require a verifier role.
Express + TypeScript backend that proxies Sumsub and bridges KYC results to on-chain attestations via HMAC-verified webhooks.
GET /healthHealth probe for load balancers.
POST /api/tokenGenerate a Sumsub access token for the WebSDK. API-key protected.
POST /webhook/sumsubSumsub webhook receiver. HMAC-SHA256 verified, idempotent.
GET /attestation/:addressLook up the on-chain attestation for any address.
GET /feeCurrent per-call pay-per-use fee in wei (AVAX).
OpenAPI 3.0 spec: openapi.yaml ↗
Dedicated Avalanche L1 (Subnet-EVM), KYB-gated at the security layer, open to all 5 tiers as users.
2buHAwNvaybnQ6vQYRS4TeXizZhAo33bhpnonAJu21CKYLZoST2pyvAQK1WQ318yHtnv4ZQeL9hWeJmmgMp9MEHqpJnDYttQEL6b43210KMP — utility gas only · not listed · not for saleThe unique KUMPLY primitive for autonomous AI agents. As agentic DeFi grows in 2026, every protocol needs a way to distinguish trusted, bounded agents from anonymous scripts. No other Avalanche L1 — and to our knowledge no other EVM L1 — ships this.
Each tier maps to a real-world verification depth and unlocks different on-chain actions.
Full system diagrams (Mermaid, GitHub-rendered) plus deep dives into the ACP-99 two-phase Warp lifecycle.
Everything else — repo, paper, explorers, standards, and contact.