Introduction
Welcome to the Bithomp API!
Bithomp API endpoints will give you access to information on XRPL addresses, NFTs, usernames, validators, services and more.
This API is built to complement the rippled API.
We have language bindings in Shell, JavaScript and PHP. You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.
Price and Limits
API plans:
Tier | Max requests / minute | Max request / 24h | NFT content plan | Price / month |
---|---|---|---|---|
Free (non-comercial use) | 10 | 2K | Free | 0 |
Basic | 100 | 30K | Free | 30 EUR |
Standard* | 400 | 120K | Basic | 100 EUR |
Premium* | 1000 | 300K | Basic | 250 EUR |
Enterprise 1* | 2000 | 600K | Basic | 500 EUR |
Enterprise 2* | 4000 | 1.2M | Basic | 1000 EUR |
Enterprise 3* | 8000 | 2.4M | Basic | 2000 EUR |
- On that plan the NFT endpoint returns
assets
with direct URLs to resized images and videos.
NFT content plans (Direct access to fast [resized and cached] images and videos):
- images (700px x 700px)
- videos (first 15 seconds)
- preview (image, otherwise a frame from a video, 360px x 360px)
- thumbnails (image, otherwise a frame from a video, 64px x 64px)
Tier | Max Images day / month | Max Videos day / month | Max Thumbnails day / month | Price / month |
---|---|---|---|---|
Free (non-comercial use) | 1K / 20K | 300 / 6K | 5K / 50K | 0 |
Basic | 5K / 100K | 1.5K / 30K | 25K / 250K | 60 EUR |
Standard | 10K / 200K | 3K / 60K | 50K / 500K | 100 EUR |
Premium | 20K / 400K | 6K / 120K | 100K / 1M | 200 EUR |
To get your payment details please reply to the email with your API key.
Changelog
20th of February 2024
A new endpoint was added:
19th of February 2024
Two new endpoints were added:
16th of February 2024
Two new query parameters: buyer
and seller
were added to the NFT Sales API end-point.
You can search for sales by a specific buyer and/or seller.
18th of August 2023
A new endpoint was added:
New query parameters: mintedByMarketplace
, includeDeleted
, two new values mintedNew
and mintedOld
for parameter order
and new period formats were added to the NFTs API end-point.
Now the search results can include already burned NFTs.
3rd of August 2023
An update for query parameter: period
NFT Volumes Extended
Now you can define start and end of range for the period.
23rd of July 2023
Two new query parameters: issuedAt
and deletedAt
were added to the NFTs API end-point.
You can search for NFTs in a collection (or through all NFTs) which were minted during a specific period and/or deleted during another specific period of time.
5th of July 2023
The new query parameter: assets
was added to the NFT API end-point.
Now you can get URLs for cached NFT image 700px x 700px, 15 second video, thumbnail 64px x 64px (resized image otherwise a frame from a video) and a preview 360px x 360px (resized image otherwise a frame from a video)
14th of May 2023
The new query parameter: marketplace
was added to the NFT Sales API end-point.
Now you are able to filter sales by a marketplace, or to get TOP or Latest Sales for any marketplace.
The new endpoint added: NFT Volumes Extended Here you can get all the volumes for Marketplaces, Issuers, Taxons, Currencies, Brokers (including all tokens [IOU]) with converted volumes to FIAT and/or XRP, BTC.
29th of April 2023
The new query parameter: convertCurrencies
was added to the NFT API end-point.
The endpoint now also returns the marketplace
in the history
of Sales.
The new query parameter: taxon
was added to the NFT Distribution
Now you can get the nft distrubition for collections identified by issuer and taxon.
18th of April 2023
New params were added to get all the NFT sales (inluding NFTs sold for IOU (tokens)) amounts converted to XRP or Fiat currencies and sorted by a choosen currency.
For example, all sales in (XRP and IOU (tokens)) can be converted to USD, and you can see the Top NFT sales in USD, sorted by USD value.
NFT Sales now also inlude marketplace
, the website where NFT was sold (if it is identified).
1st of March 2023
New params were added to get the list of NFTs for Sale for any XRPL currency, sorted by price or offer creation time and filtered by sale direction (On Sale on the specific marketplace (xrpl address can be specified), or on any known MarketPlaces, Publicly, Publicly and on the known MarketPlaces, anywhere including private offers):
Now you can also get the list of offered NFT transfers (sell offers with 0 price) to any XRPL address, private Sell and Buy offers, offers for brokers.
Direct URL examples
XRPL Explorer
- https://bithomp.com/explorer/{txid}
- https://bithomp.com/explorer/{address}
- https://bithomp.com/explorer/{username}
- https://bithomp.com/explorer/{NFT-XLS14 || HEXcurrency}
- https://bithomp.com/explorer/{payString}
NFT explorer
- https://bithomp.com/explorer/{nftID}
- https://bithomp.com/nft-offer/{nftOfferID}
- https://bithomp.com/nft-offers/{address || username}
- https://bithomp.com/nft-explorer?owner={address || username}&issuer={address || username}&taxon={taxon}
- https://bithomp.com/nfts/{address || username}
- https://bithomp.com/nft-volumes?currency={currencyCode}¤cyIssuer={address}&sale={"primary" || "secondary" || "all"}&period={"all" || "month" || "week" || "day"}&list={"issuers" || "currencies" || "brokers"}
- https://bithomp.com/nft-sales?list=top&period=month&sale=secondary¤cy={currencyCode}¤cyIssuer={address}&issuer={address || username}
- https://bithomp.com/nft-sales?list=last&period=month&sale=secondary¤cy={currencyCode}¤cyIssuer={address}&issuer={address || username}
Username registration
- https://bithomp.com/username?username={username}
- https://bithomp.com/username?address={address}
- https://bithomp.com/username?address={address}&username={username}
Authentication
To authorize, use this code:
# With shell, you can just pass the correct header with each request
curl "api_endpoint_here"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
// With javascript, you can just pass the correct header with each request
// Include jquery in order to use $.ajax or rewrite to vanila.js
function bithompRequest(url, callback) {
$.ajax({
url: url,
type: "GET",
contentType: "application/json",
headers: {
"x-bithomp-token": "abcd-abcd-0000-abcd-0123abcdabcd"
},
success: function(result) {
callback(result);
},
error: function(error) {
console.log(error);
callback({"error": "error occurred"});
}
});
}
bithompRequest("api_endpoint_here", callback);
//replace callback with your function to process a received json
function curl_bithomp($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER,
array('x-bithomp-token:abcd-abcd-0000-abcd-0123abcdabcd')
);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
print curl_bithomp("api_endpoint_here")
Make sure to replace
abcd-abcd-0000-abcd-0123abcdabcd
with your API key.
In order to use our APIs you need to request an API key via the partner portal.
Bithomp expects for the API key to be included in all API requests to the server in a header that looks like the following:
x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd
Get username
curl "https://bithomp.com/api/v2/address/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B?username=true"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/address/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B?username=true", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/address/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B?username=true");
print $data;
The above command returns JSON structured like this:
{
"address": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
"xAddress": "X7WZKEeNVS2p9Tire9DtNFkzWBZbFtJHWxDjN9fCrBGqVA4",
"username": "Bitstamp"
}
This endpoint retrieves a username for a requested XRPL address.
HTTP Request
GET https://bithomp.com/api/v2/address/<address>?username=true
URL Parameters
Parameter | Description |
---|---|
address | The XRPL address, can be r-address or a X-address |
Query Parameters
Parameter | Default | Description |
---|---|---|
username | false | If set to true, the result will also include a username (rippletrade or bithomp). |
NFT (XLS-20 / XLS-35)
NFT
curl "https://bithomp.com/api/v2/nft/000861A8BB208DE9CB0384F2D46901203CA958EEA4C0AF286862C7F90000005E?sellOffers=true&buyOffers=true&uri=true&history=true&assets=true"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/nft/000861A8BB208DE9CB0384F2D46901203CA958EEA4C0AF286862C7F90000005E?sellOffers=true&buyOffers=true&uri=true&history=true&assets=true", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/nft/000861A8BB208DE9CB0384F2D46901203CA958EEA4C0AF286862C7F90000005E?sellOffers=true&buyOffers=true&uri=true&history=true&assets=true");
print $data;
The above command returns JSON structured like this:
{
"flags": {
"burnable": false,
"onlyXRP": false,
"trustLine": false,
"transferable": true
},
"issuer": "rwzGnXc31zAeSQiKgGqFiJJcALhy8TUqb8",
"issuerDetails": {
"username": "3DAPES",
"service": "3DAPES"
},
"nftokenID": "000813886D8D6DAC402E0D27297E9485F4D7E1125D656678258B866100000018",
"nftokenTaxon": 10194,
"transferFee": 5000,
"sequence": 24,
"owner": "rpL8hpPgdep5MrWCFfWx2qupiAhtPrMcJu",
"ownerDetails": {
"username": null,
"service": null
},
"uri": "68747470733A2F2F626166796265696734676876366263666B6E746B793234616564667A6B757276366C746A6476736763623575736E77336A736965736D68706769652E697066732E7733732E6C696E6B2F6D657461646174612E6A736F6E",
"issuedAt": 1666885020,
"ownerChangedAt": 1666885052,
"deletedAt": null,
"assets": {
"image": "https://cdn.bithomp.com/image/image_hash.png",
"preview": "https://cdn.bithomp.com/preview/preview_hash.png",
"thumbnail": "https://cdn.bithomp.com/thumbnail/thumbail_hash.png",
"video": "https://cdn.bithomp.com/video/video_hash"
},
"history": [
{
"owner": "rXMART8usFd5kABXCayoP6ZfB35b4v43t",
"changedAt": 1666885020,
"ledgerIndex": 6860081,
"txHash": "453C088321BA9AFCB59B1B7B79790E5ECF53EF969B95845C494604E26C51E848",
"marketplace": "onxrp.com"
},
{
"owner": "rpL8hpPgdep5MrWCFfWx2qupiAhtPrMcJu",
"changedAt": 1666885052,
"ledgerIndex": 6860093,
"txHash": "103F0D35348C58D9E5301EED79906ED3CDBBD44EFFF65857BE8BFFD572F617A8",
"marketplace": "xrpcafe.com"
}
],
"sellOffers": [
{
"amount": "850000000",
"index": "B54B49719DC80B40D66E229FC02CC5DABF7D4496B395F87C369FA6235AA6B37E",
"owner": "rGJn1uZxDX4ksxRPYuj2smP7ZshdwjeSTG",
"destination": "rM3UEiJzg7nMorRhdED5savWDt1Gqb6TLw",
"expiration": 1582437632,
"createdAt": 1582437132
},
{
"amount": {
"currency": "534F4C4F00000000000000000000000000000000",
"issuer": "rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",
"value": "10000"
},
"offerIndex": "E992835C148C9EAA7A93EABDD397A84333F27F99DA386255378A3C16A8B0DEF3",
"owner": "r9spUPhPBfB6kQeF6vPhwmtFwRhBh2JUCG",
"expiration": null,
"destination": null,
"createdAt": 1670721431,
"createdLedgerIndex": 76344438,
"createdTxHash": "616CAAAC1C737C964C4A3B27DEAFE2F172D5A82FDD9342A1F5C677ACABC5AE7B"
}
],
"buyOffers": [
{
"amount": "935000000",
"offerIndex": "3D47DA5CE9E4D9DB7D8D1FE78E9E1ECA19D8DE21A29C78FD95A856ADF2472674",
"owner": "rN5wU5VpqfxZ5q9duP3EhP8rw8y9xR1TNL",
"destination": "rM3UEiJzg7nMorRhdED5savWDt1Gqb6TLw",
"expiration": 1582437632,
"createdAt": 1582437132,
"createdLedgerIndex": 76332437,
"createdTxHash": "616CAAAC1C737C964C4A3B27DEAFE2F172D5A82FDD9342A1F5C677ACABC5AE7B"
}
]
}
This endpoint retrieves information for a requested NFT (XLS-20 or XLS-35).
HTTP Request
GET https://bithomp.com/api/v2/nft/<nftID>
URL Parameters
Parameter | Description |
---|---|
nftID | An NFT ID (XLS-20 or XLS-35) |
Query Parameters
Parameter | Default | Description |
---|---|---|
uri | false | If set to true, the result will include uri and url . |
assets | false | (Only available on the Standart API plan or greater) If set to true, returns assets with direct urls for image 700px x 700px, video 15s, preview 360px x 360px (image, otherwise video frame) and thumbnail 64px x 64px. (See plans for NFT contents for more details or contact us) |
sellOffers | false | If set true, the result will include sellOffers . |
buyOffers | false | If set to true, the result will include buyOffers . |
history | false | If set to true, the result will include history . |
metadata | false | If set to true, the result will include metadata . |
offersValidate | false | (Only available on paid API plans) If set to true, each offer will include valid as true or false , if false then it also include validationErrors array. |
offersHistory | false | (Only available on paid API plans) If set to true, each offers will include historical offers which are already accepted or canceled. |
convertCurrencies | null | (Only available on paid API plans) the list of currencies to convert amount to, splitted by comma, for example xrp,usd (40 fiat currencies available), the for history response will have an array amountInConvertCurrencies |
NFT Offer
curl "https://bithomp.com/api/v2/nft-offer/3E8E975E0CFDF2EDE76E0925EB4393A1899061047DE1F46F0DEEA783F5F1A673"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/nft-offer/3E8E975E0CFDF2EDE76E0925EB4393A1899061047DE1F46F0DEEA783F5F1A673", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/nft-offer/3E8E975E0CFDF2EDE76E0925EB4393A1899061047DE1F46F0DEEA783F5F1A673");
print $data;
The above command returns JSON structured like this:
{
"nftokenID": "00081B581189F5687DBB7516339D6CCB5593D96622AD82DFE9E08966000018B7",
"offerIndex": "3E8E975E0CFDF2EDE76E0925EB4393A1899061047DE1F46F0DEEA783F5F1A673",
"createdAt": 1671813891,
"createdLedgerIndex": 76627086,
"createdTxHash": "C78692F7CE2B6D207E12BAF28BBE7BAD4D5553FEFCAC81A49FA0D7F2B6295AFD",
"account": "rDpLcKCi18ixgzJEseKbi2krRGTWZM69gX",
"owner": "rDpLcKCi18ixgzJEseKbi2krRGTWZM69gX",
"destination": "rpZqTPC8GvrSvEfFsUuHkmPCg29GdQuXhC",
"expiration": 1672009200,
"amount": "1800000000",
"flags": {
"sellToken": false
},
"canceledAt": 1672062241,
"canceledLedgerIndex": 76690834,
"canceledTxHash": "BE00F6A40D399D66E15C5698A9F583A47FA79D47DB9E7D5B158679C97E95C202",
"nftoken": {
"flags": {
"burnable": false,
"onlyXRP": false,
"trustLine": false,
"transferable": true
},
"issuer": "rpbjkoncKiv1LkPWShzZksqYPzKXmUhTW7",
"nftokenID": "00081B581189F5687DBB7516339D6CCB5593D96622AD82DFE9E08966000018B7",
"nftokenTaxon": 52,
"transferFee": 7000,
"sequence": 6327,
"owner": "rhrvq8Bfn1NwQQDDProJY4F822DNbcQGj2",
"ownerDetails": {
"username": "XPUNKS",
"service": "XPUNKS"
},
"uri": null,
"issuedAt": 1671616340,
"ownerChangedAt": 1672061721,
"deletedAt": null,
"url": "https://marketplace-api.onxrp.com/api/metadata/00081B581189F5687DBB7516339D6CCB5593D96622AD82DFE9E08966000018B7",
"metadata": {
"dna": "81165c5b185d49e57302b8bf936ba66ded1a195476f35fc74d2d8c8d638d0c1f",
"name": "XPUNKS #5658",
"description": "The XPUNK collection consists of 10,000 uniquely generated characters on a 24-by 24-pixel canvas. They are distinguished by their colourful traits and trademark X-mouth that represents their love for the XRPL.",
"image": "ipfs://QmUdz7aunEkMKWjTKT71QiJeKRX3MQSDC1chDUcyhwuYQ1",
"imageHash": "1591d36c09c3340569582379574b8e899b550daa0d7bfecfe648fba469aaa2ee",
"edition": 2687,
"date": 1667163549733,
"attributes": [
{
"trait_type": "Face",
"value": "Male 3"
},
{
"trait_type": "Eye Characteristics",
"value": "Fresh"
},
{
"trait_type": "Eyes",
"value": "Black Right"
},
{
"trait_type": "Neck Wearable",
"value": "No Attribute"
},
{
"trait_type": "Hair & Hats",
"value": "Bandana"
},
{
"trait_type": "Facial Hair",
"value": "Thick Beard Blonde"
},
{
"trait_type": "Eye Wearables",
"value": "Sunglasses in Hair Black"
},
{
"trait_type": "Mouth Attribute",
"value": "Pipe Old School"
},
{
"trait_type": "Piercings",
"value": "No Attribute"
}
],
"schema": "ipfs://QmNpi8rcXEkohca8iXu7zysKKSJYqCvBJn3xJwga8jXqWU",
"nftType": "art.v0",
"collection": {
"name": "XPUNKS",
"description": "The XPUNK collection consists of 10,000 uniquely generated characters on a 24-by-24-pixel canvas. They are distinguished by their colorful traits and trademark X-mouth that represents their love for the XRPL."
}
},
"issuerDetails": {
"username": "XPUNKS",
"service": "XPUNKS"
},
"ownerDetails": {
"username": null,
"service": null
}
},
"accountDetails": {
"username": null,
"service": null
},
"ownerDetails": {
"username": null,
"service": null
},
"destinationDetails": {
"username": null,
"service": null
},
"issuerDetails": {
"username": "XPUNKS",
"service": "XPUNKS"
}
}
This endpoint retrieves NFT Sales Volumes for specified parameters
HTTP Request
GET https://bithomp.com/api/v2/nft-offer/<nftOfferID>
URL Parameters
Parameter | Description |
---|---|
nftOfferID | An NFT Offer ID (XLS-20) |
NFTS
curl "https://bithomp.com/api/v2/nfts?owner=rBeistBLWtUskF2YzzSwMSM2tgsK7ZD7ME"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/nfts?owner=rBeistBLWtUskF2YzzSwMSM2tgsK7ZD7ME", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/nfts?owner=rBeistBLWtUskF2YzzSwMSM2tgsK7ZD7ME");
print $data;
The above command returns JSON structured like this:
{
"owner": "rBeistBLWtUskF2YzzSwMSM2tgsK7ZD7ME",
"ownerDetails": {
"username": "Zerpmon",
"service": "Zerpmon"
},
"nfts": [
{
"flags": {
"burnable": false,
"onlyXRP": false,
"trustLine": false,
"transferable": true
},
"issuer": "rBeistBLWtUskF2YzzSwMSM2tgsK7ZD7ME",
"nftokenID": "0008138874D997D20619837CF3C7E1050A785E9F9AC53D7E8542EAAC00000011",
"nftokenTaxon": 0,
"transferFee": 5000,
"uri": "697066733A2F2F516D627169774D736D6B4C6971794473465A664D534D566465464A674D4139514A626D735131636F4D32564343452F382E6A736F6E",
"url": "https://cloudflare-ipfs.com/ipfs/QmbqiwMsmkLiqyDsFZfMSMVdeFJgMA9QJbmsQ1coM2VCCE/8.json",
"sequence": 17,
"issuerDetails": {
"username": "Zerpmon",
"service": "Zerpmon"
},
"metadata": {
"name": "Purrf",
"description": "Zerpmon is an original collection of digital collectible creatures that live on the XRPL, with each one being a unique 1 of 1 art piece. The Zerpmon project is fueled by a passion for high-quality art and in-depth story telling. For more information on the vision of Zerpmon, visit www.zerpmon.world",
"image": "ipfs://Qmf52STemfXu79ovVAdjRneb7kKdtYJNvzYjoxWubbu4Vx/8.png",
"attributes": [
{
"trait_type": "Zerpdex Number",
"value": "Zerpmon Collab #8"
},
{
"trait_type": "Type",
"value": "Fairy"
},
{
"trait_type": "Evolution Stage",
"value": "Collab"
}
]
}
}
]
}
This endpoint retrieves a List of NFTs (XLS-20 / XLS-35) for specified parameters
HTTP Request
GET https://bithomp.com/api/v2/nfts
Query Parameters
Parameter | Default | Description |
---|---|---|
owner | null | The XRPL address of the Owner |
issuer | null | The XRPL address of the Issuer |
taxon | null | Taxon for that Issuer (optional, will be ignored without an Issuer) |
hasMetadata | false | set to true , to list NFTs only with available metadata |
hasImage | false | set to true , to list NFTs only with available media data (preview images can be generated from images, videos, pdf files and 3d models) |
includeDeleted | false | set to true , if you want result to include deleeted NFTs |
mintedByMarketplace | null | Here you can specify a minter from https://bithomp.com/nft-minters?period=all to filter your search by minter project. |
marker | null | The marker from the previous request, if you need a next page of NFTs |
list | nfts |
(Only available on paid API plans) can be set to onSale to get the list of NFTs with active sell offers |
destination | all |
(Only available on paid API plans) used to filter NFTs for sale list=onSale , can be set as a XRPL address (to specify a particular MarketPlace), public , knownBrokers , publicAndKnownBrokers , all |
order | null | (Only available on paid API plans) used to order NFTs: 1. for list=nfts , can be mintedNew and mintedOld , 2. for list=onSale , can be offerCreatedNew , offerCreatedOld , priceLow , priceHigh |
currency | null | (Only available on paid API plans) used to filter NFTs for sale list=onSale , can be XRP or any other currency code. |
currencyIssuer | null | (Only available on paid API plans) A currency issuer for the currency if it is not an XRP. |
issuedAt | null | (Only available on paid API plans) It can be used to show NFTs which were minted during some period of time. A time period, all time all , last 24h day , last 7 days week , last 30 days month , last 365 days year , or 1671490800000..1671663600000 - period or 2022-12-20T00:00:00.000Z..2022-12-22T00:00:00.000Z , to show from specific date till now: 1671490800000.. or 2022-12-20T00:00:00.000Z.. |
deletedAt | null | (Only available on paid API plans) It can be used to show NFTs which were burned during some period of time. A time period, all time all , last 24h day , last 7 days week , last 30 days month , last 365 days year . or 1671490800000..1671663600000 - period or 2022-12-20T00:00:00.000Z..2022-12-22T00:00:00.000Z , to show from specific date till now: 1671490800000.. or 2022-12-20T00:00:00.000Z.. |
NFT Offers
curl "https://bithomp.com/api/v2/nft-offers/rDpLcKCi18ixgzJEseKbi2krRGTWZM69gX?list=counterOffers&offersValidate=true&nftoken=true"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/nft-offers/rDpLcKCi18ixgzJEseKbi2krRGTWZM69gX?list=counterOffers&offersValidate=true&nftoken=true", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/nft-offers/rDpLcKCi18ixgzJEseKbi2krRGTWZM69gX?list=counterOffers&offersValidate=true&nftoken=true");
print $data;
The above command returns JSON structured like this:
{
"owner": "rDpLcKCi18ixgzJEseKbi2krRGTWZM69gX",
"list": "offers",
"ownerDetails": {
"username": null,
"service": null
},
"nftOffers": [
{
"nftokenID": "00081B581189F5687DBB7516339D6CCB5593D96622AD82DF41D3BA2E0000017F",
"offerIndex": "84148E4C12F401F72767033BC13170AFC92B222B3D1365D1D59ED5A4193DD2C1",
"createdAt": 1667359001,
"createdLedgerIndex": 75471736,
"createdTxHash": "899B95BD4D0F8D4DE80DAB145919D3FF55788CB9C25E25DB7B3755F7B6AA7293",
"account": "rDbkpaT4jk5F17CqL11muJzzwhZtCStyg5",
"owner": "rDbkpaT4jk5F17CqL11muJzzwhZtCStyg5",
"destination": null,
"expiration": null,
"amount": "1500000000",
"flags": {
"sellToken": false
},
"nftoken": {
"flags": {
"burnable": false,
"onlyXRP": false,
"trustLine": false,
"transferable": true
},
"issuer": "rpbjkoncKiv1LkPWShzZksqYPzKXmUhTW7",
"nftokenID": "00081B581189F5687DBB7516339D6CCB5593D96622AD82DF41D3BA2E0000017F",
"nftokenTaxon": 52,
"transferFee": 7000,
"sequence": 383,
"owner": "rDpLcKCi18ixgzJEseKbi2krRGTWZM69gX",
"uri": null,
"issuedAt": 1667268851,
"ownerChangedAt": 1667403840,
"deletedAt": null,
"url": "https://marketplace-api.onxrp.com/api/metadata/00081B581189F5687DBB7516339D6CCB5593D96622AD82DF41D3BA2E0000017F",
"metadata": {
"dna": "e48265739a191624244a717e9b233a11553d703af0e82739784f78f9d332a789",
"name": "XPUNKS #383",
"description": "The XPUNK collection consists of 10,000 uniquely generated characters on a 24-by 24-pixel canvas. They are distinguished by their colourful traits and trademark X-mouth that represents their love for the XRPL.",
"image": "ipfs://QmdPgX2nHd91TYQ3uY8kyqNCciXxfqp3ATVrwWfiAfZiJo",
"imageHash": "71db5411810b661b150ee05b7e19f12a3e0022b2a256f7a255679a5dce7ad487",
"edition": 1482,
"date": 1667163506360,
"attributes": [
{
"trait_type": "Face",
"value": "Male 4"
},
{
"trait_type": "Eye Characteristics",
"value": "Tired"
},
{
"trait_type": "Eyes",
"value": "Dark Brown Right"
},
{
"trait_type": "Neck Wearable",
"value": "Chain Gold"
},
{
"trait_type": "Hair & Hats",
"value": "Afro Hair Orange"
},
{
"trait_type": "Facial Hair",
"value": "No Attribute"
},
{
"trait_type": "Eye Wearables",
"value": "Clubmasters Vision Glasses"
},
{
"trait_type": "Mouth Attribute",
"value": "No Attribute"
},
{
"trait_type": "Piercings",
"value": "No Attribute"
}
],
"schema": "ipfs://QmNpi8rcXEkohca8iXu7zysKKSJYqCvBJn3xJwga8jXqWU",
"nftType": "art.v0",
"collection": {
"name": "XPUNKS",
"description": "The XPUNK collection consists of 10,000 uniquely generated characters on a 24-by-24-pixel canvas. They are distinguished by their colorful traits and trademark X-mouth that represents their love for the XRPL."
}
},
"issuerDetails": {
"username": "XPUNKS",
"service": "XPUNKS"
},
"ownerDetails": {
"username": null,
"service": null
}
},
"accountDetails": {
"username": null,
"service": null
},
"ownerDetails": {
"username": null,
"service": null
},
"valid": false,
"validationErrors": [
"Insufficient funds on the buyer account"
]
}
]
}
This endpoint retrieves NFT Offers created by an address
or NFT Offers for all NFTs owned by that address
.
HTTP Request
GET https://bithomp.com/api/v2/nft-offers/<address>
URL Parameters
Parameter | Description |
---|---|
address | The XRPL address or a username. |
Query Parameters
Parameter | Default | Description |
---|---|---|
list | null | default - to list all owned NFT offers, counterOffers - to list NFT Offers for all NFTs owned by the address , privatelyOfferedToAddress - to list all NFT offers where the address is specified as destination (brokers, private offers, nft transfers). |
nftoken | false | If set to true, each offer will include nftoken data, including metadata. |
offersValidate | false | (Only available on paid API plans) If set to true, each offer will include valid as true or false , if false then it also include validationErrors array. |
NFT Distribution
curl "https://bithomp.com/api/v2/nft-count/xpunks?list=owners"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/nft-count/xpunks?list=owners", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/nft-count/xpunks?list=owners");
print $data;
The above command returns JSON structured like this:
{
"issuer": "rpbjkoncKiv1LkPWShzZksqYPzKXmUhTW7",
"issuerDetails": {
"username": "XPUNKS",
"service": "XPUNKS"
},
"list": "owners",
"totalNfts": 6726,
"totalOwners": 1863,
"owners": [
{
"owner": "rpbjkoncKiv1LkPWShzZksqYPzKXmUhTW7",
"ownerDetails": {
"username": "XPUNKS",
"service": "XPUNKS"
},
"count": 500
},
{
"owner": "rQUA5QBUAUzqa5gc2uCneHYyBhGUoSFxDx",
"ownerDetails": {
"username": null,
"service": null
},
"count": 120
}
]
}
This endpoint retrieves NFT Owners list for NFTs issued by a specific address
.
HTTP Request
GET https://bithomp.com/api/v2/nft-count/<address>
URL Parameters
Parameter | Description |
---|---|
address | The XRPL address or a username. |
Query Parameters
Parameter | Default | Description |
---|---|---|
list | null | owners (to list NFT Owners for NFTs issued by a specific address ). |
taxon | null | taxon for the address issuer, to see the nft distribution of a collection identified by issuer and taxon. |
NFT Sales
curl "https://bithomp.com/api/v2/nft-sales?list=topSold¤cy=xrp&convertCurrencies=usd,eur"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/nft-sales?list=topSold¤cy=xrp&convertCurrencies=usd,eur", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/nft-sales?list=topSold¤cy=xrp&convertCurrencies=usd,eur");
print $data;
The above command returns JSON structured like this:
{
"list": "topSold",
"saleType": "all",
"period": "all",
"currency": "xrp",
"convertCurrencies": ["eur", "usd"],
"total": {
"primary": 41933,
"secondary": 25587
},
"sales": [
{
"nftokenID": "00081388A47691FB124F91B5FF0F5246AED2B5275385689F27ED727F000015E3",
"acceptedAt": "1673931131",
"acceptedLedgerIndex": "77169958",
"acceptedTxHash": "C6F7492A4E58BC2FB6190F7081BBC96231E10ED463EDAB301DBDD650C97DD5FB",
"acceptedAccount": "rpx9JThQ2y37FaGeeJP7PXDUVEXY3PHZSC",
"seller": "rnVp1xV43N7SgqtjHWCSM6EcSUYs7yWNku",
"buyer": "rJ1GJjNauEafyQWo1o5ZYDuciGPjx6yTGD",
"amount": "40000000000",
"broker": true,
"marketplace": "xrp.cafe",
"saleType": "secondary",
"amountInConvertCurrencies": {
"eur": "14213.6",
"usd": "15399.6"
},
"nftoken": {
"flags": {
"burnable": false,
"onlyXRP": false,
"trustLine": false,
"transferable": true
},
"issuer": "rEzbi191M5AjrucxXKZWbR5QeyfpbedBcV",
"nftokenID": "00081388A47691FB124F91B5FF0F5246AED2B5275385689F27ED727F000015E3",
"nftokenTaxon": 1,
"transferFee": 5000,
"sequence": 5603,
"owner": "rJ1GJjNauEafyQWo1o5ZYDuciGPjx6yTGD",
"uri": "516D654834744E4D4C655233756F3774755453357768416E66734B4A737A4D4C6B676F7A44664C78676863385571",
"nftSerial": 5603,
"issuedAt": 1667651282,
"ownerChangedAt": 1673931131,
"deletedAt": null,
"url": "https://cloudflare-ipfs.com/ipfs/QmeH4tNMLeR3uo7tuTS5whAnfsKJszMLkgozDfLxghc8Uq",
"metadata": {
"name": "Bored Apes XRP Club #5611",
"description": "The Bored Apes XRP Club is a collection of 10,000 unique Bored Ape NFTs living on the XRP ledger.",
"image": "QmdYwvVtjNFKRqHEWPChdkfM24Z1i34FmmC4uAjDdnJ7NF/5611.png",
"edition": "5611",
"date": 1667650922062,
"creator": "Bored Apes XRP Club",
"artist": "Bored Apes XRP Club",
"attributes": [
{
"trait_type": "Background",
"value": "Punk Blue"
},
{
"trait_type": "Fur",
"value": "Grey"
},
{
"trait_type": "Clothes",
"value": "Cowboy"
},
{
"trait_type": "Mouth",
"value": "Rainbow"
},
{
"trait_type": "Eyes",
"value": "Blindfold"
}
],
"external_link": "https://x-apes.com/",
"category": "Collectables",
"collection": {
"name": "Bored Apes XRP Club",
"family": "art"
}
},
"issuerDetails": {
"username": "BoredApesXRP",
"service": "Bored Apes XRP Club"
},
"ownerDetails": {
"username": null,
"service": null
}
},
"sellerDetails": {
"username": null,
"service": null
},
"buyerDetails": {
"username": null,
"service": null
},
"acceptedAccountDetails": {
"username": null,
"service": "xrp.cafe"
}
}
],
"total": {
"primary": 78600,
"secondary": 54396
}
}
This endpoint retrieves a List of NFT Sales for specified parameters
HTTP Request
GET https://bithomp.com/api/v2/nft-sales
Query Parameters
Parameter | Default | Description |
---|---|---|
list | null | topSold or lastSold (for the list of NFTs sales of the highest price or the latest sell timestamp) |
convertCurrencies | null | (Only available on paid API plans) the list of currencies to convert amount to, splitted by comma, for example xrp,usd (40 fiat currencies available), the response will have an array amountInConvertCurrencies |
sortCurrency | xrp |
(Only available on paid API plans) one of the currencies from the convertCurrencies or xrp to sort the list by, for example: usd (optional) |
currency | null | specify a currency to filter sales in a specific currency, for example xrp (should be specified if there are no convertCurrencies and sortCurrency ) |
currencyIssuer | null | if currency is specified and it is not 'xrp', then you must specify the currency issuer XRPL address (optional) |
saleType | all |
can be primary or secondary (optional, primary - the sales from the issuer address) |
issuer | null | The address of the NFT issuer (optional) |
buyer | null | (Only available on paid API plans) The address of the Buyer (optional) |
seller | null | (Only available on paid API plans) The address of the Seller (optional) |
taxon | null | Taxon for that Issuer (optional, will be ignored without an Issuer) |
period | all |
A time period, all time all , last 24h day , last 7 days week , last 30 days month , last 365 days year or a time period as timestamps from..to 1671490800000..1671663600000 or 2022-12-20T00:00:00.000Z..2022-12-22T00:00:00.000Z |
marketplace | null | You can specify a marketplace, to filter sales by a specific marketplace, for example xrp.cafe , the list of all marketplaces is here (optional) |
marker | null | The marker from the previous request, if you need a next page of NFTs |
NFT Volumes
curl "https://bithomp.com/api/v2/nft-volumes?list=issuers¤cy=xrp"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/nft-volumes?list=issuers¤cy=xrp", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/nft-volumes?list=issuers¤cy=xrp");
print $data;
The above command returns JSON structured like this:
{
"list": "issuers",
"period": "all",
"saleType": "all",
"marker": "753DF10F00000001",
"volumes": [
{
"amount": "3183301846633",
"sales": 1388,
"issuer": "rpbjkoncKiv1LkPWShzZksqYPzKXmUhTW7",
"issuerDetails": {
"username": "XPUNKS",
"service": "XPUNKS"
},
"buyers": 419,
"tradedNfts": 1015,
"totalOwners": 1872,
"totalNfts": 6751,
"floorPrice": {
"open": {
"amount": "2400000000"
},
"private": {
"amount": "1150000000",
"destination": "rpZqTPC8GvrSvEfFsUuHkmPCg29GdQuXhC",
"destinationDetails": {
"username": null,
"service": "onXRP"
}
}
}
},
{
"amount": "1770531477817",
"sales": 1582,
"issuer": "rEzbi191M5AjrucxXKZWbR5QeyfpbedBcV",
"issuerDetails": {
"username": "BoredApesXRP",
"service": "Bored Apes XRP Club"
},
"buyers": 368,
"tradedNfts": 1358,
"totalOwners": 1583,
"totalNfts": 10064,
"floorPrice": {
"open": {
"amount": "750000000"
},
"private": {
"amount": "500000000",
"destination": "rpx9JThQ2y37FaGeeJP7PXDUVEXY3PHZSC",
"destinationDetails": {
"username": null,
"service": "xrp.cafe"
}
}
}
}
]
}
This endpoint retrieves NFT Sales Volumes for specified parameters
HTTP Request
GET https://bithomp.com/api/v2/nft-volumes
Query Parameters
Parameter | Default | Description |
---|---|---|
list | null | issuers , currencies , brokers or marketplaces |
currency | null | Must be specified for issuers , brokers and marketplaces , for example as xrp |
currencyIssuer | null | if currency is specified and it is not 'xrp', then you must specify the currency issuer XRPL address (optional) |
saleType | all |
can be primary or secondary (optional, primary - the sales from the issuer address) |
period | all |
A time period, all time all , last 24h day , last 7 days week , last 30 days month , last 365 days year |
floorPrice | false | (Only available on paid API plans) Returns floorPrice for issuers . The lowest VALID sell offers for an NFT from that collection, the lowest on the open market and the lowest on one of the identified market places. |
NFT Volumes Extended
curl "https://bithomp.com/api/v2/nft-volumes-extended?list=issuers&convertCurrencies=usd,xrp&sortCurrency=usd&floorPrice=true&statistics=true&period=week&saleType=secondary"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/nft-volumes-extended?list=issuers&convertCurrencies=usd,xrp&sortCurrency=usd&floorPrice=true&statistics=true&period=week&saleType=secondary", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/nft-volumes-extended?list=issuers&convertCurrencies=usd,xrp&sortCurrency=usd&floorPrice=true&statistics=true&period=week&saleType=secondary");
print $data;
The above command returns JSON structured like this:
{
"list": "issuers",
"period": "week",
"convertCurrencies": [
"usd",
"xrp"
],
"sortCurrency": "usd",
"statistics": true,
"saleType": "secondary",
"floorPrice": true,
"marker": "7285A19600000001",
"summary": {
"all": {
"volumes": [
{
"amount": {
"currency": "BAY",
"issuer": "r4uq8urnYrT6LnZaadPyusyKCS68HVJtRn",
"value": "9426"
},
"sales": 19,
"amountInConvertCurrencies": {
"usd": "177880.1873508458857959814",
"xrp": "418260.834306"
}
},
{
"amount": "225636390121",
"sales": 4416,
"amountInConvertCurrencies": {
"usd": "96928.28649692584",
"xrp": "225636.390121"
}
},
{
"amount": {
"currency": "7853504543544152000000000000000000000000",
"issuer": "rh5jzTCdMRCVjQ7LT6zucjezC47KATkuvv",
"value": "2000"
},
"sales": 1,
"amountInConvertCurrencies": {
"usd": "115.914190640895224906992042",
"xrp": "277.20719990648146575868"
},
"currencyDetails": {
"type": "hex",
"currencyCode": "7853504543544152000000000000000000000000",
"currency": "xSPECTAR"
}
}
],
"sales": 4730,
"volumesInConvertCurrencies": {
"usd": "276669.4085438152983",
"xrp": "648231.929829"
}
}
},
"issuers": [
{
"issuer": "rEzbi191M5AjrucxXKZWbR5QeyfpbedBcV",
"issuerDetails": {
"username": "BoredApesXRP",
"service": "Bored Apes XRP Club"
},
"sales": 51,
"floorPrices": [
{
"open": {
"amount": "450000000"
},
"private": {
"amount": "369000000",
"destination": "rpx9JThQ2y37FaGeeJP7PXDUVEXY3PHZSC",
"destinationDetails": {
"username": null,
"service": "xrp.cafe"
}
}
},
{
"open": {
"amount": {
"currency": "BAY",
"issuer": "r4uq8urnYrT6LnZaadPyusyKCS68HVJtRn",
"value": "1"
}
},
"private": null
}
],
"statistics": {
"buyers": 25,
"tradedNfts": 51,
"owners": 1646,
"nfts": 9998
},
"volumesInConvertCurrencies": {
"usd": "184004.5165186555057",
"xrp": "432359.982164"
},
"volumes": [
{
"amount": {
"currency": "BAY",
"issuer": "r4uq8urnYrT6LnZaadPyusyKCS68HVJtRn",
"value": "9426"
},
"sales": 19,
"amountInConvertCurrencies": {
"usd": "177880.1873508458857",
"xrp": "418260.834306"
}
},
{
"amount": "14099147858",
"sales": 32,
"amountInConvertCurrencies": {
"usd": "6124.32916780962",
"xrp": "14099.147858"
}
}
]
},
{
"issuer": "rDPUNKX2Rf5joEyVnmXFnnWL5MYa92wLPN",
"issuerDetails": {
"username": null,
"service": "DoodlepunkX"
},
"sales": 2357,
"floorPrices": [
{
"open": {
"amount": "25000000"
},
"private": {
"amount": "22000000",
"destination": "rpx9JThQ2y37FaGeeJP7PXDUVEXY3PHZSC",
"destinationDetails": {
"username": null,
"service": "xrp.cafe"
}
}
},
{
"open": {
"amount": {
"currency": "OXP",
"issuer": "rrno7Nj4RkFJLzC4nRaZiLF5aHwcTVon3d",
"value": "15000"
}
},
"private": null
}
],
"statistics": {
"buyers": 230,
"tradedNfts": 2240,
"owners": 1188,
"nfts": 10000
},
"volumesInConvertCurrencies": {
"usd": "26185.3828300196",
"xrp": "61573.861964"
},
"volumes": [
{
"amount": "61289463829",
"sales": 2340,
"amountInConvertCurrencies": {
"usd": "26065.17558483161",
"xrp": "61289.463829"
}
},
{
"amount": {
"currency": "OXP",
"issuer": "rrno7Nj4RkFJLzC4nRaZiLF5aHwcTVon3d",
"value": "13406"
},
"sales": 17,
"amountInConvertCurrencies": {
"usd": "120.207245188022",
"xrp": "284.398135"
}
}
]
}
]
}
This endpoint retrieves Extended NFT Sales Volumes for specified parameters (Only available on paid API plans)
HTTP Request
GET https://bithomp.com/api/v2/nft-volumes-extended
Query Parameters
Parameter | Default | Description |
---|---|---|
list | null | issuers , taxons , currencies , brokers or marketplaces |
issuer | null | An XRPL address or username of the NFT issuer, must be specified for list taxons , to receive separate volumes for each taxon of the issuer |
currency | null | By default returns for all currencies, you can set any XRPL currency for example xrp (optional) |
currencyIssuer | null | if currency is specified and it is not 'xrp', then you must specify the currency issuer XRPL address (optional) |
convertCurrencies | null | the list of currencies to convert amounts and volumes to, splitted by comma, for example xrp,usd (40 fiat currencies available), the response will have amountInConvertCurrencies and volumesInConvertCurrencies |
sortCurrency | xrp |
one of the currencies from the convertCurrencies or xrp to sort the list by, for example: usd (optional) |
saleType | all |
can be primary or secondary (optional, primary - the sales from the issuer address) |
period | all |
A time period, all time all , last 24h day , last 7 days week , last 30 days month , last 365 days year or as timestamps from..to, examples: 1671490800000..1671663600000 or 2022-12-20T00:00:00.000Z..2022-12-22T00:00:00.000Z |
floorPrice | false | Returns floorPrice for issuers . The lowest VALID sell offers for an NFT from that collection, the lowest on the open market and the lowest on one of the identified market places. |
statistics | false | Returns statistics for issuers and taxons . Which includes: buyers - current buyers count, tradedNfts - current count of traded NFTS, owners - current count of owners, nfts - current count of NFTs |
marker | null | The marker from the previous request, if you need a next page |
NFT Minters
curl "https://bithomp.com/api/v2/nft-marketplaces?period=week"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/nft-marketplaces?period=week", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/nft-marketplaces?period=week");
print $data;
The above command returns JSON structured like this:
{
{
"period": "all",
"summary": {
"minted": 1873080,
"mintedAndBurned": 306224,
"burned": 306224
},
"marketplaces": [
{
"marketplace": "unknown",
"minted": 616658,
"mintedAndBurned": 186176,
"burned": 186176
},
{
"marketplace": "onxrp.com",
"minted": 299713,
"mintedAndBurned": 22778,
"burned": 22778
},
{
"marketplace": "xmart.art",
"minted": 261204,
"mintedAndBurned": 16843,
"burned": 16843
},
{
"marketplace": "xrp.cafe",
"minted": 186707,
"mintedAndBurned": 3785,
"burned": 3785
},
{
"marketplace": "xrpnft.com",
"minted": 153240,
"mintedAndBurned": 49818,
"burned": 49818
},
{
"marketplace": "sologenic.org",
"minted": 98900,
"mintedAndBurned": 6210,
"burned": 6210
}
]
}
}
This endpoint retrieves NFT minters on XRPL for a specified period of time
HTTP Request
GET https://bithomp.com/api/v2/nft-marketplaces
Query Parameters
Parameter | Default | Description |
---|---|---|
period | all |
A time period, all time all, last 24h day, last 7 days week, last 30 days month, last 365 days year or as timestamps from..to, examples: 1671490800000..1671663600000 or 2022-12-20T00:00:00.000Z..2022-12-22T00:00:00.000Z |
NFT Mint Chart
curl "https://bithomp.com/api/v2/nft-chart?span=day&period=month"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/nft-chart?span=day&period=month", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/nft-chart?span=day&period=month");
print $data;
The above command returns JSON structured like this:
{
"span": "day",
"period": "month",
"chart": [
{
"time": "2024-01-19T23:59:59.999Z",
"issues": 11969
},
{
"time": "2024-01-20T23:59:59.999Z",
"issues": 2173
}
]
}
This endpoint retrieves NFT mints count for a specified period of time, with a specified span (available only on the Standard plan and higher)
HTTP Request
GET https://bithomp.com/api/v2/nft-chart
Query Parameters
Parameter | Default | Description |
---|---|---|
period | all |
A time period, all time all , last hour hour , last 24h day , last 7 days week , last 30 days month , last 365 days year or as timestamps from..to, examples: 1671490800000..1671663600000 or 2022-12-20T00:00:00.000Z..2022-12-22T00:00:00.000Z |
span | null | A time span for the chart, can be minute , hour , day , month , year , not all spans are available for large periods, for a period hour you can have minute , for periods up to 60 hours, you can have hour , day , month , for up to 60 days - day , month . |
NFT Sales Chart
curl "https://bithomp.com/api/v2/nft-sales-chart?span=day&period=month&convertCurrencies=usd&saleType=secondary"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/nft-sales-chart?span=day&period=month&convertCurrencies=usd&saleType=secondary", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/nft-sales-chart?span=day&period=month&convertCurrencies=usd&saleType=secondary");
print $data;
The above command returns JSON structured like this:
{
"span": "day",
"saleType": "secondary",
"period": "month",
"convertCurrencies": [
"usd"
],
"chart": [
{
"time": "2024-01-20T23:59:59.999Z",
"sales": 251,
"amountInNativeCurrency": "12595.349685",
"amountInConvertCurrencies": {
"usd": "6896.94474652027"
}
},
{
"time": "2024-01-21T23:59:59.999Z",
"sales": 405,
"amountInNativeCurrency": "19519.066439",
"amountInConvertCurrencies": {
"usd": "10764.85431987046"
}
}
]
}
This endpoint retrieves NFT Sales Volumes Chart data for a specified period of time, with a specified span (available only on the Standard plan and higher)
HTTP Request
GET https://bithomp.com/api/v2/nft-sales-chart
Query Parameters
Parameter | Default | Description |
---|---|---|
period | all |
A time period, all time all , last hour hour , last 24h day , last 7 days week , last 30 days month , last 365 days year or as timestamps from..to, examples: 1671490800000..1671663600000 or 2022-12-20T00:00:00.000Z..2022-12-22T00:00:00.000Z |
span | null | A time span for the chart, can be minute , hour , day , month , year , not all spans are available for large periods, for a period hour you can have minute , for periods up to 60 hours, you can have hour , day , month , for up to 60 days - day , month . |
issuer | null | An address or username of the NFT issuer (optional, if you want to get data for a specific issuer) |
taxon | null | Taxon for that issuer (optional, will be ignored without an issuer ) |
currency | null | By default returns for all currencies, you can set any currency for example xrp (optional) |
currencyIssuer | null | if currency is specified and it is not 'xrp', then you must specify the currency issuer address (optional) |
convertCurrencies | null | the list of currencies to convert amounts and volumes to, splitted by comma, for example xrp,usd (40 fiat currencies available), the response will have amountInConvertCurrencies |
saleType | all |
can be primary or secondary (optional, primary - the sales from the issuer address) |
Get status
Services (Last update)
curl "https://bithomp.com/api/v2/services/lastUpdate"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/services/lastUpdate", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/services/lastUpdate");
print $data;
The above command returns JSON structured like this:
{
"lastUpdate": 1579527766,
"totalServices": 475,
"totalAddresses": 1832
}
This endpoint returns a timestamp of last DB update for services/addresses.
HTTP Request
GET https://bithomp.com/api/v2/services/lastUpdate
Response Format
Field | Value | Description |
---|---|---|
lastUpdate | Integer | UNIX timestamp of the last data update. |
totalServices | Integer | The amount of identified services. |
totalAddresses | Integer | The amount of identified addresses. |
NFT Crawler (Last update)
curl "https://bithomp.com/api/v2/statistics/nftokens/crawler"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/statistics/nftokens/crawler", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/statistics/nftokens/crawler");
print $data;
The above command returns JSON structured like this:
{
"ledgerIndex": 82078753,
"ledgerTime": 1692949961
}
This endpoint returns the last ledger which was crawled by our NFT crawler.
HTTP Request
GET https://bithomp.com/api/v2/statistics/nftokens/crawler
Response Format
Field | Value | Description |
---|---|---|
ledgerIndex | Integer | The last crawled ledger index. |
ledgerTime | Integer | UNIX timestamp of the last crawled ledger. |
Get information for ONE
Address
curl "https://bithomp.com/api/v2/address/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B?username=true&service=true&verifiedDomain=true&inception=true&ledgerInfo=true"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getAddressInfo(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/address/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B?username=true&service=true&verifiedDomain=true&inception=true&ledgerInfo=true", getAddressInfo);
$addressInfo = curl_bithomp("https://bithomp.com/api/v2/address/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B?username=true&service=true&verifiedDomain=true&inception=true&ledgerInfo=true");
print $addressInfo;
The above command returns JSON structured like this:
{
"address": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
"xAddress": "X7WZKEeNVS2p9Tire9DtNFkzWBZbFtJHWxDjN9fCrBGqVA4",
"inception": 1361216760,
"initialBalance": 1500,
"genesis": false,
"ledgerInfo": {
"activated": true,
"error": null,
"ledger": 69617915,
"ledgerTimestamp": 1645995600,
"balance": "6511036080064",
"flags": {
"passwordSpent": false,
"requireDestTag": true,
"requireAuth": false,
"depositAuth": false,
"disallowXRP": true,
"disableMaster": false,
"noFreeze": false,
"globalFreeze": false,
"defaultRipple": true
},
"ownerCount": 387,
"previousTxnID": "2B0A02B899DC0D384AC14E0AB6DF8E32DBB9941D06696233A6BF03C0EB577027",
"previousTxnLgrSeq": 69617676,
"sequence": 4692,
"accountTxnID": null,
"mintedTokens": 1,
"burnedTokens": 12,
"regularKey": null,
"ticketCount": 5,
"signerList": {
"previousTxnID": "965730F660A808927B7A850F0408FF6532BA385641FC1DC67E2907F41A9E7B75",
"previousTxnLgrSeq": 62412856,
"signerQuorum": 2,
"flags": {
"oneOwnerCount": true
},
"signerEntries": [
{
"account": "re3LGjhrCvthtWWwrfKbVJjXN9PYDeQDJ",
"signerWeight": 1
},
{
"account": "rkPA5RwLVPnJgpcsrzYvHwx1HVfDb6zD3",
"signerWeight": 1
},
{
"account": "rpcL6T32dYb6FDgdm4CnC1DZQSoMvvkLRd",
"signerWeight": 1
}
]
},
"domain": "bitstamp.net",
"emailHash": "5b33b93c7ffe384d53450fc666bb11fb",
"messageKey": null,
"tickSize": null,
"transferRate": 1.002,
"blackholed": false
},
"service": {
"name": "Bitstamp",
"domain": "bitstamp.net",
"socialAccounts": {
"twitter": "Bitstamp",
"facebook": "Bitstamp",
"youtube": null,
"instagram": null,
"linkedin": null,
"reddit": null,
"medium": null,
"telegram": null
}
},
"username": "Bitstamp",
"verifiedDomain": null
}
This endpoint retrieves information for a requested XRPL address.
HTTP Request
GET https://bithomp.com/api/v2/address/<address>
URL Parameters
Parameter | Description |
---|---|
address | The XRPL address, can be old r-address or a new X-address |
Query Parameters
Parameter | Default | Description |
---|---|---|
service | false | If set to true, the result will also include Service details. |
username | false | If set to true, the result will also include a username (rippletrade or bithomp). |
payString | false | If set to true, the result will also include a bithomp payString for that address. |
verifiedDomain | false | If set true, the result will include a verifiedDomain if such exists. |
hashicon | false | If set true, the result will include hashicon which can be used in img's src="" or in css, as background's url. (The icon is the same for x-address and r-address, such hashicons used in Xumm and Bithomp.) |
parent | false | If set to true, the result will include the same info for a parent account. Also it will add to the root object: genesis , initialBalance , inception |
nickname | false | If set to true, the result will include an old nickname from bitcointalk forum. |
flare | false | if set to true, the result will include flare: {spark, songbird, address} . |
inception | false | if set to true, the result will include: genesis , initialBalance , inception . |
ledgerInfo | false | if set to true, the result will include ledgerInfo object. (Note: A fee to use this parameter might be introduced in the feature) |
ledgerTimestamp | null | ISO timestamp or unix timestamp (if set the request will return ledgerInfo data for that timestamp) |
Username
curl "https://bithomp.com/api/v2/username/xrptipbot?service=true&parent=true&verifiedDomain=true"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/username/xrptipbot?service=true&parent=true&verifiedDomain=true", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/username/xrptipbot?service=true&parent=true&verifiedDomain=true");
print $data;
The above command returns JSON structured like this:
{
"address": "rPEPPER7kfTD9w2To4CQk6UCfuHM9c6GDY",
"xAddress": "XV5sbjUmgPpvXv4ixFWZ5ptAYZ6PD2gYsjNFQLKYW33DzBm",
"inception": 1513126312,
"username": "xrptipbot",
"service": {
"name": "XRP Tip Bot",
"domain": "xrptipbot.com",
"socialAccounts": {
"twitter": "xrptipbot"
"facebook": null,
"youtube": null,
"instagram": null,
"linkedin": null,
"reddit": null,
"medium": null,
"steemit": null,
"telegram": null
}
},
"verifiedDomain": "xrptipbot.com",
"parent": {
"address": "rDsbeomae4FXwgQTJp9Rs64Qg9vDiTCdBv",
"xAddress": "XV3oNHx95sqdCkTDCBCVsVeuBmvh2du1vBfJR24EqdgwHDW",
"inception": 1481884572,
"service": {
"name": "Bitstamp",
"domain": "bitstamp.net",
"socialAccounts": {
"twitter": "Bitstamp",
"facebook": "Bitstamp",
"youtube": null,
"instagram": null,
"linkedin": null,
"reddit": null,
"medium": null,
"steemit": null,
"telegram": null
}
},
}
}
This endpoint retrieves information for a requested Username.
HTTP Request
GET https://bithomp.com/api/v2/username/<username>
URL Parameters
Parameter | Description |
---|---|
username | A bithomp or an old rippletrade username |
Query Parameters
Parameter | Default | Description |
---|---|---|
service | false | If set to true, the result will also include Service details. |
verifiedDomain | false | If set true, the result will include a verifiedDomain if such exists. |
hashicon | false | If set true, the result will include hashicon which can be used in img's src="" or in css, as background's url. (The icon is the same for x-address and r-address, such hashicons used in ToastWallet and Bithomp.) |
parent | false | If set to true, the result will include the same info for a parent account. |
Currency (HEX or XLS-14 NFT)
curl "https://bithomp.com/api/v2/currency/02C7004B041A91880000526964776F726C643836"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/currency/02C7004B041A91880000526964776F726C643836", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/currency/02C7004B041A91880000526964776F726C643836");
print $data;
The above command returns JSON structured like this:
{
"type": "nft",
"currencyCode": "02C7004B041A91880000526964776F726C643836",
"currency": "Ridworld86",
"cti": 56013842556817800,
"ctiLedger": 68850056,
"ctiTxIndex": 75,
"ctiValid": true,
"timestamp": 1641544270,
"ctiTx": {
"hash": "79C0E05CB9FC2B74F0B9716C15A6E2F924DBC8658931FD96AC8B158308A9886C",
"type": "payment",
"account": "rGpmRmU3Q5gyhhyWLWugkPX6SA8FyqXyE5",
"counterparty": null,
"destination": "r4VzEm7Jbgg3QkPBgMscoppz6JuzK2Jkbd",
"memos": [
{
"Memo": {
"MemoData": "526964776F726C6438362E205261726974793A2052617265204C6567656E642E20416D6F756E74206D696E7465643A2035383920756E6974732E20526964776F726C64C2AE20436F6C6C65637469626C65204E465420436172642047616D652E20496C6C7573747261746F723A205765622041727469737469632E",
"MemoFormat": "746578742F706C61696E",
"MemoType": "4465736372697074696F6E"
}
},
{
"Memo": {
"MemoData": "456E69676D61",
"MemoFormat": "746578742F706C61696E",
"MemoType": "417574686F72"
}
},
{
"Memo": {
"MemoData": "697066733A2F2F626166796265696779347869796C347A7062376C667474797832356E7A796E6F32647369766A777378657337376467336936356767796666637665",
"MemoFormat": "746578742F757269",
"MemoType": "5072696D617279557269"
}
}
]
},
"nft": {
"type": "xls14",
"description": "Ridworld86. Rarity: Rare Legend. Amount minted: 589 units. Ridworld® Collectible NFT Card Game. Illustrator: Web Artistic.",
"author": "Enigma",
"primaryUri": "ipfs://bafybeigy4xiyl4zpb7lfttyx25nzyno2dsivjwsxes77dg3i65ggyffcve",
"backupUri": null,
"image": null,
"data": null
}
}
This endpoint retrieves information for a requested currency (HEX or XLS-14 NFT).
HTTP Request
GET https://bithomp.com/api/v2/currency/<currency>
URL Parameters
Parameter | Description |
---|---|
currency | A currency (HEX or XLS-14 NFT) |
Validator
curl "https://bithomp.com/api/v2/validator/nHB8QMKGt9VB4Vg71VszjBVQnDW3v3QudM4DwFaJfy96bj4Pv9fA"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getValidatorAddress(json) {
console.log(json.publicKey + " validator's XRPL address: ", json.address);
}
bithompRequest("https://bithomp.com/api/v2/validator/nHB8QMKGt9VB4Vg71VszjBVQnDW3v3QudM4DwFaJfy96bj4Pv9fA", getValidatorAddress);
$validatorAddress = curl_bithomp("https://bithomp.com/api/v2/validator/nHB8QMKGt9VB4Vg71VszjBVQnDW3v3QudM4DwFaJfy96bj4Pv9fA");
print $validatorAddress;
The above command returns JSON structured like this:
{
"publicKey": "nHB8QMKGt9VB4Vg71VszjBVQnDW3v3QudM4DwFaJfy96bj4Pv9fA",
"address": "rKontEGtDju5MCEJCwtrvTWQQqVAw5juXe"
}
This endpoint retrieves a XRPL address of a specific validator computed from the validator public key
HTTP Request
GET https://bithomp.com/api/v2/validator/<validatorPublicKey>
URL Parameters
Parameter | Description |
---|---|
validatorPublicKey | The public key of the validator to retrieve |
Get information for MANY
Currencies (HEX or XLS-14 NFTs)
curl "https://bithomp.com/api/v2/currencies/?currencyList=02090001014A4E43454C53436F6E746573743031,02C7004B041A91880000526964776F726C643836,534F4C4F00000000000000000000000000000000"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/currencies/?currencyList=02090001014A4E43454C53436F6E746573743031,02C7004B041A91880000526964776F726C643836,534F4C4F00000000000000000000000000000000", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/currencies/?currencyList=02090001014A4E43454C53436F6E746573743031,02C7004B041A91880000526964776F726C643836,534F4C4F00000000000000000000000000000000");
print $data;
The above command returns JSON structured like this:
{
"02090001014A4E43454C53436F6E746573743031": {
"type": "nft",
"currencyCode": "02090001014A4E43454C53436F6E746573743031",
"currency": "ELSContest01",
"cti": 2533279107010115,
"ctiLedger": 21646915,
"ctiTxIndex": 1,
"ctiValid": false,
"timestamp": 1465177060,
"ctiTx": {
"type": "orderCancellation",
"account": "r4aqu2zbAdX2QQ9bdeuGwifUMhtEeqx3pY",
"hash": "D06F5941FD8D1DFAD1A0E4B2BE227C19C0C49B6E6257B846A507E69F9AFB10AA"
},
"nft": {
"type": "xls14"
}
},
"02C7004B041A91880000526964776F726C643836": {
"type": "nft",
"currencyCode": "02C7004B041A91880000526964776F726C643836",
"currency": "Ridworld86",
"cti": 56013842556817800,
"ctiLedger": 68850056,
"ctiTxIndex": 75,
"ctiValid": true,
"timestamp": 1641544270,
"ctiTx": {
"hash": "79C0E05CB9FC2B74F0B9716C15A6E2F924DBC8658931FD96AC8B158308A9886C",
"type": "payment",
"account": "rGpmRmU3Q5gyhhyWLWugkPX6SA8FyqXyE5",
"counterparty": null,
"destination": "r4VzEm7Jbgg3QkPBgMscoppz6JuzK2Jkbd",
"memos": [
{
"Memo": {
"MemoData": "526964776F726C6438362E205261726974793A2052617265204C6567656E642E20416D6F756E74206D696E7465643A2035383920756E6974732E20526964776F726C64C2AE20436F6C6C65637469626C65204E465420436172642047616D652E20496C6C7573747261746F723A205765622041727469737469632E",
"MemoFormat": "746578742F706C61696E",
"MemoType": "4465736372697074696F6E"
}
},
{
"Memo": {
"MemoData": "456E69676D61",
"MemoFormat": "746578742F706C61696E",
"MemoType": "417574686F72"
}
},
{
"Memo": {
"MemoData": "697066733A2F2F626166796265696779347869796C347A7062376C667474797832356E7A796E6F32647369766A777378657337376467336936356767796666637665",
"MemoFormat": "746578742F757269",
"MemoType": "5072696D617279557269"
}
}
]
},
"nft": {
"type": "xls14",
"description": "Ridworld86. Rarity: Rare Legend. Amount minted: 589 units. Ridworld® Collectible NFT Card Game. Illustrator: Web Artistic.",
"author": "Enigma",
"primaryUri": "ipfs://bafybeigy4xiyl4zpb7lfttyx25nzyno2dsivjwsxes77dg3i65ggyffcve",
"backupUri": null,
"image": null,
"data": null
}
},
"534F4C4F00000000000000000000000000000000": {
"type": "hex",
"currencyCode": "534F4C4F00000000000000000000000000000000",
"currency": "SOLO"
}
}
This endpoint retrieves information for a requested currencies (HEX or XLS-14 NFT).
HTTP Request
GET https://bithomp.com/api/v2/currencies
Query Parameters
Parameter | Description |
---|---|
currencyList | A list of currencies separated by comma (HEX or XLS-14 NFT) |
Get information of ALL
Services
curl "https://bithomp.com/api/v2/services"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/services", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/services");
print $data;
The above command returns JSON structured like this:
{
"total": 467,
"lastUpdate": 1579417546,
"services": [
{
"name": "Bithomp",
"domain": "bithomp.com",
"socialAccounts": {
"twitter": "bithomp",
"youtube": "channel/UCTvrMnG-Tpqi5FN9zO7GcWw",
"instagram": "bithomp"
},
"addresses": [
{
"address": "rsuUjfWxrACCAwGQDsNeZUhpzXf1n1NK5Z"
},
{
"address": "rnk3N5hHnLS6nWncNh2R4D2ATiuEicjxXo"
},
{
"address": "rhUYLd2aUiUVYkBZYwTc5RYgCAbNHAwkeZ",
"name": "Bithomp activation"
},
{
"address": "rBithomp3UNknnjo8HKNfyS5MN4kdPTZpW"
},
{
"address": "rBithomp4vj5E2kUebx7tVwipBueg55XxS",
"name": "Bithomp donations"
},
{
"address": "rBithompKtixswR4bknJqYaxnm7yRhGYFq",
"name": "Bithomp username"
},
{
"address": "rKontEGtDju5MCEJCwtrvTWQQqVAw5juXe",
"name": "Bithomp validator"
}
]
},
{
}
]
}
This endpoint retrieves a list of identified services.
HTTP Request
GET https://bithomp.com/api/v2/services
Response Format
Field | Value | Description |
---|---|---|
total | Integer | The amount of identified services. |
lastUpdate | Integer | UNIX timestamp of the last data update. |
services | Array | Array of services. |
services[].name | String | A name of a service. |
services[].domain | String | A domain of a service. |
services[].socialAccounts | Object | An object with social account of a service. (twitter, youtube, instagram, facebook, medium, telegram, linkedin, reddit) |
services[].addresses | Array | An array of service's addresses. Each address can have it's own (more specific) name, domain, socialAccounts. |
Addresses from Services
curl "https://bithomp.com/api/v2/services/addresses"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function getData(json) {
console.log(json)
}
bithompRequest("https://bithomp.com/api/v2/services/addresses", getData);
$data = curl_bithomp("https://bithomp.com/api/v2/services/addresses");
print $data;
The above command returns JSON structured like this:
{
"total": 1824,
"lastUpdate": 1579417546,
"addresses": {
"rPEPPER7kfTD9w2To4CQk6UCfuHM9c6GDY": {
"name": "XRP Tip Bot",
"domain": "xrptipbot.com",
"socialAccounts": {
"twitter": "xrptipbot"
}
},
"r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV": {
"name": "Ripple",
"domain": "ripple.com",
"socialAccounts": {
"twitter": "Ripple",
"facebook": "ripplepay",
"linkedin": "ripple-labs"
}
},
}
}
This endpoint retrieves a list of all identified service addresses.
HTTP Request
GET https://bithomp.com/api/v2/services/addresses
Response Format
Field | Value | Description |
---|---|---|
total | Integer | The amount of identified addresses. |
lastUpdate | Integer | UNIX timestamp of the last data update. |
addresses | Object | Object with identified addresses. |
addresses.ADDRESS.name | String | A name of the ADDRESS’s service. |
addresses.ADDRESS.domain | String | A domain of the ADDRESS’s service. |
addresses.ADDRESS.socialAccounts | Object | An object with social account of the ADDRESS’s service. (twitter, youtube, instagram, facebook, medium, telegram, linkedin, reddit) |
Transaction
Tx Decode
curl "https://bithomp.com/api/v2/transaction/decode/1200032280000000240000003241833237B8665D2F4E00135E8DE646589F68400000000000000C732103709723A5967EAAED571B71DB511D87FA44CC7CDDF827A37F457A25E14D862BCD74473045022100C6A6999BD33153C6A236D78438D1BFEEEC810CFE05D0E41339B577560C9143CA022074F07881F559F56593FF680049C12FC3BCBB0B73CE02338651522891D95886F981146078086881F39B191D63B528D914FEA7F8CA2293F9EA7C06636C69656E747D15426974686F6D7020746F6F6C20762E20302E302E337E0A706C61696E2F74657874E1F1"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function printData(json) {
console.log(JSON.stringify(json, undefined, 2));
}
bithompRequest("https://bithomp.com/api/v2/transaction/decode/1200032280000000240000003241833237B8665D2F4E00135E8DE646589F68400000000000000C732103709723A5967EAAED571B71DB511D87FA44CC7CDDF827A37F457A25E14D862BCD74473045022100C6A6999BD33153C6A236D78438D1BFEEEC810CFE05D0E41339B577560C9143CA022074F07881F559F56593FF680049C12FC3BCBB0B73CE02338651522891D95886F981146078086881F39B191D63B528D914FEA7F8CA2293F9EA7C06636C69656E747D15426974686F6D7020746F6F6C20762E20302E302E337E0A706C61696E2F74657874E1F1", printData);
$data = curl_bithomp("https://bithomp.com/api/v2/transaction/decode/1200032280000000240000003241833237B8665D2F4E00135E8DE646589F68400000000000000C732103709723A5967EAAED571B71DB511D87FA44CC7CDDF827A37F457A25E14D862BCD74473045022100C6A6999BD33153C6A236D78438D1BFEEEC810CFE05D0E41339B577560C9143CA022074F07881F559F56593FF680049C12FC3BCBB0B73CE02338651522891D95886F981146078086881F39B191D63B528D914FEA7F8CA2293F9EA7C06636C69656E747D15426974686F6D7020746F6F6C20762E20302E302E337E0A706C61696E2F74657874E1F1");
print $data;
The above command returns JSON structured like this:
{
"id": "9B124C14528ED14C0BDA17075A39B90ABED598B77A22DFEEBD913CAC07A513BC",
"signedTransaction": {
"TransactionType": "AccountSet",
"Flags": 2147483648,
"Sequence": 50,
"EmailHash": "833237B8665D2F4E00135E8DE646589F",
"Fee": "12",
"SigningPubKey": "03709723A5967EAAED571B71DB511D87FA44CC7CDDF827A37F457A25E14D862BCD",
"TxnSignature": "3045022100C6A6999BD33153C6A236D78438D1BFEEEC810CFE05D0E41339B577560C9143CA022074F07881F559F56593FF680049C12FC3BCBB0B73CE02338651522891D95886F9",
"Account": "r9onCSkYP2tYcukw2KUHMZ1Sn5YixQCgmN",
"Memos": [
{
"Memo": {
"MemoType": "636C69656E74",
"MemoData": "426974686F6D7020746F6F6C20762E20302E302E33",
"MemoFormat": "706C61696E2F74657874"
}
}
]
}
}
This endpoint decode a signed transaction.
Page on bithomp with the same decode function, but client-side:
https://bithomp.com/submit/
.
HTTP Request
GET https://bithomp.com/api/v2/transaction/decode/<blob>
URL Parameters
Parameter | Description |
---|---|
blob | A signed transaction blob to decode |
Tx Submit
curl -H "Content-Type: application/json"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
--request POST
--data '{"signedTransaction":"1200032280000000240000000368400000000000000C732103A71B44FD71C956C3CC0A540F2FBB577C4A300BC71244D86E4EB57220E58BFA26744730450221008D53E4188B39E8EF9953672B42C7ED3F7760F4B2FA51EC91A6EB0B693A6002B2022016384B9F552C75FD3BDE13C65E1CC3DA646AB10E3DD785EB2005620C6AF2C52B7710746573742E626974686F6D702E636F6D811485C536EFA7EAACCC51916E32FF720810A2226008F9EA7C06636C69656E747D16426974686F6D7020746F6F6C20762E20302E342E31317E0A706C61696E2F74657874E1F1","id":"BC35145B69F75FE5B41D6198D56203C2CFD2C1D968C09B09A37530CCB3AD2C6D"}'
https://bithomp.com/api/v2/transaction/submit/
$.ajax({
url: "https://bithomp.com/api/v2/transaction/submit/",
type: "POST",
contentType: "application/json",
headers: {
"x-bithomp-token": "abcd-abcd-0000-abcd-0123abcdabcd"
},
data: {
"signedTransaction": "1200032280000000240000000368400000000000000C732103A71B44FD71C956C3CC0A540F2FBB577C4A300BC71244D86E4EB57220E58BFA26744730450221008D53E4188B39E8EF9953672B42C7ED3F7760F4B2FA51EC91A6EB0B693A6002B2022016384B9F552C75FD3BDE13C65E1CC3DA646AB10E3DD785EB2005620C6AF2C52B7710746573742E626974686F6D702E636F6D811485C536EFA7EAACCC51916E32FF720810A2226008F9EA7C06636C69656E747D16426974686F6D7020746F6F6C20762E20302E342E31317E0A706C61696E2F74657874E1F1",
"id": "BC35145B69F75FE5B41D6198D56203C2CFD2C1D968C09B09A37530CCB3AD2C6D"
},
success: function(result) {
console.log(JSON.stringify(result, undefined, 2));
},
error: function(error) {
console.log(error);
}
});
The above command returns JSON structured like one of those:
{
"result": "tesSUCCESS",
"id": "BC35145B69F75FE5B41D6198D56203C2CFD2C1D968C09B09A37530CCB3AD2C6D"
}
{
"result": "terNO_ACCOUNT",
"message": "The source account does not exist.",
"id": "BC35145B69F75FE5B41D6198D56203C2CFD2C1D968C09B09A37530CCB3AD2C6D"
}
{
"result": "terPRE_SEQ",
"message": "Missing/inapplicable prior transaction.",
"id": "BC35145B69F75FE5B41D6198D56203C2CFD2C1D968C09B09A37530CCB3AD2C6D"
}
This endpoint returns a final status of a submitted transaction.
Page where it used on bithomp:
https://bithomp.com/explorer/?hwlogin
.
HTTP Request
POST https://bithomp.com/api/v2/transaction/submit
POST Parameters
Parameter | Description |
---|---|
id | (Optional) A calculated hash of the signed transaction |
signedTransaction | A blob of signed transaction to submit |
Historical data
Account Activations
curl "https://bithomp.com/api/v2/account-chart?span=month&period=year"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function printData(json) {
console.log(JSON.stringify(json, undefined, 2));
}
bithompRequest("https://bithomp.com/api/v2/account-chart?span=month&period=year", printData);
$data = curl_bithomp("https://bithomp.com/api/v2/account-chart?span=month&period=year");
print $data;
The above command returns JSON structured like this:
{
"span": "month",
"period": "year",
"chart": [
{
"time": "2023-10-31T23:59:59.999Z",
"activations": 100
},
{
"time": "2023-11-30T23:59:59.999Z",
"activations": 78
},
{
"time": "2023-12-31T23:59:59.999Z",
"activations": 33834
}
]
}
This endpoint returns data to draw a chart of account activations (available only on the Standard plan and higher).
Page where it used on bithomp:
https://bithomp.com/activations.
HTTP Request
GET https://bithomp.com/api/v2/account-chart
Response Format
Field | Value | Description |
---|---|---|
period | all |
A time period, all time all , last hour hour , last 24h day , last 7 days week , last 30 days month , last 365 days year or as timestamps from..to, examples: 1671490800000..1671663600000 or 2022-12-20T00:00:00.000Z..2022-12-22T00:00:00.000Z |
span | null | A time span for the chart, can be minute , hour , day , month , year , not all spans are available for large periods, for a period hour you can have minute , for periods up to 60 hours, you can have hour , day , month , for up to 60 days - day , month . |
Genesis
curl "https://bithomp.com/api/v2/genesis"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function printData(json) {
console.log(JSON.stringify(json, undefined, 2));
}
bithompRequest("https://bithomp.com/api/v2/genesis", printData);
$data = curl_bithomp("https://bithomp.com/api/v2/genesis");
print $data;
The above command returns JSON structured like this:
{
"count": 136,
"inception": 1357010470,
"ledger_index": 32570,
"genesis_balance_all": 99999999999.99632,
"balance_all": 483189349.682485,
"balance_update": 1578499794,
"genesis": [
{
"address": "rBKPS4oLSaV2KVVuHH8EpQqMGgGefGFQs7",
"genesis_balance": 370,
"genesis_index": 1,
"balance": 20.009958
},
{
"address": "rLs1MzkFWCxTbuAHgjeTZK4fcCDDnf2KRv",
"genesis_balance": 10000,
"genesis_index": 2,
"rippletrade": "leotreasure",
"balance": 4507.158497
},
{
}
]
}
This endpoint retrieves a list of addresses from the first available ledger in XRPL history.
Page where it used on bithomp:
https://bithomp.com/genesis.
HTTP Request
GET https://bithomp.com/api/v2/genesis
Response Format
Field | Value | Description |
---|---|---|
count | Integer | The amount of returned addresses. |
inception | Integer | Inception UNIX timestamp. |
ledger_index | Integer | Ledger index (the first available in history). |
genesis_balance_all | Float | Sum of all balances in the ledger_index. |
balance_all | Float | Sum of balances of those addresses on the balance_update time. |
balance_update | Integer | UNIX timestamp of the last update of balances. |
genesis | Array | Array of addresses in ledger_index. |
genesis[].address | String | Address |
genesis[].genesis_balance | Float | XRP balance on that genesis[].address on the time of inception. |
genesis[].genesis_index | Integer | Index of the address in the ledger_index. |
genesis[].rippletrade | String | Username that genesis[].address used on rippletrade.com. |
genesis[].nickname | String | Username that genesis[].address used on bitcointalk.org or assign by Ripple (X.). |
genesis[].balance | Float | XRP balance on that genesis[].address on the time of balance_update. |
History of XRP price alerts
curl "https://bithomp.com/api/v2/price/xrp/alerts"
-H "x-bithomp-token: abcd-abcd-0000-abcd-0123abcdabcd"
function printData(json) {
console.log(JSON.stringify(json, undefined, 2));
}
bithompRequest("https://bithomp.com/api/v2/price/xrp/alerts", printData);
$data = curl_bithomp("https://bithomp.com/api/v2/price/xrp/alerts");
print $data;
The above command returns JSON structured like this:
{
"count": 50,
"timestamp": 1578748266,
"alerts": [
{
"currency": "btc",
"change": "-10.07%",
"timestamp_old": 1578344400,
"timestamp_new": 1578415200,
"rate_old": 0.00002959,
"rate_new": 0.00002661
},
{
"currency": "btc",
"change": "+10.02%",
"timestamp_old": 1578297600,
"timestamp_new": 1578327600,
"rate_old": 0.00002616,
"rate_new": 0.00002878
},
{
}
]
}
This endpoint retrieves a list of our XRP price alerts.
Page where it used on bithomp:
https://bithomp.com/alerts.
HTTP Request
GET https://bithomp.com/api/v2/price/xrp/alerts
Response Format
Field | Value | Description |
---|---|---|
count | Integer The amount of returned alert records. | |
timestamp | Integer | UNIX timestamp for a request. |
alerts | Array | Array of alert records. |
genesis[].currency | String | Currency (in XRP/currency pair). |
genesis[].change | String | Price change percentage (ex.: +10.24%). |
genesis[].timestamp_old | Integer | Unix timestamp in seconds for the price: genesis[].rate_old. |
genesis[].timestamp_new | Integer | Unix timestamp in seconds for the price: genesis[].rate_new. |
genesis[].rate_old | Float | The price at genesis[].timestamp_old. |
genesis[].rate_new | Float | The price at genesis[].timestamp_new. |
Errors
The Bithomp API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request -- Your request is invalid. |
401 | Unauthorized -- Your API key is wrong. |
403 | Forbidden -- The requested data not allowed for your API key. |
404 | Not Found -- The data not found. |
405 | Method Not Allowed -- You tried to access API endpoint with an invalid method. |
406 | Not Acceptable -- You requested a format that isn't json. |
410 | Gone -- The data requested has been removed from our servers. |
418 | I'm a teapot. |
429 | Too Many Requests -- You're requesting too often! Slow down! |
500 | Internal Server Error -- We had a problem with our server. Try again later. |
503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |