Skip to content

RPC Compatibility

ev-abci provides CometBFT-compatible RPC endpoints for client compatibility.

Overview

Existing Cosmos SDK clients expect CometBFT RPC endpoints. ev-abci implements these endpoints so tools like:

  • Cosmos SDK CLI
  • Keplr wallet
  • CosmJS
  • Block explorers

continue to work without modification.

Supported Endpoints

Query Methods

EndpointStatusNotes
/abci_queryFull support
/blockFull support
/block_by_hashFull support
/block_resultsFull support
/blockchainFull support
/commitFull support
/consensus_paramsFull support
/genesisFull support
/healthFull support
/statusFull support
/txFull support
/tx_searchFull support
/validatorsReturns sequencer

Transaction Methods

EndpointStatusNotes
/broadcast_tx_asyncFull support
/broadcast_tx_syncFull support
/broadcast_tx_commitWaits for inclusion
/check_txFull support

Subscription Methods

EndpointStatusNotes
/subscribeWebSocket events
/unsubscribeFull support
/unsubscribe_allFull support

Unsupported Endpoints

EndpointReason
/consensus_stateNo BFT consensus
/dump_consensus_stateNo BFT consensus
/net_infoDifferent P2P model
/num_unconfirmed_txsDifferent mempool
/unconfirmed_txsDifferent mempool

Behavioral Differences

Validators

/validators returns the single sequencer rather than a validator set:

json
{
  "validators": [
    {
      "address": "...",
      "voting_power": "1",
      "proposer_priority": "0"
    }
  ],
  "count": "1",
  "total": "1"
}

Commit

/commit returns a simplified commit structure since there's no BFT voting:

json
{
  "signed_header": {
    "header": { ... },
    "commit": {
      "height": "100",
      "signatures": [
        {
          "validator_address": "...",
          "signature": "..."
        }
      ]
    }
  }
}

Block Time

Block timestamps reflect actual production time, which may be faster than CometBFT's typical 6s blocks.

Port Configuration

Default ports match CometBFT:

PortPurpose
26657RPC
26656P2P

Configure via flags:

bash
--evnode.rpc.address tcp://0.0.0.0:26657
--evnode.p2p.listen /ip4/0.0.0.0/tcp/26656

Client Configuration

No client changes needed. Point clients at the same RPC URL:

javascript
// CosmJS
const client = await StargateClient.connect("http://localhost:26657");
bash
# CLI
appd config node tcp://localhost:26657

Released under the APACHE-2.0 License