Skip to content

Application

Smart Contract
Audit Services

Solidity and DeFi security review, by hand

Fixed-scope pricing, no hourly billing. See all pricing →

Get a fixed quote

Reply in one business day

Senior certified testers, manual-first185+ years combined experienceOnboarding within 24 hoursFree retest includedOur methodology

When you need it

When you need a smart contract audit

The situations that bring teams to this engagement, and where it fits alongside the rest of your program.

  • You are about to deploy a contract that will hold user funds, and it has never been reviewed by an outside team.
  • You shipped an upgrade, a new proxy, or a privileged admin function, and the trust assumptions changed.
  • An exchange, a launchpad, or an enterprise partner asked for an independent audit before listing or integrating.
  • You run a DeFi protocol and want the economic logic, the oracle use, and the reentrancy surface reviewed by hand.
  • You are a NYDFS BitLicense fintech and need testing evidence for the platform as well as the contracts. Our blockchain penetration testing guide covers the off-chain side.

Definition

What is a smart contract audit?

A smart contract audit is a manual security review of on-chain code before, and sometimes after, it is deployed. Once live, a contract can be read and called by anyone, holds value directly, and is effectively immutable unless it was built to be upgraded, so a single access-control mistake, reentrancy path, or oracle assumption can become a direct and irreversible loss. Our smart contract audit services read the code by hand against the OWASP Smart Contract Top 10 and, more importantly, against your protocol’s own logic, because the highest-impact findings are the design-level ones no checklist can catch.

Each audit is scoped and quoted after we see the code rather than sold from a fixed table. Send the repository, the commit to review, the deployed addresses, and your documentation, and the quote comes back in writing, fixed before work begins. The audit sits alongside fixed-price testing of the platform around the contracts, which our blockchain penetration testing guide explains service by service.

What we look for

Smart contract vulnerabilities we hunt for

A deployed contract can be read and called by anyone, holds value directly, and cannot simply be patched, so a single flaw is a direct loss. We review the code by hand against the OWASP Smart Contract Top 10 (2025) and your protocol’s own logic, because the worst findings are the ones only a reviewer who understands the design can see.

Access control and privileges

The top item on the OWASP list: functions that change state or move funds without enforcing who is allowed to call them.

We test for

  • Missing or incorrect access checks on privileged functions
  • Owner, admin, and role assignment and renouncement
  • Multisig thresholds and privileged-key custody
  • tx.origin used for authorization, which the Solidity docs warn against
  • Initialization and re-initialization of upgradeable contracts

Reentrancy and external calls

The classic drain: a contract that calls out before it updates its own state, letting the callee re-enter and withdraw again.

We test for

  • Reentrancy across single and cross-function paths
  • The Checks-Effects-Interactions pattern, followed or broken
  • Unchecked return values on external calls
  • Low-level call, delegatecall, and their trust
  • Read-only reentrancy through view functions

Economic and logic flaws

The design-level failures that pass every unit test but break under an attacker who controls the inputs.

We test for

  • Price-oracle manipulation and single-source oracles
  • Flash-loan-assisted attacks on protocol logic
  • Rounding, fee, and share-accounting errors
  • Slippage, deadline, and MEV exposure
  • Business-logic errors specific to your protocol

Arithmetic and input validation

The low-level correctness issues, some of which the compiler now catches and some of which it does not.

We test for

  • Integer overflow and underflow, including unchecked blocks
  • Reliance on pre-0.8.0 arithmetic behavior
  • Missing input validation and bounds checks
  • Insecure or predictable randomness on-chain
  • Denial of service through unbounded loops and gas limits

Upgradeability and proxies

The upgrade machinery, where a storage-layout mistake or an exposed admin can compromise the whole protocol.

We test for

  • Proxy patterns and ERC-1967 storage slots
  • Storage-layout collisions between proxy and implementation
  • Uninitialized implementation contracts
  • Admin and upgrade authorization
  • The path from an upgrade to a full takeover

