Деплой смарт-контрактов в BSC (BNB Chain)
BSC — это EVM-compatible сеть, поэтому деплой технически идентичен Ethereum. Разница в нескольких деталях: другие chainId (56 для mainnet, 97 для testnet), собственный gas token 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 дня.







