
Wallet
Wire multi-chain EVM and Solana wallet tools—balances, transfers, signing, and policy—into a Starchild agent via registerable skill tools.
Overview
Wallet is an agent skill for the Build phase that registers EVM and Solana wallet tools for balances, transfers, signing, and policy management in Starchild-style agents.
Install
npx skills add https://github.com/starchild-ai-agent/official-skills --skill walletWhat is this skill?
- Multi-chain coverage: EVM balances, transfers, signing, typed data, and transaction history
- Parallel Solana balance, transfer, sign, and transaction tools
- WalletInfo, aggregate balances, and policy get/propose tooling
- Delegates core logic to /app/tools/wallet for consistent agent behavior
- Fifteen registered wallet tool classes in a single register(api) entry point
- 15 wallet tool classes registered via register(api) (EVM and Solana families plus policy tools)
Adoption & trust: 6.7k installs on skills.sh; 13 GitHub stars; 1/3 security scanners passed (skills.sh audits).
What problem does it solve?
You are building a crypto agent but lack a consistent, multi-chain wallet tool surface wired into your agent registration API.
Who is it for?
Indie builders on Starchild or compatible agent stacks shipping Web3 automations that need programmatic wallet actions with policy hooks.
Skip if: Pure Web2 SaaS with no chain interaction, beginners learning wallets manually, or production treasury without custom security review and key management.
When should I use this skill?
Agent needs programmatic wallet info, balances, transfers, signing, transaction history, or policy management on EVM and/or Solana.
What do I get? / Deliverables
Your agent exposes registered wallet tools for both EVM and Solana so sessions can query balances, move funds, sign payloads, and inspect or propose policies through one skill package.
- Registered wallet tool suite on the agent API
- Runnable balance, transfer, and sign flows per chain family
Recommended Skills
Journey fit
Wallet capabilities are integration glue between your agent framework and on-chain infrastructure during product build. Integrations fits because the skill registers many wallet tools against an Agent API rather than teaching smart-contract authoring alone.
How it compares
Agent wallet integration skill—not a custodial SaaS or hardware wallet product.
Common Questions / FAQ
Who is wallet for?
Developers assembling Starchild-class agents that must perform on-chain reads, transfers, and signatures across EVM and Solana from tool calls.
When should I use wallet?
During Build integrations while registering agent tools before you test end-to-end flows on devnet or controlled mainnet wallets.
Is wallet safe to install?
Treat as high risk: signing and transfers use secrets and network access—read Prism Security Audits on this page and never point production keys at an unaudited agent sandbox.
SKILL.md
READMESKILL.md - Wallet
""" Wallet Skill — Multi-chain wallet (EVM + Solana) Balances, transfers, signing, policy management. Delegates to /app/tools/wallet for core functions. """ import logging from typing import List logger = logging.getLogger(__name__) def register(api) -> List[str]: """Register all wallet tools with the Agent framework.""" registered = [] try: from .wallet import ( WalletInfoTool, WalletBalanceTool, WalletSolBalanceTool, WalletGetAllBalancesTool, WalletTransferTool, WalletSignTransactionTool, WalletSignTool, WalletSignTypedDataTool, WalletTransactionsTool, WalletSolTransferTool, WalletSolSignTransactionTool, WalletSolSignTool, WalletSolTransactionsTool, WalletGetPolicyTool, WalletProposePolicyTool, ) tools = [ WalletInfoTool(), WalletBalanceTool(), WalletSolBalanceTool(), WalletGetAllBalancesTool(), WalletTransferTool(), WalletSignTransactionTool(), WalletSignTool(), WalletSignTypedDataTool(), WalletTransactionsTool(), WalletSolTransferTool(), WalletSolSignTransactionTool(), WalletSolSignTool(), WalletSolTransactionsTool(), WalletGetPolicyTool(), WalletProposePolicyTool(), ] for tool in tools: api.register_tool(tool) registered.append(tool.name) except Exception as e: logger.error(f"Failed to register wallet tools: {e}", exc_info=True) return registered """ Wallet skill exports — for use in task scripts via core.skill_tools. Usage: from core.skill_tools import wallet info = wallet.wallet_info() bal = wallet.wallet_balance(chain="base") all_bal = wallet.wallet_get_all_balances() Delegates to /app/tools/wallet core functions for single-source maintenance. """ import asyncio try: import nest_asyncio nest_asyncio.apply() except ImportError: pass # Import core functions from /app/tools/wallet from tools.wallet import ( _wallet_request, _is_fly_machine, _get_wallet_addresses, _validate_and_clean_rules, DEBANK_CHAIN_MAP, ) from core.http_client import proxied_get EVM_CHAINS = list(DEBANK_CHAIN_MAP.keys()) def _run(coro): """Run async in sync context (works even if event loop is running).""" try: loop = asyncio.get_event_loop() return loop.run_until_complete(coro) except RuntimeError: return asyncio.run(coro) # ── Info ───────────────────────────────────────────────────────────────────── def wallet_info(): """Get all wallet addresses.""" return _run(_wallet_request("GET", "/agent/wallet")) # ── Balances ───────────────────────────────────────────────────────────────── def wallet_balance(chain: str, address: str = "", asset: str = ""): """Get EVM balance on a chain (via DeBank or wallet-service fallback).""" import os async def _impl(): if chain not in EVM_CHAINS: return {"error": f"Invalid chain '{chain}'. Must be one of: {', '.join(EVM_CHAINS)}"} debank_key = os.environ.get("DEBANK_API_KEY", "") if debank_key: evm_address = address if not evm_address: addrs = await _get_wallet_addresses() evm_address = addrs.get("evm", "") if not evm_address: return {"error": "Could not determine EVM wallet address"} resp = proxied_get( "https://pro-openapi.debank.com/v1/user/token_list", params={"id": evm_address, "chain_id": DEBANK_CHAIN_MAP.get(chain), "is_all": "false"}, headers={"AccessKey": debank_key}, ) resp.raise_for_status() return {"address": evm_address, "chai