@pnllabs/solana-agent-kit-plugin
v1.0.0
Published
Trust & risk verdicts for Solana Agent Kit agents: wallet trust from realized on-chain PnL (not peak scores), wallet funding forensics, token safety, and real trade cost — verify before your agent moves money. Free tier, then pay-per-call via x402.
Maintainers
Readme
@pnllabs/solana-agent-kit-plugin
Trust & risk verdicts for Solana Agent Kit agents — verify BEFORE your agent moves money.
Proof of real PnL, not peak scores. No signup, no API key: free tier per IP/day, then pay-per-call via x402 (USDC on Solana).
🌐 pnllabs.com · 🔌 https://api.pnllabs.com · 🐦 @pnllabs
Why
Every "smart money" score ranks wallets by peak or paper gains. Peaks lie: a wallet can 100x on paper, dump into no liquidity, and walk away red — while its score still says genius. We audited 30 tracked "smart money" wallets: half are genuinely losing money on-chain.
Before your agent copies a wallet, buys a token, or sizes a trade, it should ask four questions — this plugin answers all of them.
Install
npm install @pnllabs/solana-agent-kit-pluginimport { SolanaAgentKit } from "solana-agent-kit";
import PnlLabsPlugin from "@pnllabs/solana-agent-kit-plugin";
const agent = new SolanaAgentKit(wallet, rpcUrl, {}).use(PnlLabsPlugin);The four checks
| Action | Question | Verdicts |
|---|---|---|
| CHECK_WALLET_TRUST | Is this wallet worth copying? (real realized PnL) | TRUSTED NEUTRAL UNTRUSTED INSUFFICIENT UNVERIFIABLE |
| CHECK_WALLET_FORENSICS | Where did its money come from? (funding origin, freshness, cluster links) | CEX_FUNDED WALLET_FUNDED UNKNOWN_ORIGIN UNVERIFIABLE_ORIGIN |
| CHECK_TOKEN_SAFETY | Is this token structurally safe? (concentration, sniper bots, honeypot) | LOW_RISK ELEVATED HIGH_RISK CRITICAL UNKNOWN |
| CHECK_TRADE_COST | What will this trade REALLY cost at my size? | ACCEPTABLE_COST ELEVATED_COST HIGH_COST UNTRADEABLE NO_POOL |
Programmatic access without the LLM loop:
const verdict = await agent.methods.checkWalletTrust("57hECC…");
// { verdict: "UNTRUSTED", trust: 15, reasons: [{ code: "NEGATIVE_REALIZED", … }] }
const cost = await agent.methods.checkTradeCost("So1111…112", 2);
// { verdict: "ACCEPTABLE_COST", expected_slippage_pct: 0.4, … }Honest by design
- Conservative verdicts. When numbers can't be reliably reconstructed the API says
UNVERIFIABLEinstead of guessing. - Zero-noise scope. Structural token checks flag structural red flags; behavioral rugs are invisible to all structural checkers — for those, check the wallets involved instead (that's what the wallet checks are for).
- Machine-first schema. Stable verdict enums, reason codes, flags,
schema_versionon every response.
Payment (x402)
Every check has a daily free tier per IP — try everything without setup. When it runs out, tools return structured x402 payment requirements (payment_required: true) so your agent can pay per call (a few cents USDC on Solana) and retry. Prices & discovery: api.pnllabs.com/.well-known/x402.
Config (optional)
| Key | Default | Purpose |
|---|---|---|
| PNLLABS_API_BASE | https://api.pnllabs.com | Override API base URL |
Also available as
- Remote MCP (Claude, Grok, ChatGPT, Gemini):
https://api.pnllabs.com/mcp - ElizaOS plugin:
@pnllabs/plugin-pnllabs - Plain HTTP + x402:
api.pnllabs.com
MIT © PnL Labs
