Назад към всички

evalanche

// Multi-EVM agent wallet SDK with onchain identity (ERC-8004), payment rails (x402), cross-chain bridging (Li.Fi), and destination gas funding (Gas.zip). Supports 21+ EVM chains: Ethereum, Base, Arbitrum, Optimism, Polygon, BSC, Avalanche, and more. Agents generate and manage their own keys — no human

$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
nameevalanche
descriptionMulti-EVM agent wallet SDK with onchain identity (ERC-8004), payment rails (x402), cross-chain liquidity (Li.Fi bridging + DEX aggregation + DeFi Composer), destination gas funding (Gas.zip), perpetual futures trading (dYdX v4), market intelligence (CoinGecko), prediction markets (Polymarket CLOB), and DeFi operations (liquid staking + EIP-4626 vaults). Supports 21+ EVM chains: Ethereum, Base, Arbitrum, Optimism, Polygon, BSC, Avalanche, and more. Agents generate and manage their own keys — no human input required. Use when: booting an autonomous agent wallet on any EVM chain, sending tokens, calling contracts, resolving agent identity, checking reputation, making x402 payment-gated API calls, bridging tokens cross-chain (Li.Fi), same-chain DEX swaps (31+ aggregators via Li.Fi), one-click DeFi operations (Composer: bridge + deposit into Morpho/Aave/Pendle/Lido/etc), tracking cross-chain transfer status, discovering tokens and prices across chains, querying gas prices, finding available bridges and DEX aggregators, funding gas on destination chains (Gas.zip), cross-chain transfers (Avalanche C↔X↔P), delegating stake, querying validators, signing messages, creating subnets, managing L1 validators, adding validators with BLS keys, querying node info, trading perpetual futures on dYdX v4 (100+ markets), searching for perp markets across venues, querying CoinGecko market data, searching Polymarket markets and order books, buying or selling Polymarket outcome shares on Polygon, staking/unstaking sAVAX via Benqi, depositing/withdrawing from EIP-4626 vaults (yoUSD, Morpho, Aave, etc), and resolving known Avalanche/Base DeFi contracts with canonical chain routing or interoperable-address inputs. Don't use when: managing ENS (use moltbook scripts). Network: yes (EVM RPCs via Routescan + public fallbacks, dYdX Cosmos chain). Cost: gas fees per transaction.
metadata[object Object]

Evalanche — Multi-EVM Agent Wallet

Headless wallet SDK with ERC-8004 identity, x402 payments, Li.Fi cross-chain liquidity (bridging + DEX aggregation + DeFi Composer), Gas.zip gas funding, dYdX v4 perpetuals, CoinGecko market intelligence, Polymarket market discovery and execution, contract interaction helpers (approve-and-call + UUPS upgrade), and DeFi operations (liquid staking + EIP-4626 vaults). Works on 21+ EVM chains. Works as CLI or MCP server.

Source: https://github.com/iJaack/evalanche License: MIT

Supported Chains

Ethereum, Base, Arbitrum, Optimism, Polygon, BSC, Avalanche, Fantom, Gnosis, zkSync Era, Linea, Scroll, Blast, Mantle, Celo, Moonbeam, Cronos, Berachain, + testnets (Fuji, Sepolia, Base Sepolia).

Routescan RPCs preferred where available, with public fallback RPCs.

Security Model

Key Storage & Encryption

Evalanche.boot() manages keys autonomously with encrypted-at-rest storage:

  1. First run: Generates a BIP-39 mnemonic via ethers.HDNodeWallet.createRandom()
  2. Encryption: AES-128-CTR + scrypt KDF (geth-compatible keystore format)
  3. Password derivation: 32-byte random entropy file via crypto.randomBytes(32)
  4. File permissions: chmod 0o600 (owner read/write only)
  5. Storage location: ~/.evalanche/keys/ by default

MCP Server Access Controls

  • Stdio mode (default): stdin/stdout only. No network exposure.
  • HTTP mode (--http): localhost:3402. Do not expose publicly without auth.

OpenClaw External Secrets (Preferred when available)

Priority: OpenClaw secrets → raw env vars → encrypted keystore.

Setup

1. Install

npm install -g evalanche