Chains and languages

What our smart contract audit services cover

EVM chains and Solidity are the common case, and the review reflects it: Solidity’s own security guidance, the Checks-Effects-Interactions pattern, the change in Solidity 0.8.0 that makes arithmetic revert on overflow and underflow by default (and the unchecked blocks that opt back out), and the ERC-1967 proxy standard for upgradeable contracts. Vyper contracts on EVM chains are reviewed the same way.

Where a project runs on a non-EVM chain or in another language, we scope it case by case and confirm in writing what the review will and will not cover before you commit. The audit is one part of securing a Web3 platform. The web application, the API, the wallet apps, the signing flow, and the cloud account around the contracts are tested at fixed prices, because a clean contract does not help when the interface that builds the transaction is compromised. The roughly $1.5 billion Bybit theft in February 2025 went through a tampered wallet web interface and signing flow, not a contract bug.

The tooling

Manual review, widened by tools

The core of the audit is a human reading the code, because the findings that matter most are logic and design flaws. Tooling widens the coverage around that: Slither, a static analyzer for Solidity and Vyper, surfaces known-pattern issues quickly; Echidna, a property-based fuzzer, and Foundry’s invariant testing throw random sequences of calls at the contract to falsify the properties that should always hold. Every candidate a tool raises is confirmed by hand before it reaches your report, and the false positives are explained.

Exploit paths are proven on a local fork of the network rather than on mainnet, so nothing risks real funds, and a confirmed critical finding is reported the day we confirm it rather than held for the final report.

Regulation

BitLicense and NYDFS testing

New York regulates virtual-currency businesses through the BitLicense, 23 NYCRR Part 200. Section 200.16(e)(1) requires each licensee to "conduct penetration testing of its electronic systems, at least annually, and vulnerability assessment of those systems, at least quarterly." BitLicense holders are also covered entities under NYDFS Part 500, which requires annual penetration testing under section 500.5.

A contract audit alone does not satisfy those requirements, because they cover the electronic systems, the platform, the APIs, and the cloud, not just the on-chain code. We deliver both: the smart contract audit here, and the platform testing at published prices. Our NYDFS 23 NYCRR 500 penetration testing page covers the Part 500 side, and our fintech penetration testing page covers licensed lenders, money transmitters, and virtual-currency firms.

Methodology

Smart contract audit methodology

Full methodology →

Every engagement follows the Penetration Testing Execution Standard and the relevant OWASP guides.

These are the phases your smart contract audit runs through.

  1. 01

    Scope & inputs

    The repository, the commit to review, the deployed addresses, and your documentation, with the scope and quote agreed in writing.

  2. 02

    Manual review

    The code read by hand against the OWASP Smart Contract Top 10 and your protocol’s own logic, where the worst findings live.

  3. 03

    Tooling

    Static analysis with Slither and property and invariant testing with Echidna or Foundry, to widen coverage around the manual review.

  4. 04

    Proof on a fork

    Exploit paths reproduced on a local fork rather than on mainnet, so nothing risks real funds.

  5. 05

    Report & retest

    Findings by severity with proof of concept, remediation guidance, and a free retest once your fixes ship.

How it works

How your engagement runs

From scope through the final retest, your team stays in the loop at every step, with findings tracked live in our platform.

  1. 01

    Scope & kickoff

    Targets, roles, and rules of engagement defined in writing, with a fixed scope and timeline.

  2. 02

    Testing goes live

    Findings post to your live platform dashboard the moment our testers confirm them.

  3. 03

    Track remediation

    Follow every finding from open to fixed, with severity, evidence, and status in one place.

  4. 04

    Report & retest

    Executive and technical reports land, then request a free retest in one click.

Proof

Proof in the field

Every engagement is confidential, so the work below is anonymized to sector and engagement type.

All case studies →

Free

Retest on every penetration test

