unencrypted-private-data-on-chain

Detect unencrypted private data in Solidity state variables and calldata.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill addresses the critical security vulnerability of storing sensitive data like passwords, private keys, or game answers directly on the blockchain in an unencrypted and publicly accessible format.

Core Features & Use Cases

  • Identifies insecure data storage: Detects sensitive information stored in contract state variables or transaction calldata.
  • Highlights risks of private visibility: Explains why the private keyword does not guarantee confidentiality on-chain.
  • Provides secure alternatives: Offers remediation strategies like commit-reveal schemes and off-chain storage.
  • Use Case: A developer is building a decentralized game and stores the winning answer to a puzzle directly in a contract variable. This Skill would flag this as a high-risk vulnerability and guide the developer to use a commit-reveal mechanism instead.

Quick Start

Audit the VaultContract.sol for security vulnerabilities.

Frequently Asked Questions about unencrypted-private-data-on-chain

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

FAQPage Schema
Why does the private visibility modifier not protect sensitive data in Solidity smart contracts?

The private modifier in Solidity smart contracts only restricts access from other contracts, but all on-chain data remains publicly readable. This Skill analyzes state variables and transaction calldata to detect sensitive information exposed in unencrypted on-chain storage.

How do I securely store private data on-chain without exposing sensitive information?

To securely store private data on-chain, use cryptographic patterns like commit-reveal schemes or keep sensitive information in off-chain storage. This Skill detects unencrypted private data vulnerabilities and recommends secure remediation strategies for confidentiality.

What are the risks of storing passwords or private keys in smart contract state variables?

Storing passwords or private keys in smart contract state variables exposes them publicly because blockchain data is accessible to anyone. This Skill identifies insecure data storage in contract state and transaction calldata, highlighting these critical security vulnerabilities.

How do I implement a commit-reveal scheme to prevent sensitive data exposure in Solidity?

Implementing a commit-reveal scheme involves submitting a cryptographic hash of sensitive data first, then revealing the actual data later. This Skill guides developers toward using commit-reveal mechanisms and off-chain storage as secure alternatives to unencrypted on-chain storage.

Can transaction calldata expose sensitive information sent to smart contracts?

Yes, transaction calldata can expose sensitive information because it is publicly visible on the blockchain before execution. This Skill analyzes transaction calldata for sensitive information to detect and mitigate the risk of unencrypted private data transmission.