Skip to main content

Free tool

Solana pre-audit readiness score

Answer twelve questions about authorities, account checks, tests, and operations to see how ready a Solana program is for an outside audit. It is a self-check, not a review of your code.

No sign-up. Runs in your browser. Last reviewed by the Builderz team.

0 of 12 answered

Authorities and keys

Is every upgrade, mint, freeze, and admin authority listed, with its current holder and a rotation plan?

Is every upgrade, mint, freeze, and admin authority listed, with its current holder and a rotation plan?

An authority nobody listed is one nobody watches, and one key can change or drain the program.

Are privileged authorities held by a multisig with named signers, not a single wallet?

Are privileged authorities held by a multisig with named signers, not a single wallet?

A single hot wallet turns one phished laptop into control of the program.

Is there a written runbook for a compromised key, and has anyone walked through it?

Is there a written runbook for a compromised key, and has anyone walked through it?

During an incident people guess. A rehearsed runbook shortens the time an attacker has.

Account validation

Does every instruction check each account for owner, signer, writable, and PDA seeds?

Does every instruction check each account for owner, signer, writable, and PDA seeds?

Missing owner or signer checks are among the most common Solana exploit classes: a caller passes an account the program trusts by mistake.

Does every cross-program call verify the target program id before invoking it?

Does every cross-program call verify the target program id before invoking it?

An unchecked program id lets a caller swap in their own program and run it with your signer seeds.

Are account close and re-initialize paths tested against replay and revival in the same transaction?

Are account close and re-initialize paths tested against replay and revival in the same transaction?

A closed account that can be revived or reinitialized can reset state the program assumes is final.

Tests and invariants

Does arithmetic on balances and shares use checked operations, with overflow and underflow tests?

Does arithmetic on balances and shares use checked operations, with overflow and underflow tests?

Wrapping math in release builds can mint or hide value without any error.

Are the economic invariants written down and enforced as tests, such as vault balance matching recorded shares?

Are the economic invariants written down and enforced as tests, such as vault balance matching recorded shares?

An auditor can only check behavior against intent. Invariants written as tests state that intent.

Do fuzz or property tests exercise instruction inputs and account combinations?

Do fuzz or property tests exercise instruction inputs and account combinations?

Hand-written cases cover what you thought of. Generated inputs find the case you did not.

Operations and upgrade path

Has the upgrade path been rehearsed on a mainnet fork or devnet, including a rollback?

Has the upgrade path been rehearsed on a mainnet fork or devnet, including a rollback?

The first real upgrade is a bad time to learn a buffer account or authority step was wrong.

Are there alerts on authority use and on vault balance drift?

Are there alerts on authority use and on vault balance drift?

Authority use and unexplained balance changes are often the first visible sign of a problem.

Is the upgrade authority decision recorded: kept behind a multisig, time-locked, or revoked, and why?

Is the upgrade authority decision recorded: kept behind a multisig, time-locked, or revoked, and why?

Users and auditors need to know whether the code can still change, and who decides.

Answer all 12 questions to see your readiness result. It updates as you change an answer.

How it works

What the twelve questions cover

Three questions each on authorities and keys, account validation, tests and invariants, and operations and upgrade path. They come from common Solana exploit classes, such as missing owner or signer checks and unchecked program ids.

How weights and the grade work

Each question has a weight from 1 to 3. Yes earns the full weight, Partly earns half, No earns nothing. Not sure also earns nothing and is counted separately. The score is points earned over points possible, shown as a percentage, and mapped to one of four plain labels.

What the tool does not do

No code is read and nothing leaves your browser. Answers are saved in local storage on this device so you can come back. The tool cannot tell whether an answer is true.

What to do with the result

Work through the three gaps shown first, then answer again. Copy the result as Markdown and share it with the auditor you choose, so the first call starts from what is already known and what is still open.

Questions about this tool

Is this an audit?

No. It is a readiness self-check built from your own answers. No code is read, and the score says nothing about whether the program has bugs. The independent audit is still done by an auditor your team chooses.

Who should answer the questions?

The engineer who wrote the program and whoever holds the keys, ideally together. Authority and runbook questions are often answered wrongly by one person alone.

What does Not sure mean for the score?

It earns zero points, the same as No, and it is counted on its own line in the result. An auditor will ask each of these questions, so an unknown answer is a gap to close before the engagement starts.

What happens after I close the gaps?

Answer again to see the new grade, then book the auditor of your choice. A high grade means the paperwork and basic checks are in order. It does not replace the audit.

Beyond the tool

Need this done for your program? Start with reliability and rescue sprint.

$5K-$15K. Book an intro call, or send a brief with what the tool showed you. We reply within one business day.

  • Acceptance in writing

    Criteria agreed before build starts

  • Proposal in 48h

    After a qualified scoping call

  • Change control

    Scope, exclusions, and owners named