2. Boot on any chain

import { Evalanche } from 'evalanche';

// Base
const { agent } = await Evalanche.boot({ network: 'base' });

// Ethereum
const { agent: eth } = await Evalanche.boot({ network: 'ethereum' });

// Arbitrum
const { agent: arb } = await Avalanche.boot({ network: 'arbitrum' });

// Avalanche (with identity)
const { agent: avax } = await Evalanche.boot({
  network: 'avalanche',
  identity: { agentId: '1599' },
});

3. Run as MCP server

AVALANCHE_NETWORK=base evalanche-mcp

Available Tools (MCP)

Wallet

ToolDescription
get_addressGet agent wallet address
get_balanceGet native token balance
sign_messageSign arbitrary message
send_avaxSend native tokens
call_contractCall a contract method

Identity (ERC-8004)

ToolDescription
resolve_identityResolve agent identity + reputation
resolve_agentLook up any agent by ID

Payments (x402)

ToolDescription
pay_and_fetchx402 payment-gated HTTP request

Reputation

ToolDescription
submit_feedbackSubmit on-chain reputation feedback

Network & Chains

ToolDescription
get_networkGet current network config
get_supported_chainsList all 21+ supported chains
get_chain_infoGet details for a specific chain
switch_networkSwitch to different EVM chain

Arena DEX (Avalanche)

ToolDescription
arena_buyBuy Arena community tokens via bonding curve (spends $ARENA)
arena_sellSell Arena community tokens for $ARENA
arena_token_infoGet token info (fees, curve params) by address
arena_buy_costCalculate $ARENA cost for a given buy amount (read-only)

Polymarket (Polygon)

ToolDescription
pm_searchSearch active Polymarket markets by keyword
pm_marketGet market details and outcome tokens by condition ID
pm_positionsGet Polymarket positions for a wallet
pm_orderbookGet the order book for an outcome token
pm_balancesGet normalized collateral and outcome-token balances
pm_orderGet venue-truth order status and reconciliation
pm_cancel_orderCancel an open Polymarket order
pm_open_ordersList open Polymarket orders
pm_tradesList recent Polymarket venue trades
pm_approveApprove collateral spending for Polymarket on Polygon
pm_preflightRun deterministic buy/sell/limit-sell preflight checks
pm_buyBuy YES/NO shares with market or limit orders
pm_sellSlippage-protected immediate YES/NO sell toward a target USDC proceeds amount
pm_limit_sellPost or take a YES/NO limit sell depending on postOnly
pm_reconcileReconcile balances, positions, orders, and trades against venue truth
pm_redeemReserved for winning-share redemption; not implemented yet

Contract Interaction Helpers (v0.9.0)

ToolDescription
approve_and_callApprove ERC-20 spending, then execute a follow-up contract call
upgrade_proxyUpgrade a UUPS proxy via upgradeToAndCall

Bridging & Cross-Chain

ToolDescription
get_bridge_quoteGet cross-chain bridge quote (Li.Fi)
get_bridge_routesGet all bridge route options
bridge_tokensBridge tokens between chains
check_bridge_statusPoll cross-chain transfer status (PENDING/DONE/FAILED)
fund_destination_gasFund gas via Gas.zip

Li.Fi Liquidity SDK (v0.8.0)

ToolDescription
lifi_swap_quoteGet same-chain DEX swap quote (31+ aggregators)
lifi_swapExecute same-chain DEX swap
lifi_get_tokensList tokens with prices on specified chains
lifi_get_tokenGet specific token info (symbol, decimals, priceUSD)
lifi_get_chainsList all Li.Fi supported chains
lifi_get_toolsList available bridges and DEX aggregators
lifi_gas_pricesGet gas prices across all chains
lifi_gas_suggestionGet gas suggestion for a specific chain
lifi_get_connectionsDiscover possible transfer paths between chains
lifi_composeCross-chain DeFi Composer (bridge + deposit into Morpho/Aave/Pendle/Lido/etc in one tx)

lifi_swap and lifi_compose return execution envelopes with request, submission, verification, and warnings.

Platform CLI (requires platform-cli binary — go install github.com/ava-labs/platform-cli@latest)

