Деплойментт смарт-контрактів в Base
Base — це L2 від Coinbase на стеку OP Stack. Повна EVM-сумісність: той же Solidity, той же ABI, ті ж інструменти. Деплойментт контракту з Ethereum на Base — це зміна --network флага та RPC URL. Але є нюанси з верифікацією, gas estimation та bridge для тестування.
Конфігурація Hardhat
// hardhat.config.ts
import { HardhatUserConfig } from 'hardhat/config'
import '@nomicfoundation/hardhat-toolbox'
import '@nomicfoundation/hardhat-verify'
const config: HardhatUserConfig = {
solidity: {
version: '0.8.24',
settings: { optimizer: { enabled: true, runs: 200 } }
},
networks: {
base: {
url: 'https://mainnet.base.org',
accounts: [process.env.DEPLOYER_PRIVATE_KEY!],
chainId: 8453,
},
'base-sepolia': {
url: 'https://sepolia.base.org',
accounts: [process.env.DEPLOYER_PRIVATE_KEY!],
chainId: 84532,
},
},
etherscan: {
apiKey: {
base: process.env.BASESCAN_API_KEY!,
'base-sepolia': process.env.BASESCAN_API_KEY!,
},
customChains: [
{
network: 'base',
chainId: 8453,
urls: {
apiURL: 'https://api.basescan.org/api',
browserURL: 'https://basescan.org',
},
},
{
network: 'base-sepolia',
chainId: 84532,
urls: {
apiURL: 'https://api-sepolia.basescan.org/api',
browserURL: 'https://sepolia.basescan.org',
},
},
],
},
}
export default config
Деплойментт та верифікація
# Деплойментт на Base Sepolia (testnet)
npx hardhat run scripts/deploy.ts --network base-sepolia
# Верифікація вихідного коду
npx hardhat verify --network base-sepolia <CONTRACT_ADDRESS> <constructor_arg1> <constructor_arg2>
Для контрактів з constructor arguments у форматі ABI encoded — файл з arguments:
npx hardhat verify --network base --constructor-args scripts/args.ts <CONTRACT_ADDRESS>
Foundry варіант
forge create --rpc-url https://mainnet.base.org \
--private-key $DEPLOYER_PRIVATE_KEY \
--etherscan-api-key $BASESCAN_API_KEY \
--verify \
src/MyContract.sol:MyContract \
--constructor-args <arg1> <arg2>
--verify верифікує одразу після деплойменту. Foundry швидше Hardhat для простих деплойментів.
Gas на Base
Base газ оплачується в ETH. Gas price зазвичай 0.001-0.01 gwei — на порядки дешевше за mainnet. Типічні вартості:
| Операція | Gas | Приблизна вартість (при ETH $3000) |
|---|---|---|
| Деплойментт простого контракту | ~500k gas | ~$0.01-0.05 |
| ERC-20 transfer | 21k-65k gas | < $0.001 |
| Uniswap V3 swap | ~180k gas | ~$0.003 |
Для отримання тестового ETH на Base Sepolia — Coinbase faucet (coinbase.com/faucets) або бридж з Ethereum Sepolia через Base bridge.
Детермінований деплойментт з CREATE2
Якщо потрібна однакова адреса контракту на Base та інших мережах — CREATE2 через deterministic deployer:
// Використовуємо стандартний Nick's factory (0x4e59b44847b379578588920cA78FbF26c0B4956C)
bytes32 salt = keccak256("my-project-v1");
cast create2 --starts-with 0x1234 --init-code-hash <hash>
# Знайде сіль для vanity адреси, що починається з 0x1234
Адреса контракту на Base, Optimism, Arbitrum та Ethereum буде ідентична при однаковому bytecode та salt.







