Supported Languages & Upload Formats
Savant Chat's engine is language-agnostic: it reasons about code the way an auditor does, rather than matching code against per-language rules. Smart contracts are the flagship domain — that is where our public benchmarks and contest results live — and the same pipeline audits everything else.
The matrix
| Domain | Languages & frameworks | Upload format |
|---|---|---|
| Smart contracts (flagship) | Solidity (Ethereum + EVM L2s), Vyper (Curve-style DeFi), Rust (Solana / Anchor, NEAR) — and any other contract language: Move, Cairo, FunC, … | ZIP of the repo, or the Foundry packaging script for non-standard setups |
| ZK circuits & cryptography | Circom, Halo2, Noir, arkworks; cryptographic code in any language | ZIP — include circuits, constraint definitions, and the calling code (packaging guide) |
| Node clients & infrastructure | Rust, Go, C++ | ZIP of the module or subsystem under audit (packaging guide) |
| Off-chain code | TypeScript, Python, Go — backends, keepers, relayers, APIs | ZIP of the service (packaging guide) |
Don't see your language? The engine is not restricted to this table — these are the domains we have processes and guides for. Upload your codebase, or ask us if you want a scoping sanity check first.
Scoping large codebases
Per-line pricing applies to any code. For very large codebases — a full node client, a monorepo with off-chain services — audit a defined scope (a module, a subsystem, a release diff), or contact us for a flat quote.
Honest limits
Savant Chat is the second pair of eyes, not the last one. Novel economic-design invariants — where the auditor must reason about incentives across protocols — are still where AI misses most. For those, pair the AI audit with a human audit: run Savant first, so the human auditor's time goes to the bugs AI cannot yet see.