/Docs/API Reference/REST API

REST API (Blockscout)

Blockscout v9.0.2GraphQL SupportEtherscan Compatible

RamaScan provides a comprehensive REST API powered by Blockscout. It offers Etherscan-compatible endpoints for easy migration, plus additional Blockscout-specific APIs for advanced querying.

Base URLs

EnvironmentBase URLExplorer
Mainnethttps://www.ramascan.com/apihttps://www.ramascan.com
Testnethttps://testbackendapi.ramascan.comhttps://pingaksha.ramascan.com

API Documentation


Authentication

Most endpoints are public. For higher rate limits, include an API key:

API Key Headerbash
curl -H "X-API-KEY: your_api_key" "https://www.ramascan.com/api?module=account&action=balance&address=0x..."
â„šī¸Rate Limits
Without API key: 5 requests/second, 1000/day
With API key: 20 requests/second, 100000/day
Get an API key at ramascan.com/account/api-key

Account Endpoints

Get RAMA Balance

Requestbash
GET https://www.ramascan.com/api?module=account&action=balance&address=0x...&tag=latest
Responsejson
{
  "status": "1",
  "message": "OK",
  "result": "1000000000000000000"  // Balance in wei
}

Get Multiple Balances

Requestbash
GET https://www.ramascan.com/api?module=account&action=balancemulti&address=0x...,0x...,0x...&tag=latest

Get Transaction List

Requestbash
GET https://www.ramascan.com/api?module=account&action=txlist&address=0x...&startblock=0&endblock=99999999&sort=desc&page=1&offset=10
Responsejson
{
  "status": "1",
  "message": "OK",
  "result": [
    {
      "blockNumber": "1234567",
      "timeStamp": "1706300000",
      "hash": "0x...",
      "from": "0x...",
      "to": "0x...",
      "value": "1000000000000000000",
      "gas": "21000",
      "gasPrice": "1000000000",
      "gasUsed": "21000",
      "isError": "0",
      "txreceipt_status": "1"
    }
  ]
}

Get Internal Transactions

Requestbash
GET https://www.ramascan.com/api?module=account&action=txlistinternal&address=0x...

Get Token Transfers (ERC20)

Requestbash
GET https://www.ramascan.com/api?module=account&action=tokentx&address=0x...&contractaddress=0x...

Get NFT Transfers (ERC721)

Requestbash
GET https://www.ramascan.com/api?module=account&action=tokennfttx&address=0x...

Contract Endpoints

Get Contract ABI

Requestbash
GET https://www.ramascan.com/api?module=contract&action=getabi&address=0x...

Get Contract Source Code

Requestbash
GET https://www.ramascan.com/api?module=contract&action=getsourcecode&address=0x...

Verify Contract (Standard JSON Input)

Requestbash
POST https://www.ramascan.com/api?module=contract&action=verifysourcecode
Content-Type: application/x-www-form-urlencoded

contractaddress=0x...
sourceCode={"language":"Solidity","sources":...}
codeformat=solidity-standard-json-input
contractname=contracts/MyContract.sol:MyContract
compilerversion=v0.8.20+commit.a1b79de6
constructorArguements=0x...

Contract Verification (Hardhat)

The recommended way to verify contracts is using Hardhat with the hardhat-verify plugin.

Hardhat Configuration

hardhat.config.jsjavascript
require('dotenv').config();
require('@nomicfoundation/hardhat-toolbox');
require('@nomicfoundation/hardhat-verify');

module.exports = {
  solidity: {
    version: '0.8.20',
    settings: {
      optimizer: { enabled: true, runs: 200 }
    }
  },
  networks: {
    ramestta: {
      url: 'https://blockchain.ramestta.com',
      chainId: 1370,
      accounts: process.env.PRIVATE_KEY ? [process.env.PRIVATE_KEY] : []
    },
    ramesttaTestnet: {
      url: 'https://testnet.ramestta.com',
      chainId: 1371,
      accounts: process.env.PRIVATE_KEY ? [process.env.PRIVATE_KEY] : []
    }
  },
  etherscan: {
    apiKey: {
      ramestta: 'abc', // Any string works for Blockscout
      ramesttaTestnet: 'abc'
    },
    customChains: [
      {
        network: 'ramestta',
        chainId: 1370,
        urls: {
          apiURL: 'https://www.ramascan.com/api',
          browserURL: 'https://www.ramascan.com'
        }
      },
      {
        network: 'ramesttaTestnet',
        chainId: 1371,
        urls: {
          apiURL: 'https://testbackendapi.ramascan.com',
          browserURL: 'https://pingaksha.ramascan.com'
        }
      }
    ]
  }
};

Verify Command

Terminalbash
# Verify a contract
npx hardhat verify --network ramestta CONTRACT_ADDRESS "Constructor Arg 1" "Arg 2"

