seed-my-wallet

Use Seed My Wallet to populate Solana devnet wallets with test SPL tokens and empty token accounts. Use when the user wants to seed a devnet wallet, get test tokens, create empty ATAs, populate a wallet for testing, or mentions "devnet has no data," "need test tokens," "empty accounts," "burner testing," or Solana devnet test data.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "seed-my-wallet" with this command: npx skills add aerosol-xyz/seedmywallet-skills/aerosol-xyz-seedmywallet-skills-seed-my-wallet

Seed My Wallet

Use Seed My Wallet to populate Solana devnet wallets with test data—SPL tokens and empty Associated Token Accounts (ATAs). Our servers process requests and deliver assets on-chain within seconds. No signup, no API keys.

Default Behavior

Handle the request yourself via CLI. Run the curl commands to check limits and submit the seed request. Do not direct the user to the website unless they explicitly ask for a web app, dApp, or browser-based solution.

Always run check-limits yourself first. Call the check-limits API before submitting the order. Do not ask the user to check limits—do it automatically. If limits are exceeded, explain and suggest waiting or reducing counts. If allowed, proceed to submit the order.

Only direct to seedmywallet.com when the user asks for a web app, dApp, or wants to do it in the browser themselves.

When to Use

  • User needs to seed a Solana devnet wallet for testing
  • User mentions "devnet has no test data," "need test tokens," "empty ATAs"
  • Testing burner products (closing empty accounts, rent recovery)
  • Setting up a wallet with tokens for development

Quick Reference

ItemValue
Web appseedmywallet.com
API basehttps://preview-api.aerosol.so
Rate limits50 tokens/hour, 50 empty accounts/hour (per wallet or IP)
NetworkSolana devnet only

CLI Workflow (Agents)

Agents use the CLI. Full workflow:

# 1. Configure for devnet
solana config set --url devnet

# 2. Airdrop SOL (transaction fees)
solana airdrop 2
# Or: solana airdrop 2 <ADDRESS> --url devnet

# 3. Check limits (run this yourself—do not ask the user)
curl -s -X POST "https://preview-api.aerosol.so/test-data-seeder/check-limits" \
  -H "Content-Type: application/json" \
  -d '{"targetWalletAddress":"<WALLET>","tokenRequest":{"count":5},"emptyAccountRequest":{"count":3}}'

# 4. If allowed, seed via Seed My Wallet API
curl -s -X POST "https://preview-api.aerosol.so/test-data-seeder/order" \
  -H "Content-Type: application/json" \
  -d '{"targetWalletAddress":"<WALLET>","tokenRequest":{"count":5},"emptyAccountRequest":{"count":3}}'

Web App (Only When User Asks)

Only use when the user explicitly asks for a web app, dApp, or browser solution. Otherwise, handle it via CLI.

seedmywallet.com — User enters wallet address, chooses token/empty account counts, clicks "seed wallet." Ensure wallet is on devnet.


API (curl, scripts, integrations)

Check limits (agents: run automatically before order)

Always call check-limits before submitting. Do not ask the user to do this—run it yourself:

curl -s -X POST "https://preview-api.aerosol.so/test-data-seeder/check-limits" \
  -H "Content-Type: application/json" \
  -d '{"targetWalletAddress":"<WALLET>","tokenRequest":{"count":5},"emptyAccountRequest":{"count":3}}'

Response when allowed: {"allowed":true}
Response when over limit: {"allowed":false,"message":"Rate limit exceeded: you can request at most 50 tokens per hour..."}

Submit request

curl -s -X POST "https://preview-api.aerosol.so/test-data-seeder/order" \
  -H "Content-Type: application/json" \
  -d '{
    "targetWalletAddress": "7dzNv3is8js2faFrcLdrFJw23n3cGuzNYsL4ynYm1ikX",
    "tokenRequest": { "count": 5 },
    "emptyAccountRequest": { "count": 3 }
  }'

Request schema

{
  "targetWalletAddress": "string (required)",
  "tokenRequest": { "count": 0-20 },
  "emptyAccountRequest": { "count": 0-20 }
}

At least one of tokenRequest or emptyAccountRequest must have count > 0.

Response (201)

{
  "id": "...",
  "status": "not_started",
  "targetWalletAddress": "...",
  "assetDelivery": {
    "token": { "requested": 5, "delivered": 0, "deliveryErrors": [], "totalErrors": 0 },
    "emptyAccount": { "requested": 3, "delivered": 0, "deliveryErrors": [], "totalErrors": 0 }
  },
  "createdAt": "2026-02-23T06:39:50.913Z",
  "updatedAt": "2026-02-23T06:39:50.913Z"
}

