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

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Деплой смарт-контрактів у Avalanche
Простий
від 4 годин до 2 днів
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    901
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Деплойментт смарт-контрактів в 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. Стандартні розрахунки газу працюють без змін. Але в коді не має бути захардкодженого Ethereum gas price значення — вони будуть некоректні на 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, валідаторів, мосту до 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.