The Bitcoin API gives developers access to interact with the Bitcoin blockchain through a standard set of JSON-RPC methods. With this API, you can retrieve block and transaction data, inspect the mempool, broadcast transactions, and more.
Unlike EVM chains, Bitcoin uses a UTXO-based model and exposes its functionality via the JSON-RPC protocol. This quickstart will help you make your first request.
The Bitcoin Chain API allows applications to communicate with a Bitcoin node using the JSON-RPC protocol. Unlike Ethereum’s account-based model, Bitcoin relies on a UTXO (Unspent Transaction Output) model, which means that balances are tracked by outputs that are explicitly spent or unspent.
Alchemy’s Bitcoin API gives developers a consistent interface to query blockchain data, submit transactions, and monitor network activity. This includes:
- Retrieving raw or decoded transaction data
- Querying block headers and full blocks
- Monitoring mempool entries and states
- Submitting and testing raw transactions
If you’ve worked with Ethereum or other JSON-RPC-compatible chains, the structure will feel familiar, though the data returned may differ in structure and semantics.
Your first step involves selecting a package manager, which will be crucial for managing your project's dependencies. The choice between npm and yarn depends on your personal preference or project requirements.
| npm | yarn |
|---|---|
Begin with npm by following the npm documentation. | For yarn, refer to yarn's installation guide. |
To kickstart your project, open your terminal and execute the following commands:
mkdir bitcoin-api-quickstart
cd bitcoin-api-quickstart
npm init --yesThis creates a new directory named bitcoin-api-quickstart and initializes a Node.js project within it.
Install Axios, a popular HTTP client, to make API requests:
npm install axios
# Or with yarn
# yarn add axiosCreate an index.js file in your project directory and paste the following code:
const axios = require('axios');
const url = `https://bitcoin-mainnet.alchemy-blast.com/v2/${yourAPIKey}`;
const payload = {
jsonrpc: '2.0',
id: 1,
method: 'getblockcount',
params: []
};
axios.post(url, payload)
.then(response => {
console.log('Current block height:', response.data.result);
})
.catch(error => {
console.error('Error fetching block count:', error);
});
Remember to replace yourAPIKey with your actual Alchemy API key that you can get from your Alchemy dashboard.
To execute your script and make a request to the Bitcoin App, run:
node index.jsYou should see the current block number on Bitcoin App (in hexadecimal format) outputted to your console:
Current block height: 0x6d68eWell done! You've just made your first request to the Bitcoin App API. With this foundation, you can dive deeper into the array of JSON-RPC methods available on Bitcoin App and start building your dApps on it!