Save listing
Save listing is part of the create listing process. create-listing end point returns a psbt which is signed by the client wallet, once signed the signed psbt needs to be saved in the listing database by calling /save-listing end point.
Here's an example of how you can sign a listing transaction with the Xverse wallet and then save it by calling /save-listing:
// XVerse Wallet example of creating a signing request
// when listing an Ordinal for sale
const sellerInput = {
address: ordinalsAddress, // Seller's ordinal wallet address
signingIndexes: [0], // always [0] when listing
// Specify sigHash type as SIGHASH_SINGLE | SIGHASH_ANYONECANPAY
sigHash: bitcoin.Transaction.SIGHASH_SINGLE | bitcoin.Transaction.SIGHASH_ANYONECANPAY,
};
// Create the listing PSBT by calling /marketplace/create-listing API
// This returns a base64 PSBT in string format which needs to be signed
const { data } = await axios({
method: 'post'
url: 'https://api.ordinalsbot.com/marketplace/create-listing',
data: {
sellerOrdinals
sellerPaymentAddress,
sellerOrdinalPublicKey
},
headers: {
'x-api-key': API_KEY,
});
// When using XVerse Wallet
// Create the payload for signing the seller transaction
const payload = {
network: { type: "Mainnet" },
message: "Sign Seller Transaction",
psbtBase64: data.psbt, // PSBT returned by the clear-listing API
broadcast: false,
inputsToSign: [sellerInput],
};
// Make signing request
await signTransaction({
payload,
onFinish: async (response) => {
try {
// signed succesffully
// Save the listing with the signed PSBT
const updateListingData = {
signedListingPSBT: response.psbtBase64,
};
// Save the listing PSBT by calling /marketplace/save-listing API
// This returns a base64 PSBT in string format which needs to be signed
const saveResponse= await axios({
method: 'patch'
url: 'https://api.ordinalsbot.com/marketplace/save-listing' + sellerOrdinals[0].id,
data: {
sellerOrdinals: [sellerOrdinals[0].id],
updateListingData
},
headers: {
'x-api-key': API_KEY,
}
});
} catch (Error) {
// error handling
}
},
onCancel: () => { // User cancelled signing request }
});
POST
Save listing data for ordinal
POST
Save listing data for ordinalSave listing details
POST
https://api.ordinalsbot.com/marketplace/save-listing/
API Key is required in the header:
headers: { 'x-api-key': '<YOUR_API_KEY>', ...otherHeaders }
Request Body
updateListingData*
Object
json object with a string signedListingPSBT. Ex:
{ sellerOrdinals: ["0c9...ai0"],
updateListingData: {
signedListingPSBT:
"cHNidP8...AAA"
}
}
sellerOrdinals*
Array
Array of ordinal Ids. The ids should be the same as ordinals ids used with /create-listing endpoint
{
"_id": "7354826c46a5856b972795d7",
"ordinalId": "8dc4e.....6ce70260i0",
"price": 12345,
"sellerPaymentAddress": "3Ny......yc4q",
"sellerOrdinalPublicKey": "4fa4.....118fad4e476541",
"status": "Active",
"sellerOutputValue": 21111,
"ordinalUtxoTxId": "3362....61449ef",
"ordinalUtxoVout": 0,
"marketPlaceMakerFee": 0,
"marketPlaceTakerFee": 0,
"platformMakerFee": 1000,
"platformTakerFee": 1000,
"signedListingPSBT": "cHNid......1rARj61OR2VBAAA="
}
Last updated