Loading…
Loading…
Select a real-world use case and run a live compliance check against the selected AVALANCHE® network — Mainnet or Fuji. No wallets required.
Every DeFi protocol, RWA platform, or AI marketplace can add one modifier to their Solidity contract that gates access by KYC tier. The check is instant, gasless for reads, and fully on-chain — no APIs, no servers, no trust required.
A lending protocol requires a person with Tier 2 (Standard KYC) or higher to deposit funds. The first wallet is a seeded Tier 2 person; the second is a seeded Tier 4 business, which is a different category and gets rejected.
Enter any wallet address and select the required compliance tier. The check reads directly from the KUMPLY contract on the selected network.
Copy this pattern into your contract. Replace the constructor arguments with the live KUMPLY addresses.
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.28;
interface IAttestationStore {
function verify(address subject) external view returns (
bool verified,
uint32 tier,
uint64 timestamp,
uint64 expiry
);
}
contract MyProtocol {
IAttestationStore public immutable kumply;
constructor(address _kumply) {
kumply = IAttestationStore(_kumply);
}
// verify() already returns verified == false once expired or revoked.
// Tiers 1-3: a ladder for people. 4: business (KYB). 5: agent (KYA).
modifier onlyPersonAtLeast(uint32 level) {
(bool verified, uint32 tier, , ) = kumply.verify(msg.sender);
require(verified && tier >= level && tier <= 3, "KUMPLY: person KYC required");
_;
}
modifier onlyBusiness() {
(bool verified, uint32 tier, , ) = kumply.verify(msg.sender);
require(verified && tier == 4, "KUMPLY: business KYB required");
_;
}
function deposit(uint256 amount) external onlyPersonAtLeast(2) {
// only people with Standard or Enhanced KYC reach here
}
function investRwa(uint256 amount) external onlyBusiness {
// only KYB-verified businesses reach here
}
}