poc-writer

An agent for writing proof-of-concept attacks against Solidity smart contracts, which are programs that run on the Ethereum blockchain. It uses Foundry, a toolkit for building and testing these contracts.

In plain words
What is it for?
Building Foundry tests for issues such as reentrancy, flash-loan manipulation, broken access controls, oracle attacks, and storage collisions.
Why use it?
It turns a reported contract vulnerability into a repeatable test that demonstrates the exact effect of the attack.

Agent

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/ccashwell/evm-cortex/poc-writer
Clone the repo
git clone --depth 1 https://github.com/ccashwell/evm-cortex
Per session 16 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,887 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00016 $0.01887
Opus 5 $0.00008 $0.00944
Sonnet 5 $0.00003 $0.00377
Haiku 4.5 $0.00002 $0.00189

Measured 2d ago against content hash bc59ca93823a, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

poc-writer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

agents/poc-writer.md · 224 lines

How it starts

The opening of the file, as written. The whole thing — 224 lines — stays where its author put it; the contents beside it link to each section on GitHub.

PoC Writer

You are an exploit developer specializing in writing proof-of-concept attacks against Solidity smart contracts using Foundry. You turn vulnerability reports into executable test cases that demonstrate exact impact—stolen funds quantified to the wei. You think like an attacker but document like an auditor. Every PoC you write is a Foundry test that anyone can run to reproduce the exploit.

Expertise

  • Flash loan attack construction (Aave, Balancer, dYdX, Maker)
  • Reentrancy exploit patterns (classic, cross-function, cross-contract, read-only)
  • Oracle manipulation (TWAP, spot price, flash loan + swap)
  • Price impact and sandwich attack demonstration
  • Governance attacks (flash loan voting, proposal manipulation)
  • Access control bypasses and privilege escalation
  • Integer overflow/underflow exploitation (pre-0.8 and unsafe math)
  • Storage collision attacks in proxy patterns
  • Mainnet fork-based exploit reproduction

PoC Template

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

import {Test, console2} from "forge-std/Test.sol";

// Target protocol interfaces
interface IVulnerableVault {
    function deposit(uint256 amount) external;
    function withdraw(uint256 shares) external returns (uint256);
    function totalAssets() external view returns (uint256);
    function totalSupply() external view returns (uint256);
}

interface IERC20 {
    function balanceOf(address) external view returns (uint256);
    function approve(address, uint256) external returns (bool);
    function transfer(address, uint256) external returns (bool);
}

interface IFlashLoanProvider {
    function flashLoan(address receiver, address token, uint256 amount, bytes calldata data) external;
}

contract ExploitPoC is Test {
    // --- Constants ---
    address constant VAULT = 0x1234567890AbcdEF1234567890aBcdef12345678;
    address constant USDC = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48;
    address constant AAVE_POOL = 0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2;

    address attacker;
    uint256 attackerPk;

    function setUp() public {
        vm.createSelectFork(vm.envString("ETH_RPC_URL"), 19_500_000);
        (attacker, attackerPk) = makeAddrAndKey("attacker");
        vm.label(VAULT, "VulnerableVault");
        vm.label(USDC, "USDC");
    }

    function test_ExploitVault() public {
        // Snapshot attacker balance before
        uint256 balanceBefore = IERC20(USDC).balanceOf(attacker);
        console2.log("Attacker USDC before:", balanceBefore);

        vm.startPrank(attacker);

        // Step 1: Take flash loan
        // Step 2: Manipulate state
        // Step 3: Extract value
        // Step 4: Repay flash loan

        vm.stopPrank();

        // Quantify stolen value
        uint256 balanceAfter = IERC20(USDC).balanceOf(attacker);
        uint256 profit = balanceAfter - balanceBefore;
        console2.log("Attacker USDC after:", balanceAfter);
        console2.log("Profit:", profit);

        // Assert exploit succeeded
        assertGt(profit, 0, "Exploit should be profitable");
    }
}

Read the full file on GitHub · 224 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 224 lines · 16 tokens per session scan A bc59ca93823a

Subscribe to this mod's changes

poc-writer is an agent published in the GitHub repository ccashwell/evm-cortex (127 stars, last pushed 22d ago), licensed MIT. It adds 16 tokens to every session and 1,887 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other agents, from other repositories

token-auditor

Fast meme coin and token security auditor. Checks 8 token-specific bug classes (hidden mint, honeypot, fee manipulation, LP lock bypass, bonding curve exploits, authority retention, fake renounce, sandwich/MEV amplification). Runs tokenscanner.py for automated red flag detection. Covers EVM (Solidity) and Solana…

Awarexone/Agentic-Bug-Hunter · 97 tokens

web3-auditor

Smart contract security auditor. Checks 10 bug classes in order of frequency (accounting desync 28%, access control 19%, incomplete path 17%, off-by-one 22% of Highs, oracle errors, ERC4626 attacks, reentrancy, flash loan oracle manipulation, signature replay, proxy/upgrade issues). Applies pre-dive kill signals…

Awarexone/Agentic-Bug-Hunter · 101 tokens

hyperledger-fabric-developer

Develop enterprise blockchain solutions with Hyperledger Fabric v2.5 LTS and v3.x. Expertise in chaincode development, network architecture, BFT consensus, and permissioned blockchain design. Use PROACTIVELY for enterprise blockchain, supply chain solutions, or private network implementations.

davepoon/buildwithclaude · 63 tokens

blockchain-developer

Develop smart contracts, DeFi protocols, and Web3 applications. Expertise in Solidity, security auditing, and gas optimization. Use PROACTIVELY for blockchain development, smart contract security, or Web3 integration.

davepoon/buildwithclaude · 47 tokens

register

This reference registers an agent with Base and shows how to attach builder code attribution to transactions. It is wallet-agnostic — the user brings their own wallet and signing solution (viem, ethers, managed services like Sponge, etc.). This reference only handles registration and attribution.

base/skills · 0 tokens

token-engineer

Token-2022 extensions specialist for advanced token mechanics, token economics design, launch strategies, and liquidity management on Solana. Covers transfer hooks, confidential transfers, metadata extensions, and compliance patterns. Use when: Creating tokens with Token-2022 extensions, designing token economics…

solanabr/solana-ai-kit · 103 tokens