unsupported-opcodes

Detect unsupported opcodes in Solidity contracts for EVM-compatible chains.

1|1|Updated Feb 18, 2026
One-click install
npx skills add https://github.com/Apegurus/solidity-argus --skill unsupported-opcodes
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: unsupported-opcodes
Source: https://github.com/Apegurus/solidity-argus/tree/main/skills/vulnerability-patterns/unsupported-opcodes
Command: npx skills add https://github.com/Apegurus/solidity-argus --skill unsupported-opcodes

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill identifies and flags the use of unsupported or differently behaving opcodes in Solidity smart contracts when targeting EVM-compatible chains other than Ethereum mainnet, preventing deployment failures and runtime errors.

Core Features & Use Cases

  • Cross-Chain Compatibility Checks: Detects issues with opcodes like PUSH0, .transfer(), dynamic create, and selfdestruct that may not function as expected on chains like zkSync Era, Arbitrum, or Optimism.
  • Vulnerability Pattern Matching: Identifies specific vulnerable patterns related to gas stipend limitations and unsupported EVM features.
  • Use Case: Ensure your smart contract, developed with a recent Solidity version, can be successfully deployed and operated on Polygon or BNB Chain without encountering unexpected reverts due to unsupported opcodes.

Quick Start

Analyze the provided Solidity contract for unsupported opcode usage on Arbitrum.

Frequently Asked Questions about unsupported-opcodes

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why does my Solidity smart contract fail on Arbitrum or Optimism?

Smart contract failures on Arbitrum or Optimism often stem from unsupported opcodes like PUSH0 or differently behaving EVM features. Analyzing your contract for opcode compatibility verifies behavior against target chain specifications to prevent deployment and runtime failures.

What opcodes are unsupported on zkSync Era?

Common unsupported opcodes on zkSync Era include PUSH0, dynamic contract creation, and selfdestruct. Additionally, .transfer() gas stipends may behave differently. Checking opcode compatibility ensures your Solidity contract operates correctly on non-mainnet EVM chains.

How do I audit a Solidity contract for cross-chain EVM compatibility?

To audit cross-chain EVM compatibility, analyze the Solidity contract for unsupported opcodes and vulnerability patterns. Verify opcode behavior against target chain specifications to identify issues with PUSH0, .transfer() gas stipends, dynamic create, and selfdestruct on networks like Polygon or BNB Chain.

Does PUSH0 work on all EVM-compatible chains?

No, PUSH0 does not work on all EVM-compatible chains and may cause deployment failures on networks like zkSync Era. You must verify opcode compatibility against your specific target chain specification to prevent unexpected runtime reverts.

When do I need to check smart contract opcode compatibility?

You need to check smart contract opcode compatibility when deploying Solidity contracts developed with recent versions to EVM-compatible chains beyond Ethereum mainnet. This prevents runtime errors and deployment failures from unsupported opcodes like PUSH0 or selfdestruct on Arbitrum, Optimism, or Polygon.