# IBitcoinWallet

Defined in: [atomiq-sdk/src/bitcoin/wallet/IBitcoinWallet.ts:26](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/bitcoin/wallet/IBitcoinWallet.ts#L26)

Interface to be implemented by Bitcoin wallets

## Methods

### fundPsbt()

```
fundPsbt(psbt, feeRate?): Promise<Transaction>;
```

Defined in: [atomiq-sdk/src/bitcoin/wallet/IBitcoinWallet.ts:43](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/bitcoin/wallet/IBitcoinWallet.ts#L43)

Funds (populates the inputs) for a given PSBT from wallet's UTXO set

#### Parameters

| Parameter  | Type          | Description                                             |
| ---------- | ------------- | ------------------------------------------------------- |
| `psbt`     | `Transaction` | PSBT to add the inputs to                               |
| `feeRate?` | `number`      | Optional fee rate in sats/vB to use for the transaction |

#### Returns

`Promise`<`Transaction`>

***

### getBalance()

```
getBalance(): Promise<{

  confirmedBalance: bigint;

  unconfirmedBalance: bigint;

}>;
```

Defined in: [atomiq-sdk/src/bitcoin/wallet/IBitcoinWallet.ts:83](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/bitcoin/wallet/IBitcoinWallet.ts#L83)

Returns confirmed and unconfirmed balance in satoshis of the wallet

#### Returns

`Promise`<{ `confirmedBalance`: `bigint`; `unconfirmedBalance`: `bigint`; }>

***

### getFeeRate()

```
getFeeRate(): Promise<number>;
```

Defined in: [atomiq-sdk/src/bitcoin/wallet/IBitcoinWallet.ts:56](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/bitcoin/wallet/IBitcoinWallet.ts#L56)

Returns the current fee rate in sats/vB

#### Returns

`Promise`<`number`>

***

### getFundedPsbtFee()

```
getFundedPsbtFee(psbt, feeRate?): Promise<number>;
```

Defined in: [atomiq-sdk/src/bitcoin/wallet/IBitcoinWallet.ts:73](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/bitcoin/wallet/IBitcoinWallet.ts#L73)

Estimates a total fee in satoshis for a given transaction as identified by the PSBT

#### Parameters

| Parameter  | Type          | Description                                                                              |
| ---------- | ------------- | ---------------------------------------------------------------------------------------- |
| `psbt`     | `Transaction` | A PSBT to which additional inputs from wallet's UTXO set will be added and fee estimated |
| `feeRate?` | `number`      | Optional fee rate in sats/vB to use for the transaction                                  |

#### Returns

`Promise`<`number`>

***

### getReceiveAddress()

```
getReceiveAddress(): string;
```

Defined in: [atomiq-sdk/src/bitcoin/wallet/IBitcoinWallet.ts:78](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/bitcoin/wallet/IBitcoinWallet.ts#L78)

Returns the bitcoin address suitable for receiving funds

#### Returns

`string`

***

### getSpendableBalance()

```
getSpendableBalance(psbt?, feeRate?): Promise<{

  balance: bigint;

  feeRate: number;

  totalFee: number;

}>;
```

Defined in: [atomiq-sdk/src/bitcoin/wallet/IBitcoinWallet.ts:94](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/bitcoin/wallet/IBitcoinWallet.ts#L94)

Returns the maximum spendable balance in satoshis given a specific PSBT that should be funded

#### Parameters

| Parameter  | Type          | Description                                                                              |
| ---------- | ------------- | ---------------------------------------------------------------------------------------- |
| `psbt?`    | `Transaction` | A PSBT to which additional inputs from wallet's UTXO set will be added and fee estimated |
| `feeRate?` | `number`      | Optional fee rate in sats/vB to use for the transaction                                  |

#### Returns

`Promise`<{ `balance`: `bigint`; `feeRate`: `number`; `totalFee`: `number`; }>

***

### getTransactionFee()

```
getTransactionFee(

   address, 

   amount, 

feeRate?): Promise<number>;
```

Defined in: [atomiq-sdk/src/bitcoin/wallet/IBitcoinWallet.ts:65](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/bitcoin/wallet/IBitcoinWallet.ts#L65)

Estimates a total fee in satoshis for a given transaction

#### Parameters

| Parameter  | Type     | Description                                             |
| ---------- | -------- | ------------------------------------------------------- |
| `address`  | `string` | Destination address of the transaction                  |
| `amount`   | `bigint` | Amount of satoshis to send (1 BTC = 100,000,000 sats)   |
| `feeRate?` | `number` | Optional fee rate in sats/vB to use for the transaction |

#### Returns

`Promise`<`number`>

***

### sendTransaction()

```
sendTransaction(

   address, 

   amount, 

feeRate?): Promise<string>;
```

Defined in: [atomiq-sdk/src/bitcoin/wallet/IBitcoinWallet.ts:35](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/bitcoin/wallet/IBitcoinWallet.ts#L35)

Signs and broadcasts a transaction sending `amount` of sats to `address`, optionally with the `feeRate` sats/vB fee rate.

#### Parameters

| Parameter  | Type     | Description                                             |
| ---------- | -------- | ------------------------------------------------------- |
| `address`  | `string` | Destination address of the transaction                  |
| `amount`   | `bigint` | Amount of satoshis to send (1 BTC = 100,000,000 sats)   |
| `feeRate?` | `number` | Optional fee rate in sats/vB to use for the transaction |

#### Returns

`Promise`<`string`>

***

### signPsbt()

```
signPsbt(psbt, signInputs): Promise<Transaction>;
```

Defined in: [atomiq-sdk/src/bitcoin/wallet/IBitcoinWallet.ts:51](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/bitcoin/wallet/IBitcoinWallet.ts#L51)

Signs inputs in the provided PSBT

#### Parameters

| Parameter    | Type          | Description                   |
| ------------ | ------------- | ----------------------------- |
| `psbt`       | `Transaction` | A PSBT to sign                |
| `signInputs` | `number`\[]   | Indices of the inputs to sign |

#### Returns

`Promise`<`Transaction`>
