# Transaction Accelerator

## Creating a CPFP PSBT

{% hint style="warning" %}
This service is highly experimental.&#x20;

Make sure to **carefully review any transactions you are signing** in order to avoid unexpected consequences. Most wallets show the inputs & outputs of a PSBT before you sign them.

Parameters and fees are subject to change.

Currently limited to taproot outputs only.

This service is ideal to bump fee of a [reveal transaction](https://docs.ordinals.com/inscriptions.html#inscriptions).
{% endhint %}

Use this endpoint to create a trustless CPFP (Child pays for parent) transaction to speed up your stuck output.

## Create CPFP PSBT

<mark style="color:green;">`POST`</mark> `https://api.ordinalsbot.com/cpfp`

Create a child transaction that pays extra fees for a stuck ancestor.

#### Request Body

| Name                                                    | Type   | Description                                                                                                                                                                                   |
| ------------------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| utxos<mark style="color:red;">\*</mark>                 | Array  | <p>Array of transaction outputs to be accelerated in the following format</p><p><code>\[ "430901147831e41111aced3895ee4b9742cf72ac3cffa132624bd38c551ef379:0"</code></p><p><code>]</code></p> |
| buyerPaymentAddress<mark style="color:red;">\*</mark>   | String | Bitcoin payment address where extra fees will be paid from.                                                                                                                                   |
| buyerPaymentPublicKey<mark style="color:red;">\*</mark> | String | Bitcoin payment public key where extra fees will be paid from.                                                                                                                                |
| buyerOrdinalAddress<mark style="color:red;">\*</mark>   | String | Ordinals address where stuck inscription is destined for and will be sent to.                                                                                                                 |
| buyerOrdinalPublicKey<mark style="color:red;">\*</mark> | String | Ordinals public key where stuck inscription is destined for and will be sent to.                                                                                                              |
| feeRate<mark style="color:red;">\*</mark>               | Number | Target Fee rate that stuck transaction should be bumped to in sats/vB                                                                                                                         |

{% tabs %}
{% tab title="200: OK Normal Response" %}

```json
{
    // PSBT to be signed and published by user's wallet
    "psbt": "cHNi...AAAAA",
    // same PSBT in hex format (for leather wallet)
    "hex": "70736274ff01...47dc200000000",
    // input indices user will need to sign to create the transaction
    "buyerInputIndices": [
        0, 
        1
    ]
}
```

{% endtab %}

{% tab title="200: OK Error Response with Cause" %}

```
{
    status: 'error', 
    error: 'error reason'
}
```

{% endtab %}

{% tab title="500: Internal Server Error Server side error" %}

```
{
    status: 'error',
    reason: 'unable to check data'
}
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Get in touch for any feedback regarding this service in **#developers** channel on our discord: [https://discord.ordinalsbot.com](https://discord.ordinalsbot.com/)
{% endhint %}
