Skip to content

Latest commit

 

History

History
125 lines (97 loc) · 5.09 KB

File metadata and controls

125 lines (97 loc) · 5.09 KB

BOT Chain Mainnet — CertaelCore Deployment

Public deployment record for the CertaelCore commitment registry on BOT Chain Mainnet.

Cloudflare / OpenNext build-time environment

NEXT_PUBLIC_* values are inlined by Next.js at build time; wrangler.jsonc vars are runtime-only and do NOT reach the client bundle. A Cloudflare production build must therefore set these in the build environment (CI or wrangler build invocation), not only in worker vars:

Variable Value
NEXT_PUBLIC_CERTAEL_DATA_SOURCE live (production) or fixture (demo build)
NEXT_PUBLIC_BOT_CHAIN_ID 677
NEXT_PUBLIC_BOT_CHAIN_NAME BOT Chain Mainnet
NEXT_PUBLIC_BOT_RPC_URLS https://rpc.botchain.ai
NEXT_PUBLIC_BOT_EXPLORER_URLS https://scan.botchain.ai
NEXT_PUBLIC_BOT_CURRENCY_NAME / SYMBOL BOT / BOT
NEXT_PUBLIC_BOT_CURRENCY_DECIMALS 18
NEXT_PUBLIC_CERTAEL_CORE_ADDRESS 0x24f59bd890Ad703c0402D062a42d9ab7dBc422f9

All values above are public parameters; none are secrets. With NEXT_PUBLIC_CERTAEL_DATA_SOURCE=live, a build that cannot construct the production adapter (D1 binding missing, BOT deployment unverified) renders the disconnected state — it never falls back to fixtures.

Production persistence (Cloudflare D1)

The live data path reads persisted records from Cloudflare D1 behind the repository ports (src/backend/persistence/d1). The binding is server-side only — it is never exposed to the browser.

wrangler.jsonc declares the binding with a placeholder database id. Remote setup requires one manual, account-level command, then the migration:

npx wrangler d1 create certael-db
# paste the returned database_id into wrangler.jsonc (d1_databases[0].database_id)
npx wrangler d1 migrations apply certael-db --remote

Local development and tests need none of this: npx wrangler d1 migrations apply certael-db --local uses the local D1 state, and the repository test suite runs against an isolated SQLite-backed fake of the binding with the checked-in migration as the schema source of truth.

No deployment has been performed from this repository.

Network

Field Value
Network BOT Chain Mainnet
Chain ID 677 (0x2a5)
RPC https://rpc.botchain.ai
Explorer https://scan.botchain.ai
Native currency BOT

Verify these values against the official BOT Chain documentation before relying on them (https://dev-docs.botchain.ai, ChainList entry for chain 677).

Contract

Field Value
Contract CertaelCore
Address 0x24f59bd890Ad703c0402D062a42d9ab7dBc422f9
Explorer https://scan.botchain.ai/address/0x24f59bd890Ad703c0402D062a42d9ab7dBc422f9
Deployment tx https://scan.botchain.ai/tx/0x8b1fb8fec5587464c7837f6a4091bdd6d59a2a4d4b0a21d929a54ea534c58419

Deployment record

Field Value
Deployment block 20582860
Deployment tx 0x8b1fb8fec5587464c7837f6a4091bdd6d59a2a4d4b0a21d929a54ea534c58419
Deployer 0x17D9AFf0F1aFfD6b290625BDE2250d6917712410
Initial admin 0x17D9AFf0F1aFfD6b290625BDE2250d6917712410 (constructor argument)
Status Finalized

Role verification

Verified onchain via eth_call against the deployed contract:

hasRole(DEFAULT_ADMIN_ROLE, 0x17D9AFf0F1aFfD6b290625BDE2250d6917712410) → true

DEFAULT_ADMIN_ROLE is 0x00. Re-run the check at any time:

# cast call --rpc-url https://rpc.botchain.ai <contract> "hasRole(bytes32,address)(bool)" \
#   0x0000000000000000000000000000000000000000000000000000000000000000 \
#   0x17D9AFf0F1aFfD6b290625BDE2250d6917712410

Build configuration

Field Value
Solidity 0.8.30
Optimizer enabled
Optimizer runs 200
Repository default EVM target intentionally unpinned (foundry.toml deliberately leaves
evm_version unset for contract-only development)
Deployed artifact EVM target paris (this deployment was explicitly compiled and
broadcast with --evm-version paris)

Source: src/contracts/CertaelCore.sol, interface src/contracts/interfaces/ICertaelCore.sol.

Reproducibility notes

  • The repository default does not pin an EVM revision; contract-only development intentionally leaves it to the compiler default. This BOT Mainnet deployment was compiled and broadcast with an explicit --evm-version paris flag, so the deployed artifact corresponds to Solidity 0.8.30, optimizer enabled at 200 runs, EVM target paris.
  • The explorer does not currently carry a verified source match for this address. The deployment bytecode can be reproduced locally with forge build using the configuration above (pin evm_version = "paris" in the deployment profile); compare the deployed initcode/runtime bytecode before trusting any derived analysis.
  • eth_getLogs is disabled on the official BOT Mainnet RPC endpoints (see BOT Chain developer documentation); use an indexed explorer or third-party endpoint for log pulls.
  • This record contains public deployment facts only. Keystores, keys, and signing material are never committed to this repository.