SDK
JavaScript SDK for wallet integration and on-chain compliance.
Installation
npm
npm install @fidesorigin/sdk
yarn
yarn add @fidesorigin/sdk
Quick Start
Initialize SDK
TypeScript
import { FidesOrigin } from '@fidesorigin/sdk';
const fides = new FidesOrigin({
apiKey: 'YOUR_API_KEY',
network: 'sepolia' // or 'mainnet', 'base'
});
Check Address Risk
TypeScript
const result = await fides.evaluateAddress('0x...');
console.log(result.riskTier); // 'LOW', 'MEDIUM', 'HIGH', 'CRITICAL'
console.log(result.isSanctioned); // true or false
Subscribe to Events
TypeScript
fides.on('RiskDetected', (event) => {
console.log('Risk detected:', event.address, event.riskTier);
});
fides.on('SanctionAdded', (event) => {
console.log('Sanction added:', event.address);
});
Core API
| Method | Returns | Description |
|---|---|---|
connect(provider) |
Promise<void> | Connect to Web3 provider |
evaluateAddress(addr) |
Promise<RiskProfile> | Get risk profile for address |
evaluateTx(tx) |
Promise<TxResult> | Pre-screen transaction |
subscribe(event) |
EventEmitter | Subscribe to on-chain events |
disconnect() |
void | Clean up connections |
Solidity Integration
Import FidesOrigin contracts directly into your Solidity project:
Solidity 0.8.20
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@fidesorigin/contracts/CompliantStableCoin.sol";
contract MyStableCoin is CompliantStableCoin {
constructor()
CompliantStableCoin("MyStableCoin", "MSC")
{
// Configure policy
policy = IssuerPolicy({
maxTxAmount: 1_000_000 * 10**6,
dailyLimit: 10_000_000 * 10**6,
allowMediumRisk: true,
allowHighRisk: false,
blockMixer: true,
requireDestinationKYC: true,
cooldownPeriod: 24 hours
});
}
}
Types
TypeScript
interface RiskProfile {
address: string;
riskScore: number;
riskTier: 'UNKNOWN' | 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
isSanctioned: boolean;
tags: string[];
entityName: string;
lastUpdated: string;
}
interface TxResult {
allowed: boolean;
riskScore: number;
riskTier: string;
quarantineRequired: boolean;
reason: string | null;
}