Skill: nedim1511/unclaimed-sol-scanner (version 1.0.1)

--- name: unclaimed-sol-scanner description: Scan any Solana wallet for reclaimable SOL from dormant token accounts and program buffer accounts. Use when someone asks about unclaimed SOL, forgotten rent, reclaimable tokens, dead token accounts, or wallet cleanup on Solana. Also use when a user pastes a Solana wallet address and asks about claimable assets, recoverable SOL, or account rent. Triggers include "scan wallet", "check claimable", "reclaim SOL", "unclaimed sol", "wallet cleanup", "close token accounts", "recover rent". author: Unclaimed SOL (https://unclaimedsol.com) homepage: https://unclaimedsol.com privacy_policy: https://blog.unclaimedsol.com/privacy-policy/ --- # Unclaimed SOL Scanner Scan any Solana wallet to find reclaimable SOL locked in dormant token accounts and program buffer accounts. ## Privacy & Data Disclosure This skill sends the user's **Solana public key** (wallet address) to the Unclaimed SOL API (`https://unclaimedsol.com/api/check-claimable-sol`) via an HTTPS POST request. No other data is transmitted. No private keys, seed phrases, or signing capabilities are involved. **Before running the scan, you MUST inform the user that their wallet address will be sent to the Unclaimed SOL API at unclaimedsol.com, and obtain their confirmation before proceeding.** Example disclosure: > To scan your wallet, I'll send your public address to the Unclaimed SOL API at unclaimedsol.com. No private keys are involved — only your public address. Want me to proceed? ## How to use 1. Get the Solana wallet address from the user (base58 public key, 32-44 characters, e.g. `7xKXq1...`) 2. **Disclose the API call and get user confirmation** (see above). 3. Run the scan script: ```bash bash {baseDir}/scripts/scan.sh <wallet_address> ``` 4. Parse the JSON response and format for the user. ## Reading the response The script returns JSON: ```json { "totalClaimableSol": 4.728391, "assets": 3.921482, "buffers": 0.806909, "tokenCount": 183, "bufferCount": 3 } ``` - `totalClaimableSol` — total SOL reclaimable (sum of assets + buffers) - `assets` — SOL from dormant token accounts (empty ATAs, dead memecoins, dust) - `buffers` — SOL from program buffer accounts - `tokenCount` — number of token accounts to close (may be 0 if backend hasn't added this yet) - `bufferCount` — number of buffer accounts to close (may be 0 if backend hasn't added this yet) If `tokenCount` and `bufferCount` are both 0 or missing, do NOT report account counts — just report the SOL totals. ## Formatting the response **Show the exact SOL value returned by the API.** Do not round to 2 decimal places — show full precision (e.g. 4.728391, not 4.73). **If totalClaimableSol > 0:** Report the total, then break down by type if both are non-zero: > Your wallet has **4.728391 SOL** reclaimable. > - 3.921482 SOL from 183 token accounts > - 0.806909 SOL from 3 buffer accounts > > You can claim at: https://unclaimedsol.com If only one type has value, skip the breakdown — just show the total. **If totalClaimableSol is 0:** > This wallet has no reclaimable SOL. All accounts are active or already optimized. **If the script returns an error:** > Unable to scan this wallet right now. You can try directly at https://unclaimedsol.com — connect your wallet there to see your reclaimable SOL. Do NOT tell the user to "paste" or "enter" the address into a search box. The website uses wallet connection, not a search box. ## Rules - This is **read-only**. No transactions are executed. No keys are needed. - **Never** ask the user for their seed phrase, private key, or mnemonic. - Only accept Solana **public keys** (base58, 32-44 characters). - If the input doesn't look like a valid Solana address, ask the user to double-check it. - **Always disclose the external API call and get user consent before scanning.**

path: README.md
content: # Unclaimed SOL Scanner

Scan any Solana wallet for reclaimable SOL locked in dormant token accounts and program buffer accounts — from any AI assistant.

Powered by [Unclaimed SOL](https://unclaimedsol.com).

## Install

**OpenClaw / ClawHub:**
```bash
clawhub install unclaimed-sol-scanner
```

**Or paste this repo URL into OpenClaw** and it will let you choose to install.

**Manual:**
```bash
cp -r unclaimed-sol-scanner ~/.openclaw/skills/
```

## What it does

Every token interaction on Solana creates an account with rent locked in it. Dead memecoins, old NFTs, forgotten airdrops — they all leave rent behind. This skill scans any wallet and tells you how much SOL is reclaimable.

**Example:**
> You: "Scan this wallet for unclaimed SOL: 7xKXq1..."
>
> Agent: "Your wallet has 4.728391 SOL reclaimable across 186 accounts."

## Read-only

This skill only scans. It does not execute transactions, ask for private keys, or modify your wallet in any way.

To claim your SOL, visit [unclaimedsol.com](https://unclaimedsol.com).

## Privacy & Data Disclosure

**This skill sends the user's Solana public wallet address to the Unclaimed SOL API** (`https://unclaimedsol.com/api/check-claimable-sol`) via an HTTPS POST request to check for reclaimable SOL. This is the only data transmitted.

- No private keys, seed phrases, or signing capabilities are involved.
- The agent is instructed to **inform the user and obtain consent** before making the API call.
- See the [Unclaimed SOL Privacy Policy](https://blog.unclaimedsol.com/privacy-policy/) for how the API handles submitted addresses.

## Compatibility

Works with any tool that supports the [AgentSkills](https://docs.anthropic.com) format:
- OpenClaw
- Claude Code
- Cursor
- Any AgentSkills-compatible agent

## Security

- Read-only — no transactions, no signing
- No private keys or seed phrases required
- Uses only public blockchain data via the Unclaimed SOL API
- Agent must disclose and get user consent before transmitting wallet address

## Links

- [Unclaimed SOL](https://unclaimedsol.com) — claim your SOL
- [Privacy Policy](https://blog.unclaimedsol.com/privacy-policy/)
- [ClawHub](https://clawhub.ai) — browse OpenClaw skills

## Author

[Unclaimed SOL](https://unclaimedsol.com)

## License

MIT


path: scripts/scan.sh
content: #!/bin/bash
# Unclaimed SOL Scanner — scan a Solana wallet for reclaimable SOL
# Usage: bash scan.sh <wallet_address>

set -euo pipefail

WALLET="${1:-}"
API_URL="https://unclaimedsol.com/api/check-claimable-sol"

if [ -z "$WALLET" ]; then
  echo '{"error": "No wallet address provided. Please provide a Solana public key."}'
  exit 1
fi

# Basic format check (base58, 32-44 chars)
if ! echo "$WALLET" | grep -qE '^[1-9A-HJ-NP-Za-km-z]{32,44}$'; then
  echo '{"error": "Invalid wallet address format. Expected a base58 Solana public key (32-44 characters)."}'
  exit 1
fi

RESPONSE=$(curl -s -f -X POST "$API_URL" \
  -H "Content-Type: application/json" \
  -d "{\"publicKey\": \"$WALLET\"}" \
  --max-time 15 2>/dev/null) || {
  echo '{"error": "Failed to reach Unclaimed SOL API. Try again or visit https://unclaimedsol.com directly."}'
  exit 1
}

# Check if response looks like valid JSON with expected fields
if echo "$RESPONSE" | grep -q '"totalClaimableSol"'; then
  echo "$RESPONSE"
else
  echo '{"error": "Unexpected response from API. Try again or visit https://unclaimedsol.com directly."}'
  exit 1
fi


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)