Smart Contract Pentest: Crypto Project Security Audit

What Vulnerabilities Do We Look for in Smart Contracts? We conduct multi-layer penetration testing of crypto projects that goes far beyond a standard web application pentest plus Slither. It covers smart contracts, infrastructure, frontend, bridges, backend APIs, and social engineering. The <cite

Blockchain Development Services

Frequently Asked Questions

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1441
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    998
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1267
  • image_logo-advance_0.webp
    B2B Advance company logo design
    713
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    1003

What Vulnerabilities Do We Look for in Smart Contracts?

We conduct multi-layer penetration testing of crypto projects that goes far beyond a standard web application pentest plus Slither. It covers smart contracts, infrastructure, frontend, bridges, backend APIs, and social engineering. The Ronin Bridge lost $625M not due to a contract vulnerability — but because 5 out of 9 validator keys were compromised via spear phishing. Our experience shows that an effective pentest must cover all attack vectors.

Pentesting a crypto project requires deep understanding of both Solidity and L2 rollup architecture, consensus mechanisms, and DeFi economics. Without a comprehensive approach, it's easy to miss critical vulnerabilities like oracle manipulation or transaction reorgs. Automated tools find about 30% of issues — the rest require manual analysis. That's why we combine Slither, Mythril, and Aderyn with many hours of code review. Each finding is classified by CVSS; for critical ones, we provide a PoC within hours of discovery. Our portfolio includes over 200 audited projects, including top-10 DeFi protocols by TVL. We test not only contracts but also infrastructure: RPC nodes, bridge relayers, validator key management, and dApp frontend for supply chain compromise. Every component can be an entry point.

Static Analysis of Contracts

The starting point of any contract pentest is automated tools:

# Slither — static analyzer from Trail of Bits slither . --print human-summary slither . --detect reentrancy-eth,reentrancy-no-eth,arbitrary-send-eth slither . --triage-mode # Mythril — symbolic execution myth analyze contracts/Vault.sol --solv 0.8.20 # Aderyn — Rust-based analyzer, faster than Slither for large codebases aderyn . 

Automated tools catch low-hanging fruit: incorrect operation order, unused return values, obvious reentrancy. But they rarely find critical vulnerabilities. Manual review uncovers 3 times more issues, and for critical ones — 5 times more.

Manual Contract Analysis

Focus areas for manual review:

Access control: we verify who can call privileged functions, correctness of onlyOwner/AccessControl, absence of backdoors via constructor or initializer.

// Classic mistake: initializer can be called repeatedly contract VulnerableProxy { bool private initialized; function initialize(address _admin) external { // VULNERABILITY: no check for !initialized admin = _admin; } } // Correct: function initialize(address _admin) external { require(!initialized, "Already initialized"); initialized = true; admin = _admin; } 

Price oracle manipulation: we check if spot prices are used instead of TWAP. A flash loan attack on the oracle can lead to total loss of funds.

// Vulnerable: spot price from AMM pool function getPrice() external view returns (uint256) { (uint112 reserve0, uint112 reserve1,) = pair.getReserves(); return uint256(reserve1) * 1e18 / uint256(reserve0); } // Correct: TWAP via Uniswap V3 oracle function getTWAPPrice(uint32 twapInterval) external view returns (uint256) { uint32[] memory secondsAgo = new uint32[](2); secondsAgo[0] = twapInterval; secondsAgo[1] = 0; (int56[] memory tickCumulatives,) = pool.observe(secondsAgo); int56 tickDelta = tickCumulatives[1] - tickCumulatives[0]; int24 tick = int24(tickDelta / int56(uint56(twapInterval))); return OracleLibrary.getQuoteAtTick(tick, 1e18, token0, token1); } 

Signature validation: correct verification of EIP-712 signatures, protection against replay attacks via nonce and chainId.

Economic Attacks

Flash loan attacks on AMM protocols require deep understanding of pool mechanics. We simulate them in Foundry:

// Simulate flash loan attack via Foundry // forge test --match-test testFlashLoanAttack -vvv function testFlashLoanAttack() public { uint256 flashAmount = 1000 ether; vm.deal(address(attacker), flashAmount); uint256 priceBefore = target.getPrice(); attacker.manipulatePool(flashAmount); uint256 priceAfter = target.getPrice(); console.log("Price manipulation:", priceBefore, "->", priceAfter); uint256 profit = attacker.exploit(); attacker.repayFlash(flashAmount); assertGt(profit, 0, "Attack should be profitable"); } 

Why Pentest of Crypto Project Is Harder Than Normal Web Audit?

We test not only APIs and frontend, but also blockchain node infrastructure, bridge contracts, and validator consensus mechanisms.

Frontend Security

Wallet drainer injection: the most common dApp attack is frontend compromise via supply chain. We check for Subresource Integrity (SRI) hashes, CSP headers, integrity in lockfile. Also look for clipboard hijacking via XSS.

Phishing via typosquatting: registering similar domains. Our audit includes checking monitoring of such domains and DNS alerting.

Infrastructure Audit

RPC endpoint security: we check if RPC is publicly exposed, whether authentication is required, and method whitelisting.

Example RPC check
curl -X POST http://node-ip:8545 \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"eth_accounts","id":1}' 

If it returns accounts — critical vulnerability.

Private keys and secrets: audit of deploy-key management (HSM, AWS KMS), check .env files in git history, key rotation on offboarding.

Admin panel exposure: find unprotected admin interfaces (Grafana, Jenkins, Kibana), verify MFA and IP whitelist.

Bridge and Cross-Chain Specifics

Bridge contracts are the highest-risk component. Specific checks:

  • Replay attack: signature must include chainId and a unique nonce.
// Vulnerable: no chainId in signature bytes32 hash = keccak256(abi.encode(recipient, amount, nonce)); // Correct: EIP-712 with chainId bytes32 hash = keccak256(abi.encode( BRIDGE_TYPEHASH, recipient, amount, nonce, block.chainid )); 
  • Validator key management: check how many keys need to be compromised. In Ronin Bridge, the effective threshold was 2/2 despite 9 validators. We model such scenarios.
  • Finality assumptions: bridge must wait for block finality (for Ethereum: 12+ blocks, for BSC: more).

Audit Stages

Stage What We Do Example Duration
Analytics Study architecture, identify critical components 1-3 days
Automated analysis Run Slither, Mythril, Aderyn, analyze reports 1-2 days
Manual review Detailed code check, business logic, economics 3-15 days
Testing Foundry simulations, fuzzing, economic attacks 2-5 days
Report writing Describe vulnerabilities, PoC, recommendations 1-2 days

What's Included in the Report

Structure of the final report:

Level Description
Critical Direct loss of funds, immediate exploitation
High Significant risk under certain conditions
Medium Logic errors, potential DoS
Low/Informational Best practices, improvements

For each finding: description, Proof of Concept (code), potential impact, recommendations, status after remediation. Additionally, we provide a checklist of checks and consulting on fixes.

Estimated Timelines

A full pentest takes from 2 to 6 weeks depending on project complexity. Cost is calculated individually — contact us for a project assessment. We guarantee confidentiality and sign an NDA.

Order an audit of your crypto project to uncover vulnerabilities that automated scanners miss. Get security consulting — our engineers with 10+ years of experience will help protect your funds.