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

precog

Trade on prediction markets. Create a local wallet, list markets, check prices, buy and sell outcome shares. Coming soon: create and fund markets directly from this skill.

Archived SourceRecently Updated
Web3

china-sportswear-outdoor-sourcing

Comprehensive sportswear and outdoor equipment sourcing guide for international buyers – provides detailed information about China's athletic apparel, footwear, outdoor gear, and accessories manufacturing clusters, supply chain structure, regional specializations, and industry trends (2026 updated).

Archived SourceRecently Updated
Web3

china-lighting-sourcing

Comprehensive lighting industry sourcing guide for international buyers – provides detailed information about China's LED, smart, outdoor, automotive, and specialty lighting manufacturing clusters, supply chain structure, regional specializations, and industry trends (2026 updated).

Archived SourceRecently Updated
Web3

china-furniture-sourcing

Comprehensive furniture industry sourcing guide for international buyers – provides detailed information about China's residential, office, hotel, outdoor, and custom furniture manufacturing clusters, supply chain structure, regional specializations, and industry trends (2026 updated).

Archived SourceRecently Updated