Skip to content

Bluprynt SDKRe-check what Bluprynt claims.

Re-check the wallet proofs and token authorities behind Bluprynt's KYI lookups, on EVM, Solana and XRPL.

A verified shield connected to EVM, Solana and XRPL

KYI ("know your issuer") is Bluprynt's check that a token's issuer is a verified organization that controls the token on-chain. Bluprynt's API publishes the result for each token, with the evidence behind it. This SDK lets you re-check that evidence yourself.

Pre-alpha

The SDK is under active development and its APIs will change. Today it re-checks KYI token lookups on EVM, Solana and XRPL. Attestation and credential checks are not available yet.

Why an SDK? โ€‹

A KYI token lookup from Bluprynt's public API says whether a token passed KYI. Behind that claim is a chain of facts:

  1. KYI claimBluprynt says the token passed KYI (kyi_verified)
  2. Issuerthe organization Bluprynt verified
  3. Walletsthe addresses the issuer proved it controls
  4. Wallet proofssignatures or transactions showing that control
  5. Authoritiesthe addresses that control the token on-chain

The SDK re-checks the last three links against public data: each wallet proof, that the wallet backs one of the token's authorities, and, at the moments you ask for, that each authority holds on-chain where the SDK can read it. The issuer's identity comes from Bluprynt's verification process. What a proof shows, and what it doesn't lists what the SDK re-checks and what takes more effort to verify.

Following that chain by hand is harder than it looks:

What you'd have to handleBy handWith the SDK
Signature formats differ per chain (the Solana CLI adds an off-chain message header, XRPL needs the signer's public key)Re-implement each formatHandled
Smart-contract wallets (Safe) have no private key and need an ERC-1271 call over RPCDetect and call contracts yourselfHandled, using your RPC
EVM transfer proofs carry the challenge in a unique amount or in calldataFetch and decode each transactionHandled, using your RPC
Chain state changes over timeFind the block or ledger for each momentDone for the moments you ask for

The SDK reports facts, not verdicts: what held, and when.

One call โ€‹

ts
import { verifyKyiResponse } from "@bluprynt/sdk-chain-solana";

const report = await verifyKyiResponse(response);

report.evidence; // "confirmed" | "contradicted" | "inconclusive"
report.verified; // what the re-checked proofs support, offline
report.matchesClaim; // true | false | null

With no options, these are the offline summary: they don't read authorities on-chain or apply expiry. To show a badge, ask for a moment and read report.at.now. See Showing a badge.

To check a response that spans chains in one call, see One call, several chains.

Pick your packages โ€‹

PackageWhat it's for
@bluprynt/sdkCore types and the multi-chain verifyKyiResponse. Add the chain packages you need
@bluprynt/sdk-chain-evmEthereum and EVM-compatible chains
@bluprynt/sdk-chain-solanaSolana
@bluprynt/sdk-chain-xrplXRP Ledger

Using a coding agent? โ€‹

These docs are published in an agent-friendly form too. Point your agent at /llms.txt for a map of the docs, or /llms-full.txt for everything in one file.

Start with the Quickstart. Read Wallet verification for how each proof is produced, and Moments for what the SDK checks and when.