BRC20 Marketplace
Start time range
End time range
Time granularity, such as milliseconds for a 5-minute interval
POST /v3/market/brc20/auction/brc20_kline HTTP/1.1
Host: open-api.unisat.io
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 54
{
"tick": "text",
"timeStart": 1,
"timeEnd": 1,
"timeStep": 1
}
Default Response
{
"code": 1,
"msg": "text",
"data": [
{
"price": 1,
"timestamp": 1
}
]
}
Parameter Description
tick
: BRC-20 ticktimeStart
: The starting timestamp, measured in milliseconds.timeEnd
: The ending timestamp, measured in milliseconds.timeStep
: Represents the interval between each data point, measured in milliseconds.
Additionally, there are the following limitations on the requested parameters.
(timeEnd-timeStart)/timeStep <= 2016
Optional: day1, day7, day30
Specify a list of ticks
POST /v3/market/brc20/auction/brc20_types HTTP/1.1
Host: open-api.unisat.io
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 56
{
"timeType": "day1",
"ticks": [
"text"
],
"start": 1,
"limit": 1
}
Default Response
{
"code": 1,
"msg": "text",
"data": {
"BTCPrice": 1,
"list": [
{
"tick": "text",
"curPrice": 1,
"changePrice": 1,
"btcVolume": 1,
"amountVolume": 1,
"cap": "text"
}
],
"deploy": [
{
"tick": "text",
"curPrice": 1,
"changePrice": 1,
"btcVolume": 1,
"amountVolume": 1,
"cap": "text"
}
],
"cap": [
{
"tick": "text",
"curPrice": 1,
"changePrice": 1,
"btcVolume": 1,
"amountVolume": 1,
"cap": "text"
}
]
}
}
The optional values for timeType
are day1
, day7
, day30
.
ticks
can be used to filter the "list," allowing it to return only the ticks that are needed.If the ticks
field is not provided, all BRC20 data will be returned.
In the returned fields of this interface, only the "list" field needs attention. The "deploy" and "cap" fields are included solely for display purposes on certain pages of UniSat Marketplace. Filtering the fields will not affect "deploy" and "cap"; they will always be returned.