ToolDescription
platform_cli_availableCheck if platform-cli is installed
subnet_createCreate a new Avalanche subnet
subnet_convert_l1Convert subnet to L1 blockchain
subnet_transfer_ownershipTransfer subnet ownership
add_validatorAdd validator with BLS keys to Primary Network
l1_register_validatorRegister a new L1 validator
l1_add_balanceAdd balance to L1 validator
l1_disable_validatorDisable an L1 validator
node_infoGet NodeID + BLS keys from running node
pchain_sendSend AVAX on P-Chain (P→P)

dYdX v4 Perpetuals (v0.7.0 — requires mnemonic)

ToolDescription
dydx_get_marketsList all dYdX perpetual markets with prices/leverage
dydx_has_marketCheck if a specific perp market exists (e.g. AKT-USD)
dydx_get_balanceGet USDC equity on dYdX subaccount
dydx_get_positionsGet all open perpetual positions
dydx_place_market_orderPlace a market order (BUY/SELL)
dydx_place_limit_orderPlace a limit order
dydx_cancel_orderCancel an open order
dydx_close_positionClose position with reduce-only market order
dydx_get_ordersList orders (optionally filter by status)
hyperliquid_get_marketsList Hyperliquid perpetual markets
hyperliquid_get_account_stateGet Hyperliquid account summary
hyperliquid_get_positionsGet Hyperliquid open positions
hyperliquid_place_market_orderPlace Hyperliquid market order
hyperliquid_place_limit_orderPlace Hyperliquid limit order
hyperliquid_cancel_orderCancel Hyperliquid order
hyperliquid_close_positionClose Hyperliquid position
hyperliquid_get_orderGet Hyperliquid order status
hyperliquid_get_ordersList Hyperliquid open orders
hyperliquid_get_tradesList Hyperliquid recent fills
find_perp_marketSearch for a market across all connected perp venues

Programmatic Usage

Check balance on Base

node -e "
const { Evalanche } = require('evalanche');
const agent = new Evalanche({ privateKey: process.env.AGENT_PRIVATE_KEY, network: 'base' });
agent.provider.getBalance(agent.address).then(b => {
  const { formatEther } = require('ethers');
  console.log(formatEther(b) + ' ETH');
});
"

Bridge tokens (Ethereum → Arbitrum)

node -e "
const { Evalanche } = require('evalanche');
const agent = new Evalanche({ privateKey: process.env.AGENT_PRIVATE_KEY, network: 'ethereum' });
agent.bridgeTokens({
  fromChainId: 1, toChainId: 42161,
  fromToken: '0x0000000000000000000000000000000000000000',
  toToken: '0x0000000000000000000000000000000000000000',
  fromAmount: '0.1', fromAddress: agent.address,
}).then(r => console.log('tx:', r.txHash));
"

Same-chain DEX swap (ETH → USDC on Base)

node -e "
const { Evalanche } = require('evalanche');
const agent = new Evalanche({ privateKey: process.env.AGENT_PRIVATE_KEY, network: 'base' });
agent.swap({
  fromChainId: 8453, toChainId: 8453,
  fromToken: '0x0000000000000000000000000000000000000000',
  toToken: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
  fromAmount: '0.05', fromAddress: agent.address,
}).then(r => console.log('swap tx:', r.txHash));
"

Track bridge transfer status

node -e "
const { Evalanche } = require('evalanche');
const agent = new Evalanche({ privateKey: process.env.AGENT_PRIVATE_KEY, network: 'ethereum' });
agent.checkBridgeStatus({ txHash: '0x...', fromChainId: 1, toChainId: 8453 })
  .then(s => console.log(s.status, s.substatus));
"

Token discovery

node -e "
const { Evalanche } = require('evalanche');
const agent = new Evalanche({ privateKey: process.env.AGENT_PRIVATE_KEY, network: 'base' });
agent.getToken(8453, '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913')
  .then(t => console.log(t.symbol, t.priceUSD));
"

Cross-chain transfer on Avalanche (requires mnemonic)

node -e "
const { Evalanche } = require('evalanche');
const agent = new Evalanche({ mnemonic: process.env.AGENT_MNEMONIC, multiVM: true });
agent.transfer({ from: 'C', to: 'P', amount: '25' })
  .then(r => console.log('export:', r.exportTxId, 'import:', r.importTxId));
