Integra
Home/API Reference

API Reference

Complete API reference for both Cosmos SDK and EVM endpoints. Includes Cosmos RPC, REST API, WebSocket, gRPC, and Ethereum JSON-RPC methods with code examples, best practices, and Cosmos EVM implementation notes.

API Layers Overview

Integra exposes four API layers. Choose the right one for your use case.

Port 8545Live

EVM JSON-RPC

Familiar to Ethereum devs

Use for

Contract deployment, ethers.js, MetaMask, web3.js

Endpoint

mainnet.integralayer.com/evm

Methods / Paths
eth_*net_*web3_*
Port 1317Live

Cosmos REST

Query chain state, governance, validators, balances

Use for

Governance proposals, validator info, bank balances, chain params

Endpoint

mainnet.integralayer.com/api

Methods / Paths
/cosmos/staking/*/cosmos/gov/*/cosmos/bank/*
Port 26657Live

CometBFT RPC

Consensus-level queries, block/tx search, node status

Use for

Block exploration, transaction search, validator set, node health

Endpoint

mainnet.integralayer.com/rpc

Methods / Paths
/status/block/tx_search/validators
Port 9090Coming Soon

gRPC

High-performance programmatic access (protobuf)

Use for

Backend services, high-throughput indexing, programmatic queries

Endpoint

Coming Soon

Methods / Paths
protobuf services

Which API should I use?

Deploying contracts?
EVM JSON-RPC
Querying chain params / governance?
Cosmos REST
Checking node status / blocks?
CometBFT RPC
Building high-perf backend?
gRPC
Endpoint Connection
Integra Mainnet endpoint details for Cosmos SDK and EVM
Cosmos RPC
https://mainnet.integralayer.com/rpc
REST API
https://mainnet.integralayer.com/api
Cosmos WS
wss://mainnet.integralayer.com/rpc/websocket

For real-time CometBFT event subscriptions

gRPC
May not be publicly available

Efficient binary protocol for Cosmos SDK queries, typically on port 9090

EVM RPC
https://mainnet.integralayer.com/evm
EVM WS
wss://mainnet.integralayer.com/ws

For real-time EVM event subscriptions

Cosmos RPC Methods
CometBFT RPC endpoints for querying the Cosmos SDK layer

status

Available

Node status and sync info

Bash
curl https://mainnet.integralayer.com/rpc/status

block

Available

Get block at height

Bash
curl https://mainnet.integralayer.com/rpc/block?height=1

tx

Available

Get transaction by hash

Bash
curl "https://mainnet.integralayer.com/rpc/tx?hash=0x..."

broadcast_tx_sync

Available

Broadcast transaction synchronously and wait for CheckTx result

Bash
curl "https://mainnet.integralayer.com/rpc/broadcast_tx_sync?tx=0x..."

validators

Available

Get validator set at a given height

Bash
curl "https://mainnet.integralayer.com/rpc/validators?height=1&per_page=100"

abci_query

Available

ABCI query for direct application state access

Bash
curl "https://mainnet.integralayer.com/rpc/abci_query?path="/store/bank/key"&data=0x..."
Code Examples
Ready-to-use code snippets for interacting with the Cosmos SDK API

Connecting and Querying with CosmJS

TypeScript
import { StargateClient } from "@cosmjs/stargate";

// Connect to the Cosmos RPC endpoint
const client = await StargateClient.connect("https://mainnet.integralayer.com/rpc");

// Get chain ID
const chainId = await client.getChainId();
console.log("Chain ID:", chainId); // integra-1

// Get latest block height
const height = await client.getHeight();
console.log("Current block height:", height);

// Query all balances for an address
const address = "integra1...";
const balances = await client.getAllBalances(address);
console.log("Balances:", balances);
// => [{ denom: "airl", amount: "1000000000000000000" }]

// Get a specific block
const block = await client.getBlock(height);
console.log("Block hash:", block.id);
console.log("Block time:", block.header.time);

// Query a transaction by hash
const tx = await client.getTx("TXHASH...");
console.log("Transaction:", tx);
Best Practices
Important considerations when working with Integra APIs

Rate Limiting

Handle 429 errors gracefully with exponential backoff. Public endpoints may enforce rate limits to protect node resources.

eth_getLogs Pagination

Block range limited to 5,000-10,000 blocks per query. Split larger ranges into smaller chunks to avoid timeouts.

Filter Expiration

Filters are held in-memory for approximately 5 minutes and are lost on node restart. Re-create filters if they expire.

Gas Estimation

Integra uses binary search for gas estimation, which differs from standard EVM estimation. Always add a buffer to estimated gas values.

Instant Finality

No reorgs on Integra. One confirmation is final with approximately 5-second block times. No need to wait for multiple confirmations.

Archive Nodes

Transaction logs and blooms may not be persisted after chain upgrades. Historical data queries may require an archive node.

Revert Reasons

Nodes do not store failure reasons for reverted transactions. Historical replay to determine revert reasons requires an archive node.