Деплойментт смарт-контрактів в BSC (BNB Chain)
BSC — це EVM-сумісна мережа, тому деплойментт технічно ідентичний Ethereum. Різниця в кількох деталях: інший chainId (56 для mainnet, 97 для testnet), власний gas токен BNB, і специфіка валідаторської мережі (21 валідатор, DPoS) яка впливає на finality.
Конфігурація Hardhat
// hardhat.config.ts
import { HardhatUserConfig } from 'hardhat/config';
import '@nomicfoundation/hardhat-toolbox';
const config: HardhatUserConfig = {
solidity: {
version: '0.8.24',
settings: {
optimizer: { enabled: true, runs: 200 },
viaIR: true,
},
},
networks: {
bscTestnet: {
url: 'https://data-seed-prebsc-1-s1.binance.org:8545/',
chainId: 97,
accounts: [process.env.PRIVATE_KEY!],
},
bsc: {
url: 'https://bsc-dataseed1.binance.org/',
chainId: 56,
accounts: [process.env.PRIVATE_KEY!],
gasPrice: 3000000000, // 3 gwei — стандарт для BSC
},
},
etherscan: {
apiKey: {
bsc: process.env.BSCSCAN_API_KEY!,
bscTestnet: process.env.BSCSCAN_API_KEY!,
},
},
};
Для BSC використовуємо bscscan.com замість etherscan.io, API ключ отримуємо на bscscan.com/myapikey.
Деплойментт та верифікація
# Деплойментт на testnet
npx hardhat run scripts/deploy.ts --network bscTestnet
# Верифікація (після деплойменту)
npx hardhat verify --network bscTestnet <CONTRACT_ADDRESS> <CONSTRUCTOR_ARG1> <CONSTRUCTOR_ARG2>
Верифікація через Hardhat Verify автоматично завантажує вихідний код та ABI на BscScan. Без верифікації — контракт видний як bytecode, користувачі не можуть читати функції безпосередньо в Explorer.
Альтернатива публічним RPC: Ankr, Nodereal, GetBlock — швидше та надійніше під навантаженням. Публічні BSC ноди мають rate limiting і іноді лагають.
Особливості BSC vs Ethereum
Gas price: BSC встановив мінімальний gasPrice 3 gwei (hardcoded в клієнті). EIP-1559 на BSC реалізований по-іншому, але більшість транзакцій йдуть по legacy gasPrice моделі.
Block time: ~3 секунди на BSC vs ~12 сек на Ethereum. Код з хардкодними таймаутами в блоках потребує перерахунку.
Contract size: ліміт 24KB аналогічний Ethereum. Proxy паттерни (OpenZeppelin Transparent або UUPS) обов'язкові для складних контрактів.
Finality: з 21 валідатором реорги рідкі, але можливі. Для цінних операцій чекаємо 15+ підтверджень замість стандартних 1-2.
Орієнтири по термінам
Деплойментт готового контракту з верифікацією — від 1-2 годин. Якщо потрібна адаптація Ethereum контракту під BSC (токени, bridge взаємодія) — 1-2 дні.