POST /v3/market/brc20/auction/brc20_types_specified HTTP/1.1
Host: open-api.unisat.io
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 33
{
"timeType": "day1",
"tick": "text"
}
Default Response
{
"code": 1,
"msg": "text",
"data": {
"tick": "text",
"curPrice": 1,
"changePrice": 1,
"btcVolume": 1,
"amountVolume": 1
}
}
The optional values for timeType
are day1
, day7
, day30
POST /v3/market/brc20/auction/bind HTTP/1.1
Host: open-api.unisat.io
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 55
{
"btcAddress": "text",
"nftAddress": "text",
"sign": "text"
}
Default Response
{
"code": 1,
"msg": "text",
"data": {}
}
By default, a user's address A is used for both payment and receiving inscriptions. However, for some wallets, such as the xverse and hiro wallets, different addresses are used to store BTC and inscriptions. This method allows the wallet to use address A for payments and address B for receiving inscriptions.
import {signMessage} from "sats-connect"
const paymentAddress = "";
const ordinalsAddress = "";
const toSignStr = `Please confirm that\nPayment Address: ${paymentAddress}\nOrdinals Address: ${ordinalsAddress}`
// for xverse
signMessage({
payload:{
address: ordinalsAddress,
message: toSignStr,
network:{
type: "Mainnet"
}
},
onFinish:(signature)=>{
axios.post('/v3/market/brc20/auction/bind', {
btcAddress: paymentAddress,
nftAddress: ordinalsAddress,
sign:signature
})
}
}
The data is looked up from start
Limit the amount of data
POST /v3/market/brc20/auction/list HTTP/1.1
Host: open-api.unisat.io
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 223
{
"filter": {
"nftType": "brc20",
"address": "text",
"tick": "text",
"minPrice": 1,
"maxPrice": 1,
"nftConfirm": true,
"isEnd": true,
"all": true
},
"sort": {
"unitPrice": 1,
"onSaleTime": 1,
"initPrice": 1,
"inscriptionNumber": 1
},
"start": 1,
"limit": 1
}
Default Response
{
"code": 1,
"msg": "text",
"data": {
"list": [
{
"auctionId": "text",
"inscriptionId": "text",
"inscriptionNumber": 1,
"marketType": "text",
"address": "text",
"price": 1,
"nftType": "text",
"tick": "text",
"limit": 1,
"amount": 1,
"unitPrice": 1
}
],
"total": 1,
"timestamp": 1
}
}
Retrieve inscription information, including brc20, names, collection. It is necessary to first determine the inscription type before calling the relevant services.
POST /v3/market/brc20/auction/inscription_info HTTP/1.1
Host: open-api.unisat.io
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 24
{
"inscriptionId": "text"
}
Default Response
{
"code": 1,
"msg": "text",
"data": {
"auctionId": "text",
"inscriptionId": "text",
"inscriptionNumber": 1,
"marketType": "fixedPrice",
"address": "text",
"price": 1,
"notSupport": true,
"verification": true,
"nftType": "text",
"tick": "text",
"limit": 1,
"amount": 1,
"unitPrice": 1,
"collectionId": "text",
"contentType": "text",
"contentBody": "text",
"collectionItemName": "text",
"collectionHighResImgUrl": "text",
"collectionName": "text",
"notOnSale": true,
"domain": "text",
"domainHex": "text",
"domainType": "sats",
"utxo": {}
}
}

POST /v3/market/brc20/auction/inscription_info_list HTTP/1.1
Host: open-api.unisat.io
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 44
{
"address": "text",
"inscriptionIds": [
"text"
]
}
Default Response
{
"code": 1,
"msg": "text",
"data": {
"list": [
{
"auctionId": "text",
"inscriptionId": "text",
"inscriptionNumber": 1,
"marketType": "text",
"address": "text",
"price": 1,
"nftType": "text",
"status": "text"
}
]
}
}
POST /v3/market/brc20/auction/actions HTTP/1.1
Host: open-api.unisat.io
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 121
{
"filter": {
"nftType": "brc20",
"address": "text",
"inscriptionId": "text",
"event": "Cancel",
"tick": "text"
},
"start": 1,
"limit": 1
}
Default Response
{
"code": 1,
"msg": "text",
"data": {
"list": [
{
"auctionId": "text",
"inscriptionId": "text",
"inscriptionNumber": 1,
"event": "Listed",
"price": 1,
"from": "text",
"to": "text",
"timestamp": 1,
"nftConfirmNum": 1,
"nftType": "brc20",
"endMsg": "text",
"newest": true,
"name": "text",
"unitPrice": 1,
"amount": 1,
"domain": "text",
"domainType": "sats",
"domainCategorys": [
"Keyboard"
],
"collectionId": "text",
"collectionItemName": "text",
"contentType": "text",
"contentBody": "text",
"attributes": [
{
"trait_type": "text",
"value": "text"
}
]
}
],
"total": 1
}
}
Set the initial total price
Unit Price (for tick)
User public key
fixedPrice
Possible values: (Optional) Only for multi-address wallet, such as Xverse, hiro. Specifies the BTC receive address
POST /v3/market/brc20/auction/create_put_on HTTP/1.1
Host: open-api.unisat.io
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 141
{
"nftType": "text",
"inscriptionId": "text",
"initPrice": "text",
"unitPrice": "text",
"pubkey": "text",
"marketType": "fixedPrice",
"btcAddress": "text"
}
Default Response
{
"code": 1,
"msg": "text",
"data": {
"auctionId": "text",
"psbt": "text",
"signIndexes": [
1
]
}
}

btcAddress: (Optional) Only for multi-address wallet, such as Xverse, hiro. To specifies the BTC receive address
Is Base64 format, the default is hex format
POST /v3/market/brc20/auction/confirm_put_on HTTP/1.1
Host: open-api.unisat.io
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 52
{
"auctionId": "text",
"psbt": "text",
"fromBase64": true
}
Default Response
{
"code": 1,
"msg": "text",
"data": {}
}
Bidder address
Bidder pubkey
POST /v3/market/brc20/auction/create_bid_prepare HTTP/1.1
Host: open-api.unisat.io
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 66
{
"auctionId": "text",
"bidPrice": 1,
"address": "text",
"pubkey": "text"
}
Default Response
{
"code": 1,
"msg": "text",
"data": {
"serverFee": 1,
"serverReal": 1,
"serverFeeRate": 1,
"txSize": 1,
"nftValue": 1,
"feeRate": 1,
"availableBalance": 1,
"allBalance": 1
}
}
serverFee: Service Fee
serverReal: The service fee after deducting various discounts.
serverFeeRate: Service fee rate
txSzie: The virtual size of this transaction.
nftValue: Satoshis in the inscription
feeRate: The current accepted minimum network fee rate.
availableBalance:BTC balance available for constructing transactions."
Bidder address
Bidder pubkey
The user sets the rate
(Optional) Only for multi-address wallet, such as Xverse, hiro. Inscription receiving address
POST /v3/market/brc20/auction/create_bid HTTP/1.1
Host: open-api.unisat.io
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 134
{
"auctionId": "text",
"bidPrice": 1,
"address": "text",
"pubkey": "text",
"feeRate": 1,
"nftAddress": "text",
"utxos": [
{
"txid": "text",
"index": 1
}
]
}
Default Response
{
"code": 1,
"msg": "text",
"data": {
"bidId": "text",
"psbtBid": "text",
"psbtBid2": "text",
"psbtSettle": "text",
"serverFee": 1,
"networkFee": 1,
"feeRate": 1,
"nftValue": 1,
"bidSignIndexes": [
1
]
}
}
Auction mode is used, and the current empty string can be passed
Auction mode is used, and the current empty string can be passed
Is Base64 format, the default is hex format
POST /v3/market/brc20/auction/confirm_bid HTTP/1.1
Host: open-api.unisat.io
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 108
{
"auctionId": "text",
"bidId": "text",
"psbtBid": "text",
"psbtBid2": "text",
"psbtSettle": "text",
"fromBase64": true
}
Default Response
{
"code": 1,
"msg": "text",
"data": {
"txid": "text"
}
}
(Optional) Only for multi-address wallet, such as Xverse, hiro. Inscription receiving address.
(Optional) Only for multi-address wallet, such as Xverse, hiro. The public key used in the inscription of the order.
POST /v3/market/brc20/auction/create_put_off HTTP/1.1
Host: open-api.unisat.io
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 122
{
"auctionId": "text",
"nftAddress": "text",
"btcPubkey": "text",
"utxos": [
{
"txid": "text",
"index": 1
}
],
"rbf": true,
"offChain": true
}
Default Response
{
"code": 1,
"msg": "text",
"data": {
"psbt": "text",
"txSize": 1,
"btcSignIndexes": [
1
],
"nftSignIndexes": [
1
]
}
}
Is Base64 format, the default is hex format
POST /v3/market/brc20/auction/confirm_put_off HTTP/1.1
Host: open-api.unisat.io
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 68
{
"auctionId": "text",
"psbt": "text",
"fromBase64": true,
"offChain": true
}
Default Response
{
"code": 1,
"msg": "text",
"data": {
"txid": "text"
}
}
POST /v3/market/brc20/auction/create_modify_price HTTP/1.1
Host: open-api.unisat.io
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 58
{
"auctionId": "text",
"initPrice": "text",
"unitPrice": "text"
}
Default Response
{
"code": 1,
"msg": "text",
"data": {
"psbt": "text",
"signIndexes": [
1
]
}
}
POST /v3/market/brc20/auction/confirm_modify_price HTTP/1.1
Host: open-api.unisat.io
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 52
{
"auctionId": "text",
"psbt": "text",
"fromBase64": true
}
Default Response
{
"code": 1,
"msg": "text",
"data": {}
}
Last updated