CometBFT RPC
https://comet-rpc.bkc.network — the consensus layer's RPC (CometBFT 0.38, BKC fork). Every transaction, including wrapped EVM calls, is broadcast here.
Useful endpoints
| Endpoint | Returns |
|---|---|
/status | node info, latest height and time, catching_up, the node's validator info |
/net_info | peers |
/health | empty result when the node is up |
/block?height=N | full block |
/blockchain?minHeight=A&maxHeight=B | block headers (up to 20) |
/commit?height=N | signed header with the validators' ML-DSA-65 signatures |
/validators?height=N | validator set (ML-DSA-65 consensus keys, voting power) |
/genesis | the genesis document |
/consensus_params | block max_bytes, max_gas, … |
/num_unconfirmed_txs | mempool depth |
/tx?hash=0x… | a Cosmos transaction by hash, with its events |
/tx_search?query="…" | transactions matching events (needs the kv indexer) |
/broadcast_tx_sync?tx=0x… | submit a signed transaction (checked by CheckTx) |
/abci_query | raw application query |
bash
curl -s https://comet-rpc.bkc.network/status | jq '.result.sync_info'
curl -s 'https://comet-rpc.bkc.network/tx_search?query="message.sender=%27bkc1…%27"&order_by="desc"&per_page=5'Finding the EVM hash of a wrapped call
The Cosmos transaction of a MsgExecuteEvmCall carries an ethereum_tx event:
bash
curl -s "https://comet-rpc.bkc.network/tx?hash=0x<cosmos-hash>" \
| jq '.result.tx_result.events[] | select(.type=="ethereum_tx") | .attributes'
# ethereumTxHash, txGasUsed, recipient, …Sizes to expect
ML-DSA-65 makes consensus data large: each validator's commit signature is 3,309 bytes, and a signed transfer is ~5.5 KB. Size your clients' response limits accordingly (/block at the 8 MiB block limit can be many megabytes).
Broadcasting
Prefer the SDK (SigningStargateClient) or the Hardhat plugin, which build, sign and broadcast for you. broadcast_tx_sync returns after CheckTx: code: 0 means accepted into the mempool, not yet in a block — poll /tx?hash= or wait for the EVM receipt.
