unsafe-low-level-call

Detect and remediate unsafe low-level call patterns in Solidity smart contracts.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill addresses the security risks associated with using low-level Solidity calls (.call(), .delegatecall(), .staticcall(), .send()) by ensuring proper error handling and target address validation.

Core Features & Use Cases

  • Vulnerability Detection: Identifies instances where low-level calls are made without checking their return values or verifying the target address has code.
  • Secure Coding Practices: Provides guidance on how to correctly implement low-level calls to prevent silent failures and unexpected behavior.
  • Use Case: Auditing a smart contract to ensure that all external calls, especially those involving untrusted addresses or critical state changes, are robust against failures and reentrancy.

Quick Start

Analyze the provided Solidity code for any unsafe low-level call patterns.

Frequently Asked Questions about unsafe-low-level-call

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

FAQPage Schema
How do I detect unsafe low-level calls in Solidity smart contracts?

Detect unsafe low-level calls in Solidity smart contracts by scanning for instances where .call(), .delegatecall(), .staticcall(), or .send() are used without checking return values. This process identifies vulnerabilities from silent failures and ensures proper error handling.

Why do unchecked return values from .call() create security vulnerabilities?

Unchecked return values from .call() create security vulnerabilities because the operation fails silently without reverting. This allows execution to continue despite failed external calls, potentially causing unexpected state changes and leaving the contract vulnerable to exploitation.

What is the best way to secure low-level calls to non-existent contract addresses?

Secure low-level calls to non-existent contract addresses by enforcing explicit target code verification before execution. This secure coding practice requires validating that the target address has code, preventing unexpected behavior when interacting with empty addresses.

How do I audit Solidity contracts for low-level call vulnerabilities?

Audit Solidity contracts for low-level call vulnerabilities by analyzing the code to ensure all external calls enforce explicit success checks. This remediation process verifies that untrusted addresses and critical state changes are robust against failures and reentrancy.

When should I not use low-level calls like .delegatecall() in smart contracts?

Avoid using low-level calls like .delegatecall() when interacting with untrusted addresses or managing critical state changes. If you cannot enforce explicit success checks and verify target code existence, these calls introduce severe silent failure and reentrancy risks.