Status values: not_startedin_progresscomplete or failed. Our servers deliver on-chain; the user can check their wallet or a devnet block explorer.

Response (429 — rate limit)

{
  "message": "Rate limit exceeded: you can request at most 50 tokens per hour. Your recent requests plus this one would total 69."
}

What You Get

Tokens: Fungible SPL tokens. We mint new tokens and send them to the wallet. Each has its own mint address.

Empty accounts: Empty ATAs with zero balance. Useful for testing burner products—e.g. closing empty accounts, rent recovery, account cleanup flows.


Integration Examples

JavaScript/TypeScript

const BASE = 'https://preview-api.aerosol.so';

async function checkLimits(wallet, tokens = 5, emptyAccounts = 3) {
  const res = await fetch(`${BASE}/test-data-seeder/check-limits`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      targetWalletAddress: wallet,
      tokenRequest: { count: tokens },
      emptyAccountRequest: { count: emptyAccounts },
    }),
  });
  return res.json();
}

async function seedWallet(wallet, tokens = 5, emptyAccounts = 3) {
  const limits = await checkLimits(wallet, tokens, emptyAccounts);
  if (!limits.allowed) {
    throw new Error(limits.message ?? 'Rate limit exceeded');
  }
  const res = await fetch(`${BASE}/test-data-seeder/order`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      targetWalletAddress: wallet,
      tokenRequest: { count: tokens },
      emptyAccountRequest: { count: emptyAccounts },
    }),
  });
  if (res.status === 429) {
    const err = await res.json();
    throw new Error(err.message);
  }
  return res.json();
}

Shell script

WALLET="$1"
TOKENS="${2:-5}"
EMPTY="${3:-3}"

# Check limits
CHECK=$(curl -s -X POST "https://preview-api.aerosol.so/test-data-seeder/check-limits" \
  -H "Content-Type: application/json" \
  -d "{\"targetWalletAddress\":\"$WALLET\",\"tokenRequest\":{\"count\":$TOKENS},\"emptyAccountRequest\":{\"count\":$EMPTY}}")

if echo "$CHECK" | grep -q '"allowed":false'; then
  echo "Rate limit exceeded: $(echo "$CHECK" | jq -r '.message')"
  exit 1
fi

# Seed
curl -s -X POST "https://preview-api.aerosol.so/test-data-seeder/order" \
  -H "Content-Type: application/json" \
  -d "{\"targetWalletAddress\":\"$WALLET\",\"tokenRequest\":{\"count\":$TOKENS},\"emptyAccountRequest\":{\"count\":$EMPTY}}"

Common Workflows

1. User needs tokens for testing

Recommend: 5 tokens, 0–3 empty accounts. Run the curl for them with their wallet address. Do not redirect to the web app unless they ask for it.

2. User is testing a burner / close-account flow

Recommend: 0 tokens, 3–5 empty accounts. Empty ATAs are for testing closing accounts and rent recovery.

3. User hit rate limit

Explain: 50 tokens and 50 empty accounts per hour per wallet or IP. Suggest they wait an hour or reduce the requested counts.

4. User on mainnet

Remind: Seed My Wallet is devnet only. For CLI: solana config set --url devnet. For browser wallets: switch to devnet in wallet settings.


Troubleshooting

IssueSolution
"Invalid Solana address"Ensure the wallet address is a valid base58 Solana pubkey
429 responseRate limit—wait or reduce counts. Agent should call check-limits before order to avoid 429
Nothing arrivedConfirm wallet is on devnet. Check a devnet block explorer. Delivery can take a few seconds
"Request at least one token or empty account"At least one of tokenRequest or emptyAccountRequest must have count > 0

Made with ❤️ by Aerosol

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Web3

Crypto Whale Tracker

Track large cryptocurrency transfers (whale movements) using public APIs like Whale Alert and Etherscan. Set thresholds, monitor wallets, and generate format...

Registry SourceRecently Updated
Web3

Crypto Tax Calc

Calculate crypto capital gains taxes with FIFO/LIFO/average cost methods, multi-country tax law support, and HTML report generation. Use when you need crypto...

Registry SourceRecently Updated
Web3

Crypto Tracker Cn

Track cryptocurrency markets in real-time. 加密货币行情追踪、比特币价格、以太坊ETH、市值排行、DeFi数据、恐惧贪婪指数、趋势币种、空投信息、RSI技术分析、均线分析、金叉死叉、DeFi收益率对比、Gas费查询。Use when checking crypto pri...

Registry SourceRecently Updated
Web3

Crypto News Feed

Aggregate crypto news from RSS feeds, filter by keywords, score sentiment, and generate daily digest HTML reports. Use when you need crypto news feed capabil...

Registry SourceRecently Updated