This endpoint can be used to delete an ordinal listing from the marketplace. Deleting a listing requires the seller to create a transaction by calling /delist
sign the transaction and then need to send the signed transaction by making a call to /confirm-delist
, the signed transaction transfers the ordinal to the seller so that the original ordinal UTXO is consumed and not valid anymore. This is to ensure that the old, signed transaction cannot be used anymore to buy the ordinal.
Copy // XVerse Wallet example of delete a listing request
// Create the delete listing PSBT by calling /marketplace/delist API
// This returns a base64 PSBT, sender ordinal and payment inputs which needs to be signed
const { psbtBase64, senderOrdinalInputs, senderPaymentInputs } = await axios({
method: "post",
url: "https://api.ordinalsbot.com/marketplace/delist",
data: {
ordinalId, //ordinal id to be deleted from listing
senderPaymentAddress,
senderPaymentPublicKey,
},
headers: {
"x-api-key": API_KEY,
},
});
// input to sign
const inputsToSign = [
{
address: ordinalsAddress, // Seller's ordinal wallet address
signingIndexes: senderOrdinalInputs,
sigHash: bitcoin.Transaction.SIGHASH_ALL,
},
{
address: senderPaymentAddress, // Seller's ordinal wallet address
signingIndexes: senderPaymentInputs,
sigHash: bitcoin.Transaction.SIGHASH_ALL,
},
];
// Create the payload for signing the seller transaction
const payload = {
network: { type: "Mainnet" },
message: "Sign Seller Transaction",
psbtBase64: psbtBase64, // PSBT returned by the delist API
broadcast: true,
inputsToSign: inputsToSign,
};
// Make signing request
await signTransaction({
payload,
onFinish: async (response) => {
try {
// make a call to /confirm-delist
await axios({
method: "post",
url: "https://api.ordinalsbot.com/marketplace/confirm-delist",
data: {
ordinalId,
sellerPaymentAddress: senderPaymentAddress,
},
headers: {
"x-api-key": API_KEY,
},
});
console.error('Signed transaction id:', {response?.txId})
} catch (error) {
console.error('Error delisted ordinal:', error)
}
},
onCancel: () => {
/* User cancelled signing request */
},
});
200: OK 500: Internal Server Error
Copy
{
"psbtBase64" : "cHNidP8BA............z730AAAAAAAAAAA==" ,
"senderOrdinalInputs" : [ 0 ] ,
"senderPaymentInputs" : [ 1 ]
}
Copy {
status : 'error' ,
error : 'error reason'
}