TxShield is a pre-flight inspection layer for Solana transactions. We simulate every call before it broadcasts, score it for MEV, slippage, rug-pull and program risk, and hand back a verdict in under 80 ms. Live on Solana mainnet today — EVM is in private beta. Wallets, trading bots and DEX frontends drop us in front of every send to refuse the bad ones.
getRecentPrioritizationFees sampling per program, returned beside the verdict so the wallet can re-sign at the right tip.simulateTransaction with full pre-execution. Returns balance changes, CPI call tree, per-program compute and revert reasons in one envelope. EVM eth_call support is in private beta.Send the unsigned Solana tx (or just its base64 message) to /api/v1/solana/tx/simulate. We score the 14 detection vectors in parallel and return a single verdict — approve, warn, or block — alongside the per-vector breakdown.
import { TxShield } from "@txshield/sdk";const tx = new TxShield({ key: process.env.TXSHIELD_KEY });// drop the raw, unsigned tx inconst verdict = await tx.solana.simulate({ message: unsignedB64, vectors: ["mev", "slippage", "rug", "program"],});if (verdict.decision === "block") { throw new Error(`refused: ${verdict.reasons[0]}`);}// → { decision: "approve", risk: 0.04, latency_ms: 68 }
from txshield import TxShieldtx = TxShield(key=os.environ["TXSHIELD_KEY"])# drop the raw, unsigned tx inverdict = tx.solana.simulate( message=unsigned_b64, vectors=["mev", "slippage", "rug", "program"],)if verdict.decision == "block": raise RuntimeError(f"refused: {verdict.reasons[0]}")# → Verdict(decision='approve', risk=0.04, latency_ms=68)
curl -X POST "https://txshield.dev/api/v1/solana/tx/simulate" \ -H "Authorization: Bearer $TXSHIELD_KEY" \ -H "Content-Type: application/json" \ -d '{ "message": "<base64-unsigned-tx>", "vectors": ["mev", "slippage", "rug", "program"] }'# HTTP/2 200# {# "decision": "approve",# "risk": 0.04,# "latency_ms": 68,# "vectors": { "mev": 0.04, "slippage": 0.07, ... }# }
One price for everyone. 1,000 simulations per day on the house, then €0.01 per simulation past that — billed at the end of each calendar month. Every account gets all 14 detection vectors, webhooks, batch and WebSocket — feature gating felt like punishment for the wrong people.
Volume customers get a negotiated rate, dedicated regional cluster, 99.99% SLA, SOC 2 / ISO 27001 evidence pack, custom risk rules, and Slack-Connect with 1-hour pager response.
One key. One Solana endpoint, today. EVM next. Drop it in front of every send call your product makes — your users never see another sandwich, honeypot or rug-pull again.