--- name: avax-ship description: Plan and ship an Avalanche application from chain selection to verified contract and frontend behavior. --- # Ship an Avalanche app Source review: 2026-09-06. Recheck network-dependent facts before use. 1. Name the target network and explain whether the application needs shared C-Chain liquidity or sovereign L1 rules. Read [Networks](../networks/SKILL.md); choose [L1s](../l1s/SKILL.md) only when independent execution, membership or fee policy is required. Finish with a chain decision and explicit trust boundaries. 2. Inventory contracts, wallet actions and external data. For each state change, identify its caller and payer; for each integration read [Addresses](../addresses/SKILL.md). Keep ordinary application data offchain where no consensus is needed. Finish with a short architecture and a source-backed dependency list. 3. Select the compiler target and tools from [Tools](../tools/SKILL.md). Implement the narrow end-to-end user flow, then use [Testing](../testing/SKILL.md) for reproducible C-Chain integration tests. Record the fork block and target upgrade assumptions. 4. For value-moving flows apply [Security](../security/SKILL.md), [Wallets](../wallets/SKILL.md) and [Frontend](../frontend/SKILL.md). Demonstrate rejection, revert, stale quote and duplicate-click behavior before claiming the flow works. 5. Stage deployment artifacts with network, ABI, compiler settings, constructor arguments, administrative roles and verification instructions. Deploy only within the user's authorization. After an authorized deployment, reconcile receipt status, deployed code and actual application state; deliver the matching frontend and rollback/recovery notes. **Evidence to return:** architecture decision, source dates, reproducible test results, and a clear distinction between local-ready, deployed and operational. ## Primary sources - [Avalanche Primary Network](https://build.avax.network/docs/primary-network) - [Foundry fork testing](https://www.getfoundry.sh/guides/fork-testing) ## Execute a complete local slice Commands resolve from the complete executable bundle root. After [Tools](../tools/SKILL.md) setup, run `node examples/core/verify.mjs`; use `node examples/core/demo.mjs` for the interactive loopback app. It connects contracts, a wallet adapter, browser and canonical event indexer. The educational DemoToken/DepositVault implement exact-transfer custody, not yield or ERC4626. Verify own-balance withdrawal authority, receiver/amount checks, token-return handling, atomic transfer failure and conservation. Inspect the token's minting authority and stable-balance assumption. Then exercise real approval/deposit/withdrawal, mined revert, nonce cancellation/replacement and local reorg recovery; reconcile indexed and contract balances. The demo's chain ID43113 is local Anvil, not public Fuji. Controlled wallet-adapter tests do not prove real extension/mobile-wallet compatibility. Local protocol forks import deployed state, not all Avalanche VM/consensus behavior. Use [Architecture](../architecture/SKILL.md), [Orchestration](../orchestration/SKILL.md), [Frontend Playbook](../frontend-playbook/SKILL.md), [QA](../qa/SKILL.md) and [Audit](../audit/SKILL.md) for the remaining handoffs. Release a concrete candidate with compiler/EVM settings, ABI/constructor/admin configuration, source/build hashes and recovery instructions. Report local-ready, publicly deployed and operational as separate states.