--- name: avax-wallets description: Connect Avalanche wallets or prepare agent transactions with explicit chain, spender and receipt handling. --- # Wallets & signing Source review: 2026-09-06. Recheck network-dependent facts before use. 1. Use the project's wallet connector for C-Chain EVM accounts, and verify the connected account and chain against [Networks](../networks/SKILL.md). For P/X operations use chain-specific tooling. Finish with the actual signer and target identified. 2. Keep signing material in the user's wallet or a supported protected signer. Use masked credential entry or an encrypted keystore for automation; keep private keys, seed phrases and credential-bearing RPCs out of prompts, browser bundles and terminal arguments. 3. Resolve the exact token, spender, recipient and ABI with [Addresses](../addresses/SKILL.md). Read current allowance before preparing an approval. Propose the needed amount and expiry where supported; handle reset-required tokens explicitly. 4. Simulate a value-moving request with the real account and value. Present destination, network, asset, amount, allowance impact and fee budget when authorization is needed. Existing authorization remains valid within its specified limits. 5. Submit only the authorized request. Track rejection, pending, replacement, revert and success separately. After a successful receipt reconcile balances or application state; do not blindly resend a timed-out request with a new nonce. **Compatibility check:** smart-account infrastructure and EIP support are chain- and deployment-specific. Verify the deployed implementation and read [Upgrades](../upgrades/SKILL.md) before promising Ethereum account features on Avalanche. ## Primary sources - [Avalanche SDK](https://build.avax.network/docs/tooling/avalanche-sdk/client/getting-started) - [Viem contract simulation](https://viem.sh/docs/contract/simulateContract) ## Exercise authority and asynchronous wallet boundaries Run `node --test examples/core/wallet-machine.test.mjs` and `node examples/core/verify.mjs` from the complete executable bundle root. Observe pending activity remaining bound to the original account, actual nonce replacement/cancellation and orphaned-receipt reconciliation. The adapter is controlled loopback infrastructure on43113, not public Fuji or proof of all wallet extensions. For EIP712/ERC3009 and x402, read [Standards](../standards/SKILL.md) and run `node --test examples/standards/standards.test.mjs`. Validate live token domain, authorizer, fresh random nonce, permitted payee, budget and validity window. ReceiveWithAuthorization has a caller/payee restriction. A transfer authorization is not a harmless login and does not grant recurring unlimited payments. Preserve signer custody in the wallet/protected signer; examples need no production keys. Treat approval, signature, receipt and resulting state as separate evidence. Reconcile the original nonce and replacements before retries. Ethereum Safe/4337/7702-shaped tutorials do not establish Avalanche deployment/support; ACP209 delegation remains disabled until activation is proven.