Documentation
WalletPrint API
Production access is self-serve. Create a free account to get a master API key, then issue per-agent keys from the dashboard.
Quick start
npm install @walletprint/sdk
import { WalletPrintClient } from "@walletprint/sdk";
const client = new WalletPrintClient({
baseUrl: "https://walletprint.up.railway.app",
apiKey: process.env.WALLETPRINT_API_KEY!,
});
const result = await client.score({
wallet: { address: "0x...", chain: "base" },
transaction: { to: "0x...", value_usd: 100, asset: "USDC" },
});Per-agent API keys
Create scoped keys from your master key for individual agent wallets. Agent keys can only call POST /v1/score and POST /v1/feedback.
POST https://walletprint.up.railway.app/v1/agent-keys
x-api-key: <master_key>
{
"agent_name": "trading-agent-1",
"wallet_address": "0x...",
"chain": "base",
"rate_limit_per_minute": 60
}
// Use returned api_key in the SDK (shown once only)
const agent = new WalletPrintClient({ baseUrl: "...", apiKey: api_key });Authentication
All `/v1/*` endpoints require `x-api-key: YOUR_API_KEY` or `Authorization: Bearer YOUR_API_KEY`.
POST /v1/score
Score a proposed transaction. Returns score, band, reason_codes, baseline_summary. Production responses include screened_transaction_id; agent-key scores include agent_key_id.
POST /v1/agent-keys
Create per-agent keys (master key required). Agent keys scope to POST /v1/score and POST /v1/feedback only.
GET /v1/agent-keys · DELETE /v1/agent-keys/:id
List and revoke agent keys (master key required).
PATCH /v1/webhook · POST /v1/webhook/test
Configure webhook URL and bands; send a test payload to verify delivery.
GET /v1/audit-export
Download compliance export (JSON or CSV). Date-only filters include the full UTC day.
POST /v1/feedback
Label screened transactions: false_positive, false_negative, confirmed_malicious, confirmed_benign.
Sandbox
Use walletprint-dev-key to try scoring without persistence. Production keys build durable behavioral baselines.
Full reference: docs/api.md on GitHub