1---2name: portkey-eoa-agent-skills3description: Portkey EOA wallet lifecycle and asset operations for creating, importing, listing, backing up, selecting, and deleting wallets; querying tokens, NFTs, prices, balances, and history; and performing transfers, approvals, bridge, view, send, and fee estimation operations on AElf. Use by default for direct EOA wallets; use the Portkey CA skill for guardian, recovery, CA hash, or Contract Account workflows.4---56# Portkey EOA Agent Skill78## Capabilities9- Wallet lifecycle: create, import, list, backup, delete10- Shared wallet context: auto-set active wallet for cross-skill signer resolution11- Asset/query operations: token balances, NFTs, history, prices12- Transfer and contract execution via CLI/MCP/SDK adapters13- Supports SDK, CLI, MCP, OpenClaw, and IronClaw integration from one codebase.1415## Online configuration16- Portkey EOA uses `mainnet` and the public API `https://eoa-portkey.portkey.finance`; public chain and asset reads need no credentials.17- Chain RPC and default MultiToken addresses are loaded from the API chain-info response (`endPoint` and `defaultToken.address`) and cached per network instead of being hardcoded.18- Generic contract and bridge tools require caller-supplied target contract addresses because those deployments are operation-specific.19- Wallet files default to `~/.portkey/eoa/wallets/`; override storage, API, signer, read-only key, and shared wallet context through the variables in `.env.example`.2021## Safe usage rules22- Never print private keys, mnemonics, auto-generated passwords, or tokens in channel outputs.23- If compatible wallet actions return sensitive fields, treat them as one-time tool output and do not echo them in conversational summaries.24- Require explicit user confirmation before write operations and validate parameters before sending transactions.25- Prefer `simulate` or read-only queries first when available.26- Route `Get*` and other read-only contract methods through `portkey_call_view_method` or CLI `contract view` only.27- Route `portkey_call_send_method` or CLI `contract send` to state-changing methods only.28- For `Empty`-input view methods such as `GetConfig`, omit params entirely instead of passing `{}`.29- Do not treat send receipts as view payloads. For resonance reads such as `GetPairQueueStatus`, only a direct view result is canonical.30- Prefer the shared active wallet context before env fallback when signer resolution is in auto mode.31- For native-wasm wallet lifecycle actions, require an explicit `password`.32- Native-wasm keeps JS/MCP-compatible wallet action response shapes and adds keystore-backed `walletExport` (`portkey-eoa-export-v2`) for native recovery.3334## Command recipes35- Start MCP server: `bun run mcp`36- Run CLI entry: `bun run cli`37- Show active wallet context: `portkey_get_active_wallet`38- Set active wallet context: `portkey_set_active_wallet`39- Resonance read example: `bun run portkey_eoa_skill.ts contract view --contract-address <resonance_contract> --method GetPairQueueStatus --params '"<address>"' --chain-id tDVV`40- Resonance write example: `bun run portkey_eoa_skill.ts contract send --contract-address <resonance_contract> --method JoinPairQueue --params '{}' --chain-id tDVV --address <address> --password <password>`41- Build staged native-wasm assets for IronClaw: `bun run ironclaw:wasm:build`42- Package the IronClaw release bundle: `bun run ironclaw:wasm:bundle`43- Install native-wasm into IronClaw locally: `ironclaw tool install ./artifacts/ironclaw/portkey-eoa-ironclaw.wasm`44- Generate OpenClaw config: `bun run build:openclaw`45- Verify OpenClaw config: `bun run build:openclaw:check`46- Run CI coverage gate: `bun run test:coverage:ci`4748## Distribution / Activation49- GitHub repo/tree URLs are discovery-only for hosts and agents.50- Preferred IronClaw activation is the GitHub Release `.tar.gz` bundle imported through IronClaw's WASM extension flow.51- Preferred ClawHub role is discovery / install-shell that routes users to the native-wasm artifact.52- Preferred OpenClaw activation from npm when managed install is unavailable: `bunx -p @portkey/eoa-agent-skills portkey-setup openclaw` (requires Bun or a managed runtime that provides Bun).53- Local repo checkout is for development and smoke tests only, and requires `bun install` before CLI or MCP commands.54- Copying raw source into `~/.codex/skills/portkey-eoa` without installing dependencies is not a supported runtime install path.5556## Limits / Non-goals57- This skill focuses on domain operations and adapters; it is not a full wallet custody system.58- The native-wasm line uses isolated IronClaw state and is shipped as an experimental runtime alongside MCP.59- The primary IronClaw release artifact is a versioned `.tar.gz` bundle that contains exactly `portkey-eoa-ironclaw.wasm` and `portkey-eoa-ironclaw.capabilities.json`.60- The native-wasm chain foundation is `aelf-web3.rust@0.1.0-alpha.1`; IronClaw runtime glue and Portkey business adapters remain in this repo.61- The current native-wasm build implements the full 23-action EOA surface in isolated IronClaw state; chain-write flows currently rely on submit-plus-immediate-status-check semantics and still need real IronClaw validation for mined-state parity.62- Do not hardcode environment secrets in source code or docs.63- Avoid bypassing validation for external service calls.64- Do not use this skill for CA wallet, guardian, recovery, or CA hash workflows.