// 개발자

Bitroot에 스마트 컨트랙트 배포하기: Hardhat, Foundry, Remix

Bitroot는 EVM 호환이므로 이더리움에서 이미 쓰던 도구를 어댑터 계층 없이 그대로 배포에 사용할 수 있습니다. 바꿔야 할 것은 네트워크 설정뿐입니다. 이 페이지에서는 Hardhat, Foundry, Remix 순서로 설명합니다.

1. 시작하기 전에

2. Hardhat

hardhat.config.js:

module.exports = {
  solidity: "0.8.24",
  networks: {
    bitrootTestnet: {
      url: process.env.BITROOT_RPC_URL, // current RPC URL from BRTSCAN
      chainId: Number(process.env.BITROOT_CHAIN_ID), // current Chain ID from BRTSCAN
      accounts: [process.env.DEPLOYER_PRIVATE_KEY],
    },
  },
};

평소 사용하는 스크립트로 배포합니다.

npx hardhat run scripts/deploy.js --network bitrootTestnet

3. Foundry

foundry.toml:

[rpc_endpoints]
bitroot_testnet = "${BITROOT_RPC_URL}"

배포는 다른 EVM 체인에서 쓰는 것과 같은 명령입니다.

forge create src/MyContract.sol:MyContract \
  --rpc-url $BITROOT_RPC_URL \
  --private-key $DEPLOYER_PRIVATE_KEY

4. Remix

"Deploy & Run Transactions" 패널에서 "Injected Provider - MetaMask"를 선택합니다. MetaMask가 Bitroot에 연결되어 있기만 하면, 컨트랙트 컴파일, 배포, 호출이 이더리움에서와 똑같이 동작합니다.

5. 배포 검증하기

BRTSCAN(https://devnet.bitroot.co/overview)에서 컨트랙트 주소를 열고, 그곳에 안내된 절차에 따라 소스 코드를 검증하세요. 그러면 다른 사용자가 코드를 읽고 탐색기에서 읽기 전용 메서드를 호출할 수 있습니다.

6. 확인해 둘 만한 함정

  • 잘못된 체인. 네트워크 가이드에 나온 것처럼 런타임에 Chain ID를 비교하면, 설정 파일의 오타 때문에 배포가 다른 네트워크로 가는 일을 막을 수 있습니다.
  • 프리컴파일 가정. 표준 Solidity 컨트랙트는 그대로 컴파일되고 배포됩니다. 이더리움 고유의 프리컴파일 주소에 의존하는 컨트랙트는 확인이 필요합니다.
  • 배치 작업의 가스 한도. 프로덕션 실행 전에 배치 작업의 가스를 추정해, 트랜잭션당 한도가 낮아서 일부만 실패하는 일이 없도록 하세요.
  • 키 관리. 평문 .env는 테스트넷 디버깅에서는 허용됩니다. 프로덕션 배포에는 하드웨어 지갑이나 MPC 수탁을 사용해야 합니다.

7. 다음 단계

  • 컨트랙트에서 AI 모델 호출하기: 개발자 가이드의 AI 네이티브 EVM 절을 참고하세요.
  • 병렬 실행이 트랜잭션을 어떻게 처리하는지 이해하기: 병렬 실행 방식.