Use the Webacy SDK to add blockchain security across diverse applications. Here’s how you can leverage these capabilities for your use case.
Wallet Apps & Browser Extensions
Examples : MetaMask-like wallets, hardware wallet companions, mobile wallets
Pre-Transaction Scanning addresses.analyze() - Check addresses before sending funds
Fast Risk Assessment addresses.getQuickProfile() - Sub-500ms risk scores for real-time UX
Copy-Paste Protection addresses.checkPoisoning() - Detect address poisoning attacks
Transaction Simulation scan.scanTransaction() - Simulate transactions before signing
Additional Features :
scan.scanEip712() - Verify permit signatures
url.check() - Block phishing links
wallets.getApprovals() - Show risky token approvals
import { ThreatClient , Chain } from '@webacy-xyz/sdk' ;
const client = new ThreatClient ({
apiKey: process . env . WEBACY_API_KEY ,
defaultChain: Chain . ETH ,
});
// Before sending funds, check the recipient
async function checkRecipient ( address : string ) {
// Quick risk check (< 500ms)
const profile = await client . addresses . getQuickProfile ( address );
if ( profile . riskScore > 70 ) {
// Deep analysis for high-risk addresses
const analysis = await client . addresses . analyze ( address );
return { safe: false , issues: analysis . issues };
}
// Check for address poisoning
const poisoning = await client . addresses . checkPoisoning ( address );
if ( poisoning . is_poisoned ) {
return { safe: false , issues: [ 'Possible address poisoning attack' ] };
}
return { safe: true };
}
Value : Protect your users before they sign dangerous transactions
DeFi Protocols & DEXes
Examples : Uniswap-like DEXes, lending protocols, yield aggregators
Token Screening contracts.analyze() - Screen new token listings
Tax Detection contracts.getTax() - Show buy/sell taxes
Compliance addresses.checkSanctioned() - OFAC sanctions screening
Rug Pull Detection holderAnalysis.get() - Detect concentrated holdings
Additional Features :
tokens.getPools() - Pool risk analysis
import { ThreatClient , TradingClient , Chain } from '@webacy-xyz/sdk' ;
const threat = new ThreatClient ({ apiKey: process . env . WEBACY_API_KEY });
const trading = new TradingClient ({ apiKey: process . env . WEBACY_API_KEY });
// Screen a token before listing
async function screenTokenForListing ( tokenAddress : string , chain : Chain ) {
const [ contract , holders , tax ] = await Promise . all ([
threat . contracts . analyze ( tokenAddress , { chain }),
trading . holderAnalysis . get ( tokenAddress , { chain }),
threat . contracts . getTax ( tokenAddress , { chain }),
]);
const redFlags : string [] = [];
if ( contract . overallRisk > 70 ) redFlags . push ( 'High contract risk' );
if ( holders . top10Percentage > 90 ) redFlags . push ( 'Concentrated holdings' );
if ( tax . buyTax > 10 || tax . sellTax > 10 ) redFlags . push ( 'High tax token' );
return { approved: redFlags . length === 0 , redFlags };
}
Value : Screen tokens and protect your users from scams
Examples : Copy trading apps, trading bots, alpha scanners
Fast Token Risk tradingLite.analyze() - Rapid token analysis (Solana)
Sniper Detection holderAnalysis.get() - Detect snipers and bundlers
Trending Tokens tokens.getTrending() - Find trending tokens with risk scores
Hidden Fee Detection contracts.getTax() - Uncover hidden trading fees
Additional Features :
tokens.getPoolOhlcv() - Technical analysis data
import { TradingClient , ThreatClient , Chain } from '@webacy-xyz/sdk' ;
const trading = new TradingClient ({
apiKey: process . env . WEBACY_API_KEY ,
defaultChain: Chain . SOL ,
});
const threat = new ThreatClient ({ apiKey: process . env . WEBACY_API_KEY });
// Quick token analysis for trading bot
async function analyzeForTrading ( tokenAddress : string ) {
// Fast analysis (< 1s)
const quick = await trading . tradingLite . analyze ( tokenAddress );
if ( quick . isHoneypot ) return { tradeable: false , reason: 'Honeypot' };
if ( quick . riskScore > 80 ) return { tradeable: false , reason: 'High risk' };
// Check for hidden fees
const tax = await threat . contracts . getTax ( tokenAddress , { chain: Chain . SOL });
if ( tax . buyTax > 5 || tax . sellTax > 5 ) {
return { tradeable: false , reason: `High tax: ${ tax . buyTax } / ${ tax . sellTax } ` };
}
return { tradeable: true , riskScore: quick . riskScore };
}
Value : Identify safe trading opportunities, avoid scams
Exchanges (CEX & DEX)
Examples : Centralized exchanges, hybrid exchanges
Sanctions Screening addresses.checkSanctioned() - OFAC/sanctions compliance
Deposit Screening addresses.analyze() - Screen incoming deposits
Fund Tracing accountTrace.trace() - Multi-hop fund flow analysis
Transaction Monitoring transactions.analyze() - Real-time transaction screening
Additional Features :
contracts.analyze() - Token listing due diligence
import { ThreatClient , Chain } from '@webacy-xyz/sdk' ;
const client = new ThreatClient ({
apiKey: process . env . WEBACY_API_KEY ,
defaultChain: Chain . ETH ,
});
// Screen deposit address for compliance
async function screenDeposit ( address : string , chain : Chain ) {
// Sanctions check (required for compliance)
const sanctions = await client . addresses . checkSanctioned ( address , { chain });
if ( sanctions . is_sanctioned ) {
return { allowed: false , reason: 'Sanctioned address' , details: sanctions };
}
// Risk analysis
const risk = await client . addresses . analyze ( address , { chain });
if ( risk . overallRisk > 80 ) {
// Trace fund sources for high-risk
const trace = await client . accountTrace . trace ( address , { chain });
return { allowed: false , reason: 'High risk' , risk , trace };
}
return { allowed: true , riskScore: risk . overallRisk };
}
Value : Meet regulatory requirements and protect your platform
Portfolio Trackers & Analytics
Examples : Zerion, DeBank-like apps, wallet dashboards
Approval Management wallets.getApprovals() - Show and manage token approvals
Transaction History wallets.getTransactions() - Risk-scored transaction history
Wallet Health addresses.getQuickProfile() - Wallet security scores
Token Data tokens.getToken() - Token economics and safety data
import { ThreatClient , TradingClient , Chain } from '@webacy-xyz/sdk' ;
const threat = new ThreatClient ({ apiKey: process . env . WEBACY_API_KEY });
const trading = new TradingClient ({ apiKey: process . env . WEBACY_API_KEY });
// Build wallet health dashboard
async function getWalletHealth ( address : string , chain : Chain ) {
const [ profile , approvals , transactions ] = await Promise . all ([
threat . addresses . getQuickProfile ( address , { chain , withApprovals: true }),
threat . wallets . getApprovals ( address , { chain }),
threat . wallets . getTransactions ( address , { chain }),
]);
// Count risky approvals (unlimited or to unknown contracts)
const riskyApprovals = approvals . approvals . filter (
a => a . amount === 'unlimited' || a . spenderRisk > 50
);
return {
riskScore: profile . riskScore ,
riskLevel: profile . riskLevel ,
accountAge: profile . accountAge ,
riskyApprovals: riskyApprovals . length ,
recentIssues: transactions . issues ,
};
}
Value : Give users insights into their wallet security
Compliance & Security Teams
Examples : Crypto compliance firms, AML providers, forensic investigators
Sanctions Screening addresses.checkSanctioned() - Real-time sanctions checks
Fund Tracing accountTrace.trace() - Multi-hop transaction tracing
History Analysis wallets.getTransactions() - Complete transaction history
Contract Audits contracts.getCodeAnalysis() - Smart contract security analysis
import { ThreatClient , Chain } from '@webacy-xyz/sdk' ;
const client = new ThreatClient ({
apiKey: process . env . WEBACY_API_KEY ,
defaultChain: Chain . ETH ,
});
// AML screening workflow
async function amlScreening ( address : string , chain : Chain ) {
// Step 1: Sanctions check
const sanctions = await client . addresses . checkSanctioned ( address , { chain });
if ( sanctions . is_sanctioned ) {
return { status: 'blocked' , reason: 'sanctioned' , data: sanctions };
}
// Step 2: Risk analysis
const risk = await client . addresses . analyze ( address , { chain });
// Step 3: Fund flow tracing for medium+ risk
if ( risk . overallRisk >= 50 ) {
const trace = await client . accountTrace . trace ( address , { chain });
const transactions = await client . wallets . getTransactions ( address , { chain });
return {
status: risk . overallRisk >= 75 ? 'review' : 'monitor' ,
risk ,
trace ,
transactions ,
};
}
return { status: 'approved' , risk };
}
Value : Enterprise-grade blockchain compliance and forensics
Examples : Pump.fun integrations, launchpads, fair launch platforms
Holder Distribution holderAnalysis.get() - Monitor holder concentration
Launch Screening tradingLite.analyze() - Screen new token launches
Contract Safety contracts.analyze() - Verify contract security
import { ThreatClient , TradingClient , Chain } from '@webacy-xyz/sdk' ;
const threat = new ThreatClient ({ apiKey: process . env . WEBACY_API_KEY });
const trading = new TradingClient ({
apiKey: process . env . WEBACY_API_KEY ,
defaultChain: Chain . SOL ,
});
// Screen new token launch
async function screenLaunch ( tokenAddress : string ) {
const [ quick , holders , contract ] = await Promise . all ([
trading . tradingLite . analyze ( tokenAddress ),
trading . holderAnalysis . get ( tokenAddress ),
threat . contracts . analyze ( tokenAddress , { chain: Chain . SOL }),
]);
const warnings : string [] = [];
if ( quick . isHoneypot ) warnings . push ( 'Honeypot detected' );
if ( holders . sniperCount > 5 ) warnings . push ( ` ${ holders . sniperCount } snipers` );
if ( holders . bundlerCount > 0 ) warnings . push ( ` ${ holders . bundlerCount } bundlers` );
if ( holders . top10Percentage > 80 ) warnings . push ( 'High concentration' );
if ( contract . overallRisk > 70 ) warnings . push ( 'Contract risk' );
return {
safe: warnings . length === 0 ,
warnings ,
metrics: { holders: holders . totalHolders , liquidity: quick . liquidity },
};
}
Value : Verify launches are safe, detect snipers and bundlers
Why Webacy SDK?
Multi-Chain 12+ chains: ETH, SOL, BASE, ARB, POL, OPT, BSC, TON, SUI, STELLAR, BTC, SEI
Type-Safe Full TypeScript support with IntelliSense
Real-Time Quick profile optimized for sub-500ms responses
Comprehensive Addresses, contracts, URLs, transactions
Production-Ready Built-in retry logic and error handling
Pre-Transaction Stop losses before they happen
Get Started
Installation Install the SDK in your project
ThreatClient Start with address and contract analysis
TradingClient Token and holder analysis
API Reference Full endpoint documentation