# Example
npx hardhat verify --network ramestta 0x1234567890abcdef... "MyToken" "MTK" "1000000000000000000000000"
â„šī¸Blockscout API Key
Blockscout doesn't require a real API key. You can use any string (like "abc") as the API key in the config.

Transaction Endpoints

Get Transaction Status

Requestbash
GET https://www.ramascan.com/api?module=transaction&action=gettxreceiptstatus&txhash=0x...
Responsejson
{
  "status": "1",
  "message": "OK",
  "result": {
    "status": "1"  // 1 = success, 0 = failed
  }
}

Get Transaction Info

Requestbash
GET https://www.ramascan.com/api?module=transaction&action=gettxinfo&txhash=0x...

Block Endpoints

Get Block Reward

Requestbash
GET https://www.ramascan.com/api?module=block&action=getblockreward&blockno=1234567

Get Block Countdown

Requestbash
GET https://www.ramascan.com/api?module=block&action=getblockcountdown&blockno=9999999

Token Endpoints

Get Token Info

Requestbash
GET https://www.ramascan.com/api?module=token&action=getToken&contractaddress=0x...

Get Token Holders

Requestbash
GET https://www.ramascan.com/api?module=token&action=getTokenHolders&contractaddress=0x...&page=1&offset=100

Stats Endpoints

Get Total Supply

Requestbash
GET https://www.ramascan.com/api?module=stats&action=coinsupply

Get RAMA Price

Requestbash
GET https://www.ramascan.com/api?module=stats&action=coinprice

Blockscout v2 API

Blockscout also provides a modern REST API with more endpoints:

Get Address Info

Requestbash
GET https://www.ramascan.com/api/v2/addresses/0x...

Get Address Transactions

Requestbash
GET https://www.ramascan.com/api/v2/addresses/0x.../transactions

Get Address Token Balances

Requestbash
GET https://www.ramascan.com/api/v2/addresses/0x.../token-balances

Get Block Info

Requestbash
GET https://www.ramascan.com/api/v2/blocks/1234567

Get Transaction Info

Requestbash
GET https://www.ramascan.com/api/v2/transactions/0x...

Search

Requestbash
GET https://www.ramascan.com/api/v2/search?q=0x...

GraphQL API

For complex queries, use the GraphQL endpoint:

GraphQL Querygraphql
# Endpoint: https://www.ramascan.com/graphiql

query {
  address(hash: "0x...") {
    hash
    fetchedCoinBalance
    fetchedCoinBalanceBlockNumber
    contractCode
    smartContract {
      name
      compilerVersion
      optimization
    }
  }
  
  transaction(hash: "0x...") {
    hash
    blockNumber
    fromAddressHash
    toAddressHash
    value
    gas
    gasPrice
    gasUsed
    status
  }
}

JavaScript Examples

Using Fetch APItypescript
const BASE_URL = 'https://www.ramascan.com/api';

// Get balance
async function getBalance(address: string): Promise<string> {
  const response = await fetch(
    `${BASE_URL}?module=account&action=balance&address=${address}&tag=latest`
  );
  const data = await response.json();
  
  if (data.status !== '1') {
    throw new Error(data.message);
  }
  
  return data.result; // Balance in wei
}

// Get transactions
async function getTransactions(address: string, page = 1): Promise<any[]> {
  const response = await fetch(
    `${BASE_URL}?module=account&action=txlist&address=${address}&sort=desc&page=${page}&offset=25`
  );
  const data = await response.json();
  
  return data.result || [];
}

// Get contract ABI
async function getContractABI(address: string): Promise<any> {
  const response = await fetch(
    `${BASE_URL}?module=contract&action=getabi&address=${address}`
  );
  const data = await response.json();
  
  if (data.status !== '1') {
    throw new Error('Contract not verified or ABI not available');
  }
  
  return JSON.parse(data.result);
}

// Usage
const balance = await getBalance('0x...');
const txs = await getTransactions('0x...');
const abi = await getContractABI('0x...');

Endpoint Summary

ModuleActionDescription
accountbalanceGet single address balance
accountbalancemultiGet multiple address balances
accounttxlistGet transaction list
accounttxlistinternalGet internal transactions
accounttokentxGet ERC20 token transfers
accounttokennfttxGet ERC721 NFT transfers
accounttokenbalanceGet token balance for address
contractgetabiGet contract ABI
contractgetsourcecodeGet verified source code
contractverifysourcecodeVerify contract
transactiongettxreceiptstatusGet tx receipt status
transactiongettxinfoGet transaction details
blockgetblockrewardGet block reward info
blockgetblockcountdownGet countdown to block
tokengetTokenGet token information
tokengetTokenHoldersGet token holders
statscoinsupplyGet total RAMA supply
statscoinpriceGet RAMA price
✅More Resources

Found an issue with this page? Report on GitHub