Skip to main content

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

DomainLanguages & frameworksUpload 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 & cryptographyCircom, Halo2, Noir, arkworks; cryptographic code in any languageZIP — include circuits, constraint definitions, and the calling code (packaging guide)
Node clients & infrastructureRust, Go, C++ZIP of the module or subsystem under audit (packaging guide)
Off-chain codeTypeScript, Python, Go — backends, keepers, relayers, APIsZIP 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.