185+

Years combined experience

14

Senior in-house specialists

24h

Onboarding after signing

Fintech · Payments

Web Application Penetration Test

High risk

Critical: a remote code execution flaw in the application’s web framework that could have given an attacker full control of the server. We escalated it to the development team while the test was still running.

Outcome. The critical RCE was reported and remediated during the engagement via an emergency framework upgrade, which also closed the server-side request forgery, and the remaining findings were retested to confirmation.

1

Critical (RCE)

Mid-test

Critical remediated

2

High

Read the case study

HR & Payroll SaaS

Web Application Penetration Test

High risk

Critical: a file-inclusion flaw that let an attacker read sensitive files from the server through the application itself. High: stored cross-site scripting capable of session theft, insecure direct object references, and an authorization bypass that let an administrator create or delete organization owners.

Outcome. Delivered a remediation plan sequenced by real business impact, critical and high findings first, with a complimentary retest to verify every fix.

28

Findings

1

Critical

5

High

Read the case study

FAQ

Frequently asked questions

What teams most often ask before scoping smart contract audit services.

Still have questions? 
01What is a smart contract audit?

It is a manual security review of on-chain code, usually before deployment. Because a live contract can be called by anyone, holds value directly, and is hard or impossible to change, a single flaw can be a direct and irreversible loss. We read the code by hand against the OWASP Smart Contract Top 10 (2025) and your protocol’s own logic, cover access control, reentrancy, oracle and economic flaws, arithmetic, and the upgrade machinery, and prove each finding with a proof of concept on a local fork.

02How much does a smart contract audit cost?

It is scoped and quoted after we see the code, not priced from a fixed table, because the effort depends on the size of the codebase, its complexity, and whether it is upgradeable. Send the repository, the commit to review, the deployed addresses, and your documentation, and the quote comes back in writing, fixed before work begins, with a free retest. The tests of the platform around the contracts do have published prices, listed on our pricing page.

03Which chains and languages do you cover?

EVM chains and Solidity are the common case, and Vyper on EVM chains is reviewed the same way. Where a project runs on a non-EVM chain or in another language, we scope it case by case. Tell us your stack during scoping and we confirm in writing what the review will and will not cover before you commit.

04Is a smart contract audit enough on its own?

Not for a platform that holds user funds. The roughly $1.5 billion Bybit theft in February 2025 went through a tampered wallet web interface and signing flow, not a contract bug. An audit secures the on-chain code; the application, API, mobile, and cloud tests secure the platform around it. We scope both so the whole product is covered, and our blockchain penetration testing guide explains why the off-chain side matters so much.

05What tools do you use?

The core of the audit is manual review, because the highest-impact findings are logic and design flaws. Around it we use Slither, a static analyzer for Solidity and Vyper, and property and invariant testing with Echidna and Foundry, which throw random call sequences at the contract to break the properties that should always hold. Every tool finding is confirmed by hand, and false positives are explained in the report.

06Do you test on mainnet?

Not by default. Exploit paths are reproduced on a local fork of the network, so nothing risks real funds. Where a project asks for testing against a live deployment, it runs under written rules of engagement with the accounts, amounts, and destination addresses you control, and a confirmed critical finding is reported the day we confirm it.

07Do you help virtual-currency firms with NYDFS and BitLicense?

Yes. New York’s BitLicense (23 NYCRR 200.16) requires annual penetration testing and quarterly vulnerability assessment of a licensee’s electronic systems, and BitLicense holders are also covered by NYDFS Part 500’s annual testing under section 500.5. A contract audit alone does not satisfy those, because they cover the whole platform. We deliver the audit and the platform testing together, and our NYDFS and fintech pages explain the requirements.

Ready to test your defenses?

Talk to our team about scoping smart contract audit services.

Prefer the full scoping questionnaire? 

Get a Fixed-Scope Quote

Tell us what you need tested. We reply within one business day.