transfer(address,uint256)0xa9059cbbbalanceOf(address)0x70a08231approve(address,uint256)0x095ea7b3withdraw(uint256)0x2e1a7d4dTransfer(address,address,uint256)0xddf252adswapExactTokensForTokens(...)0x38ed1739ownerOf(uint256)0x6352211eInsufficientBalance()0xf4d678b8transfer(address,uint256)0xa9059cbbbalanceOf(address)0x70a08231approve(address,uint256)0x095ea7b3withdraw(uint256)0x2e1a7d4dTransfer(address,address,uint256)0xddf252adswapExactTokensForTokens(...)0x38ed1739ownerOf(uint256)0x6352211eInsufficientBalance()0xf4d678b8
SOLIDITY · EVM · SELECTOR DECODING · INLINE GAS

Read the EVM without leaving your editor.

0xTools decodes function selectors, event topics and error selectors — and annotates gas inline — right inside VS Code. Plus security audits, one-click Anvil, and a full EVM toolbox.

MIT LICENSEDFOUNDRY + HARDHATWORKS OFFLINE101 COMMANDS
NOT ON THE MARKETPLACE YET — VSIX SHIPS FROM HERE
terminal — anvil
DEPLOY & RUN

$ 0xtools: start anvil

Listening on 127.0.0.1:8545

$ deploy Vault.sol

➜ Vault deployed 0x5FbD…0aa3

✓ 2 txs · block #3 · 0.0042 ETH gas

keystore: dev-wallet unlocked ✓

Vault.sol — VS Code
INLINE GAS

function deposit() external payable {⛽ 43,674

balances[msg.sender] += msg.value;

}

function withdraw(uint256) {⛽ 30,421

optimizer: −2,110 gas · use custom errors

hover — 0x2e1a7d4d
SELECTOR DECODE

unknown calldata

0x2e1a7d4d000000000000000000…0de0b6b3a7640000

withdraw(uint256 wad)

selector 0x2e1a7d4d · wad = 1.0 ETH · 4byte ✓

25+ analysis modules
SECURITY AUDIT

⚠ reentrancy withdraw() — L11 · external call before state write

⚠ missing event balances written, none emitted

✓ access control no unprotected selfdestruct

✓ ERC-20 compliant interface check passed

MEV: sandwich risk · slither: 0 high

command palette
EVM TOOLBOX

> convert units

1 ether = 10¹⁸ wei · 21000 gwei = 0.000021 ETH

> keccak-256

transfer(address,uint256) → 0xa9059cbb

> CREATE2 address

salt 0x00…01 → 0x4f5B…9c21

drag / tap to shuffle
101
COMMANDS
25+
SECURITY MODULES
3-TIER
GAS ENGINE
998 KB
WHOLE VSIX
01 / WHAT IT DOES

The Solidity toolkit that lives in the editor.

GAS ENGINE01

Real gas, not guesses

Inline annotations from a three-tier backend (Rust runner → Forge → solc-js), plus optimizer suggestions, snapshots, branch comparison, deployment cost and a runtime profiler.

DECODING02

Every selector, named

Function selectors, event topics, error selectors and raw calldata decoded on hover — local 4-byte cache, collision detection, and a searchable signature database.

SECURITY SUITE03

25+ analysis modules

Reentrancy, unchecked calls, access control, MEV risks, DeFi patterns, ERC-20/721/1155/4626 compliance, storage layout, call graphs — with quick fixes and a CLI audit mode.

DEPLOY & RUN04

One-click local chain

Start Anvil, deploy from a dashboard, run forge scripts with keystores, get test CodeLens pass/fail inline — plus a contract playground and interactive notebooks.

EVM TOOLBOX05

13 tools in the palette

ABI & calldata encode/decode, event log and raw-tx decoding, unit converter, keccak, storage slots, CREATE2 addresses, epoch times, checksums — no browser tabs.

INTEGRATIONS06

Your whole toolchain

Foundry and Hardhat auto-detected; Slither, Mythril, Tenderly simulation, Cast, fork simulator and Etherscan verification wired into panels.

03 / BUILT FOR AI AGENTS

AI writes the contract. 0xTools keeps it honest.

Agents hallucinate selectors, gas numbers and security judgments. 0xTools hands them deterministic ground truth instead — as an MCP server for Claude Code / Cursor, and as native Copilot agent tools inside VS Code. Every AI call is logged and flashed in the status bar; one setting turns it all off.

claude — agent session

>write a withdraw function for the vault and make sure it's safe

⏺ Writing Vault.withdraw()… then verifying with 0xTools

⚒ audit_solidity(source: Vault.sol)

⚠ high · reentrancy · L7 — external call before state change

⏺ Caught it — moving the balance write before the call (checks-effects-interactions), re-auditing… ✓ 0 high findings

⚒ compute_selector("withdraw(uint256)")

0x2e1a7d4d · quoted exactly, not from memory

MCP SERVER — CLAUDE CODE, CURSOR, ANY CLIENT
claude mcp add 0xtools -- node ./dist/cli/index.js mcp

14 tools over stdio. An agent skill ships in skills/0xtools that teaches Claude when to call them.

COPILOT AGENT MODE — BUILT INTO THE VSIX

8 language-model tools (#auditSolidity, #computeSelector…) register on install. A status-bar strip lights on every AI call, the “0xTools AI” output channel logs it, and sigscan.ai.enableTools is the kill switch.

audit_solidityscan_signatureslookup_selectorcompute_selectordecode_calldataencode_calldataabi_encode_paramsdecode_raw_transactionkeccak256convert_eth_unitscompute_contract_addressstorage_slotchecksum_addresseth_reference
04 / INSTALL

Three steps. No marketplace.

We ship the VSIX directly while the marketplace listing is in the works. Same extension, zero middlemen.

STEP 1

Download the VSIX

↓ 0xtools-0.0.6.vsix
STEP 2

Install it

code --install-extension 0xtools-0.0.6.vsix

or: Extensions panel → ··· menu → “Install from VSIX…”

STEP 3

Open a .sol file

Gas annotations, selector hovers and the activity-bar dashboard light up automatically.