"

Key Concepts

ERC-8004 Agent Identity (Avalanche only)

  • On-chain agent identity registry on Avalanche C-Chain
  • Agent ID → tokenURI, owner, reputation score (0-100), trust level
  • Trust levels: high (≥75), medium (≥40), low (<40)

Li.Fi Cross-Chain Liquidity (v0.8.0)

  • Bridging: Aggregated routes across 27+ bridges (Across, Stargate, Hop, etc.)
  • DEX Aggregation: Same-chain swaps via 31+ DEX aggregators (1inch, Paraswap, Jupiter, etc.)
  • DeFi Composer: One-tx cross-chain DeFi (bridge + deposit into Morpho, Aave V3, Euler, Pendle, Lido wstETH, EtherFi, etc.)
  • Status Tracking: Poll transfer status (PENDING → DONE/FAILED with substatus)
  • Token Discovery: List/lookup tokens with prices across all chains
  • Gas Pricing: Gas prices and suggestions per chain
  • Uses Li.Fi REST API (no SDK dependency needed)

Gas.zip

  • Cheap cross-chain gas funding
  • Send gas to any destination chain via deposit addresses

x402 Payment Protocol

  • HTTP 402 Payment Required → parse requirements → sign payment → retry
  • maxPayment prevents overspending

Multi-VM (Avalanche X-Chain, P-Chain)

  • Requires mnemonic and network: 'avalanche' or 'fuji'
  • C-Chain: EVM (ethers v6), X-Chain: AVM (UTXO), P-Chain: PVM (staking)

Contracts

ContractAddressChain
Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432AVAX C-Chain (43114)
Reputation Registry0x8004BAa17C55a88189AE136b182e5fdA19dE9b63AVAX C-Chain (43114)
sAVAX (Benqi)0x2b2C81e08f1Af8835a78Bb2A90AE924ACE0eA4bEAVAX C-Chain (43114)
yoUSD Vault0x0000000f2eb9f69274678c76222b35eec7588a65Base (8453)

DeFi — Liquid Staking & EIP-4626 Vaults (v1.2.0)

const { agent } = await Evalanche.boot({ network: 'avalanche' });
const { staking, vaults } = agent.defi();

// sAVAX unstake (instant if pool available, delayed otherwise)
const q = await staking.sAvaxUnstakeQuote('5');
// { avaxOut, isInstant, poolBalance, minOutput }
await staking.sAvaxUnstakeInstant('5');   // redeemInstant on Benqi
await staking.sAvaxUnstakeDelayed('5');   // requestRedeem (no pool needed)

// Stake AVAX → sAVAX
await staking.sAvaxStake('10', 50);  // 50bps slippage

// EIP-4626 vault deposit (any chain)
const YOUSD = '0x0000000f2eb9f69274678c76222b35eec7588a65';
const baseAgent = new Evalanche({ privateKey: '0x...', network: 'base' });
const { vaults: baseVaults } = baseAgent.defi();
const info = await baseVaults.vaultInfo(YOUSD);
// { assetDecimals: 6, shareDecimals: 18, ... }
await baseVaults.deposit(YOUSD, '1000');   // approve + deposit
await baseVaults.withdraw(YOUSD, '998');   // redeem shares

MCP tools (defi): savax_stake_quote, savax_stake, savax_unstake_quote, savax_unstake, vault_info, vault_deposit_quote, vault_deposit, vault_withdraw_quote, vault_withdraw

Known DeFi routing behavior:

  • yoUSD auto-routes to Base
  • sAVAX auto-routes to Avalanche
  • explicit wrong-chain overrides fail clearly before contract reads
  • interoperable address inputs like 0x...@base are accepted for address-based DeFi tools

Live Smoke Checklist

Use docs/live-smoke-checklist.md as the release-certification runbook for:

  • Polymarket tiny write + reconciliation
  • Hyperliquid tiny trade + order verification
  • LI.FI tiny swap/bridge execution + tx verification
  • sAVAX / EIP-4626 tiny round-trip + balance/share verification