Деплой смарт-контрактов в Avalanche

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Деплой смарт-контрактов в Avalanche
Простая
от 4 часов до 2 рабочих дней
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1221
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1163
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    855
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1058
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    828

Деплой смарт-контрактов в Avalanche

Avalanche — это не одна цепь, а три: C-Chain (EVM совместимая, где деплоятся смарт-контракты), X-Chain (UTXO для нативного AVAX), P-Chain (управление validator нодами). Для деплоя Solidity контрактов работаем исключительно с C-Chain. Tooling идентичен Ethereum — те же Hardhat, Foundry, те же ABI и bytecode. Отличие в RPC endpoint, chainId и нюансах gas модели.

Chain параметры

Mainnet C-Chain:

  • RPC: https://api.avax.network/ext/bc/C/rpc
  • Chain ID: 43114
  • Explorer: snowtrace.io (форк Etherscan)
  • Native token: AVAX
  • Block time: ~2 секунды

Fuji Testnet:

  • RPC: https://api.avax-test.network/ext/bc/C/rpc
  • Chain ID: 43113
  • Explorer: testnet.snowtrace.io
  • Faucet: faucet.avax.network (1 AVAX в день)

Avalanche C-Chain использует EIP-1559 gas модель. baseFee меняется в зависимости от congestion. Минимальный baseFee на практике — 25 nAVAX. Gas значительно дешевле Ethereum mainnet: деплой типичного ERC-20 контракта обходится в $0.05-0.30 при нормальных условиях.

Конфигурация Foundry

В foundry.toml:

[profile.default]
src = "src"
out = "out"
libs = ["lib"]
solc = "0.8.20"

[rpc_endpoints]
avalanche = "https://api.avax.network/ext/bc/C/rpc"
fuji = "https://api.avax-test.network/ext/bc/C/rpc"

[etherscan]
avalanche = { key = "${SNOWTRACE_API_KEY}", url = "https://api.snowtrace.io/api" }
fuji = { key = "${SNOWTRACE_API_KEY}", url = "https://api-testnet.snowtrace.io/api" }

Деплой скрипт:

# Деплой на Fuji testnet
forge script script/Deploy.s.sol:DeployScript \
  --rpc-url fuji \
  --broadcast \
  --verify \
  -vvvv

# Деплой на mainnet
forge script script/Deploy.s.sol:DeployScript \
  --rpc-url avalanche \
  --broadcast \
  --verify \
  --ledger \  # Hardware wallet для mainnet
  -vvvv

--verify верифицирует контракт на Snowtrace автоматически после деплоя. Snowtrace использует тот же Sourcify/Etherscan API — работает из коробки.

Конфигурация Hardhat

// hardhat.config.ts
const config: HardhatUserConfig = {
  solidity: '0.8.20',
  networks: {
    fuji: {
      url: 'https://api.avax-test.network/ext/bc/C/rpc',
      chainId: 43113,
      accounts: [process.env.PRIVATE_KEY!],
      gasPrice: 'auto',
    },
    avalanche: {
      url: 'https://api.avax.network/ext/bc/C/rpc',
      chainId: 43114,
      accounts: [process.env.PRIVATE_KEY!],
    },
  },
  etherscan: {
    apiKey: {
      avalanche: process.env.SNOWTRACE_API_KEY!,
      fuji: process.env.SNOWTRACE_API_KEY!,
    },
    customChains: [
      {
        network: 'avalanche',
        chainId: 43114,
        urls: {
          apiURL: 'https://api.snowtrace.io/api',
          browserURL: 'https://snowtrace.io',
        },
      },
      {
        network: 'fuji',
        chainId: 43113,
        urls: {
          apiURL: 'https://api-testnet.snowtrace.io/api',
          browserURL: 'https://testnet.snowtrace.io',
        },
      },
    ],
  },
};

Подводные камни при деплое

AVAX decimals. AVAX имеет 18 decimals, как ETH. Стандартные расчёты газа работают без изменений. Но в коде не должно быть захардкоженных gas price значений для Ethereum — они будут некорректны на Avalanche.

Блок газ лимит. C-Chain gas limit: 15,000,000 gas per block — идентично Ethereum mainnet. Контракты с размером близким к 24KB лимиту Ethereum компилируются и деплоятся аналогично.

RPC rate limits. Публичный RPC api.avax.network имеет rate limits. Для production фронтенда и бэкенда использовать платные ноды: Infura (поддерживает Avalanche), Alchemy, QuickNode, или собственную ноду.

Chainlink на Avalanche. Chainlink Price Feeds, VRF v2 и Automation — все доступны на C-Chain mainnet. Chainlink VRF v2 на Fuji testnet тоже доступен. Адреса контрактов Chainlink отличаются от Ethereum — всегда брать с docs.chain.link/avalanche.

Avalanche Subnets

Если стандартная C-Chain не подходит по причинам privacy, кастомного gas токена или специфических правил валидации — Avalanche позволяет деплоить собственные Subnets. Subnet — это независимая цепь с собственными валидаторами, полностью EVM-совместимая.

Subnet деплой — отдельный проект (настройка genesis, валидаторов, bridge к C-Chain). Для запуска production Subnet минимально нужно 5 валидаторов, каждый должен также валидировать C-Chain (требование Avalanche).

Для большинства проектов C-Chain mainnet достаточен. Subnet — для enterprise или gaming приложений с очень высоким TPS требованием или кастомным fee токеном.

Ориентиры по срокам

Деплой существующего Ethereum контракта на Avalanche C-Chain с верификацией на Snowtrace — от 4 часов (настройка tooling + тест на Fuji + mainnet деплой). Если контракт использует Chainlink или другие внешние зависимости — дополнительный день на верификацию корректности адресов в Avalanche ecosystem.