426e9eeabd
Voice Workbench / headless workbench (mocked backends) (push) Has been cancelled
Voice Workbench / real acoustic lane (nightly, provisioned only) (push) Has been cancelled
ci / test (push) Has been cancelled
ci / lint-and-format (push) Has been cancelled
ci / build (push) Has been cancelled
ci / dev-startup (push) Has been cancelled
gitleaks / gitleaks (push) Has been cancelled
Markdown Links / Relative Markdown Links (push) Has been cancelled
Quality (Extended) / Homepage Build (PR smoke) (push) Has been cancelled
Quality (Extended) / Comment-only diff guard (push) Has been cancelled
Quality (Extended) / Format + Type Safety Ratchet (push) Has been cancelled
Quality (Extended) / Develop Gate (secret scan + UI determinism) (push) Has been cancelled
Quality (Extended) / Develop Gate (lint) (push) Has been cancelled
Chat shell gestures / Chat shell gesture + parity e2e (push) Has been cancelled
Cloud Gateway Discord / Test (push) Has been cancelled
Benchmark Bridge Tests / benchmark (bunx @biomejs/biome check packages/lifeops-bench/src, benchmark-lint) (push) Has been cancelled
Benchmark Bridge Tests / benchmark (bunx vitest run --config packages/lifeops-bench/vitest.config.ts --root packages/lifeops-bench --passWithNoTests, benchmark-tests) (push) Has been cancelled
Build Agent Image / build-and-push (push) Has been cancelled
Dev Smoke / bun run dev onboarding chat (push) Has been cancelled
Dev Smoke / Vite HMR dependency-level smoke (push) Has been cancelled
Electrobun Submodule Guard / electrobun gitlink is fetchable (push) Has been cancelled
Publish @elizaos/example-code / check_npm (push) Has been cancelled
Publish @elizaos/example-code / publish_npm (push) Has been cancelled
Publish @elizaos/plugin-elizacloud / verify_version (push) Has been cancelled
Publish @elizaos/plugin-elizacloud / publish_npm (push) Has been cancelled
Sandbox Live Smoke / Sandbox live smoke (push) Has been cancelled
Snap Build & Test / Build Snap (amd64) (push) Has been cancelled
Snap Build & Test / Build Snap (arm64) (push) Has been cancelled
Test Packaging / elizaos CLI global-install smoke (node + bun) (push) Has been cancelled
Cloud Gateway Webhook / Test (push) Has been cancelled
Cloud Tests / lint-and-types (push) Has been cancelled
Cloud Tests / unit-tests (push) Has been cancelled
Cloud Tests / integration-tests (push) Has been cancelled
Cloud Tests / e2e-tests (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Deploy Apps Worker (Product 2) / Determine environment (push) Has been cancelled
Deploy Apps Worker (Product 2) / Deploy apps worker to apps-control host (${{ needs.determine-env.outputs.environment }}) (push) Has been cancelled
Deploy Eliza Provisioning Worker / Determine environment (push) Has been cancelled
Deploy Eliza Provisioning Worker / Deploy worker to Hetzner host (${{ needs.determine-env.outputs.environment }} @ ${{ needs.determine-env.outputs.deployment_sha }}) (push) Has been cancelled
Dev Smoke / Classify changed paths (push) Has been cancelled
supply-chain / sbom (push) Has been cancelled
supply-chain / vulnerability-scan (push) Has been cancelled
Build, Push & Deploy to Phala Cloud / build-and-push (push) Has been cancelled
Test Packaging / Validate Packaging Configs (push) Has been cancelled
Test Packaging / Build & Test PyPI Package (push) Has been cancelled
Test Packaging / PyPI on Python ${{ matrix.python }} (push) Has been cancelled
Test Packaging / Pack & Test JS Tarballs (push) Has been cancelled
UI Fixture E2E / ui-fixture-e2e (push) Has been cancelled
UI Fixture E2E / fixture-e2e (push) Has been cancelled
UI Story Gate / story-gate (push) Has been cancelled
vault-ci / test (macos-latest) (push) Has been cancelled
vault-ci / test (ubuntu-latest) (push) Has been cancelled
vault-ci / test (windows-latest) (push) Has been cancelled
vault-ci / app-core wiring tests (push) Has been cancelled
verify-patches / verify patches/CHECKSUMS.sha256 (push) Has been cancelled
Voice Benchmark Smoke / voice-emotion fixture smoke (push) Has been cancelled
Voice Benchmark Smoke / voiceagentbench fixture smoke (push) Has been cancelled
Voice Benchmark Smoke / voicebench-quality unit smoke (push) Has been cancelled
Voice Benchmark Smoke / voicebench TypeScript unit (no audio) (push) Has been cancelled
Voice Benchmark Smoke / voice bench smoke summary (push) Has been cancelled
Windows CI / windows ([bun run --cwd packages/app-core test bun run --cwd packages/elizaos test bun run --cwd packages/cloud/shared test], app-and-cli) (push) Has been cancelled
Windows CI / windows ([bun run --cwd packages/scenario-runner test bun run --cwd packages/vault test bun run --cwd packages/security test bun run --cwd plugins/plugin-coding-tools test], framework-packages) (push) Has been cancelled
Windows CI / windows ([bun run --cwd plugins/plugin-elizacloud test bun run --cwd plugins/plugin-discord test bun run --cwd plugins/plugin-anthropic test bun run --cwd plugins/plugin-openai test bun run --cwd plugins/plugin-app-control test bun run --cwd plugins/pl… (push) Has been cancelled
Windows CI / windows ([node packages/scripts/run-turbo.mjs run build --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/agent --concurrency=4 node packages/scripts/run-bash-linux-only.mjs scripts/verify-riscv64-buildpaths.sh node packages/scripts/run… (push) Has been cancelled
Windows CI / windows ([node packages/scripts/run-turbo.mjs run typecheck --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/cloud-shared --concurrency=4 bun run --cwd packages/core test bun run --cwd packages/shared test], core-runtime, 75) (push) Has been cancelled
96 lines
5.5 KiB
Markdown
96 lines
5.5 KiB
Markdown
# @elizaos/plugin-wallet
|
|
|
|
Non-custodial wallet plugin for elizaOS agents. Provides EVM and Solana signing, token transfers, swaps, cross-chain bridging, on-chain governance, LP management, and market analytics behind a single unified action+provider surface.
|
|
|
|
Replaces the former fan-out across `plugin-evm`, `plugin-solana`, `plugin-raydium`, `plugin-orca`, `plugin-meteora`, `plugin-jupiter`, `plugin-lp-manager`, and `plugin-clanker`.
|
|
|
|
## Capabilities
|
|
|
|
### On-chain actions (via the `WALLET` action)
|
|
|
|
| Subaction | What it does |
|
|
|-----------|-------------|
|
|
| `transfer` | Send tokens to an external address. EVM or Solana. Always requires user confirmation. |
|
|
| `swap` | Token swap via Li.Fi (EVM) or Jupiter (Solana). |
|
|
| `bridge` | Cross-chain transfer via Li.Fi route finding or CCTP (Circle's native USDC bridge). |
|
|
| `gov` | On-chain governance: propose, vote, queue, execute via OpenZeppelin Governor. |
|
|
| `pump_fun_buy` | Buy a pump.fun token on Solana through PumpPortal trade-local, local signing, and Solana RPC submission. |
|
|
|
|
All write operations default to `mode=prepare` (stages the transaction but does not sign or send). The agent asks the user to confirm before submitting. `dryRun=true` returns metadata without signing.
|
|
|
|
### Analytics subactions (no wallet required)
|
|
|
|
| Subaction | What it does |
|
|
|-----------|-------------|
|
|
| `token_info` | Token and market data from DexScreener, Birdeye, or CoinGecko. |
|
|
| `search_address` | Birdeye wallet portfolio lookup by address. |
|
|
|
|
### LP management
|
|
|
|
Multi-DEX LP management for both EVM and Solana chains:
|
|
|
|
- **EVM:** Uniswap V3, Aerodrome, PancakeSwap V3
|
|
- **Solana:** Raydium CLMM, Orca Whirlpools, Meteora DLMM
|
|
|
|
Access via the `lpManagerPlugin` export; LP actions are surfaced as the `LIQUIDITY` action (via `liquidityAction`).
|
|
|
|
### Market analytics
|
|
|
|
- **Birdeye:** real-time prices, trending tokens, portfolio valuation.
|
|
- **DexScreener:** pair search, token lookups.
|
|
- **Token info:** multi-provider dispatcher (DexScreener, Birdeye, CoinGecko).
|
|
- **DeFi news:** via `defiNewsPlugin`.
|
|
|
|
## Wallet backends
|
|
|
|
The plugin supports two signing backends, selected by `ELIZA_WALLET_BACKEND`:
|
|
|
|
- **`local`** — raw EOA private keys from environment variables or the OS keychain. Default for desktop.
|
|
- **`steward`** — multi-tenant Steward signing service. Required for cloud and mobile deployments.
|
|
- **`auto`** (default) — uses Steward when `ELIZA_CLOUD_PROVISIONED=1` or `ELIZA_WALLET_STEWARD_AUTO=1`, otherwise local.
|
|
|
|
## Required configuration
|
|
|
|
None of the variables below are strictly required at load time; the plugin degrades gracefully. To get signing:
|
|
|
|
| Variable | When needed |
|
|
|----------|-------------|
|
|
| `EVM_PRIVATE_KEY` | EVM operations with local backend |
|
|
| `SOLANA_PRIVATE_KEY` | Solana operations with local backend |
|
|
| `STEWARD_API_URL` + `STEWARD_AGENT_TOKEN` | Steward backend or cloud deployments |
|
|
| `SOLANA_RPC_URL` | Any Solana operation |
|
|
|
|
Additional optional variables:
|
|
|
|
| Variable | Purpose |
|
|
|----------|---------|
|
|
| `ELIZA_WALLET_BACKEND` | `local` \| `steward` \| `auto` |
|
|
| `BIRDEYE_API_KEY` | Direct Birdeye access (falls back to Eliza Cloud route) |
|
|
| `BIRDEYE_WALLET_ADDR` | Enables portfolio provider for a specific address |
|
|
| `BIRDEYE_NO_TRENDING` | Disable trending provider |
|
|
| `ELIZA_AGENT_WALLET_AUTO_ENABLE` | Set to `0` to disable auto-enable |
|
|
| `PUMPFUN_TRADE_LOCAL_URL` | Override PumpPortal local transaction API; default `https://pumpportal.fun/api/trade-local` |
|
|
| `PUMPFUN_PRIORITY_FEE_SOL` | Priority fee in SOL for `pump_fun_buy`; default `0.00005` |
|
|
| `PUMPFUN_POOL` | PumpPortal pool selector for `pump_fun_buy`; default `auto` |
|
|
| `X402_SUPPORTED_NETWORKS` | Comma-separated networks for x402 micropayments |
|
|
| `X402_GLOBAL_DAILY_LIMIT` | Daily USDC spending cap for x402 |
|
|
| `X402_PER_REQUEST_MAX` | Per-request USDC cap for x402 |
|
|
|
|
EVM RPC per chain: `ETHEREUM_RPC_URL` / `EVM_PROVIDER_MAINNET`, `BASE_RPC_URL` / `EVM_PROVIDER_BASE`, `BSC_RPC_URL` / `EVM_PROVIDER_BSC`, `ARBITRUM_RPC_URL` / `EVM_PROVIDER_ARBITRUM`.
|
|
|
|
## Enabling the plugin
|
|
|
|
The plugin auto-enables when any signing path is present (EVM or Solana private key, or Steward credentials). To opt out of auto-enable, set `ELIZA_AGENT_WALLET_AUTO_ENABLE=0`. To explicitly disable, set `enabled: false` for plugin id `wallet` in the agent config.
|
|
|
|
## Security model
|
|
|
|
All on-chain writes (`transfer`, `swap`, `bridge`, `gov`, `pump_fun_buy`) require an explicit user confirmation before execution. The LLM cannot authorize a transaction by itself — a confirmed human reply turn is always required. EVM recipient addresses on transfers are additionally validated via `assertEvmTransferRecipientAuthorized`.
|
|
|
|
`pump_fun_buy` accepts `toToken`, `token`, `tokenAddress`, `mint`, `query`, or `address` as the pump.fun/Solana token mint, with `amount` interpreted as SOL. When a browser service is loaded, execution opens `https://pump.fun/coin/<mint>` before requesting the serialized transaction from PumpPortal and signing through `WalletBackend.getSolanaSigner()` or the existing local Solana wallet path.
|
|
|
|
`src/audit/audit-log.ts` defines `AuditLogRow` plus hash-chain helpers for action validate/handler lifecycle events and signing requests. Runtime callers own where those rows are stored.
|
|
|
|
## SDK
|
|
|
|
`src/sdk/` provides lower-level ERC-6551 token-bound account primitives, x402 micropayment protocol types, CCTP bridge helpers, and spend-policy tooling. These are primarily for plugin internals but are re-exported from the package barrel for external use. SDK source is MIT-licensed (attribution: agent-wallet-sdk); see `SDK-LICENSE`.
|