# Wallet API

extensionWelcome to Wizz Wallet Developer Documentation. This documentation is for learning to develop applications for Wizz Wallet.

## Getting Started

To develop for Wizz Wallet, install Wizz Wallet on your development machine. [Download here](https://wizzwallet.io/).

Once Wizz Wallet is installed and running, you should find that new browser tabs have a `window.wizz` object available in the developer console. This is how your website will interact with Wizz Wallet.

## Example

* Github: [Click](https://github.com/WizzWallet/wizzwallet-provider-demo)
* Online demo: [Click](https://wizzwallet-provider-demo.vercel.app/)

### **Browser Detection**

To verify if the browser is running Wizz Wallet, copy and paste the code snippet below in the developer console of your web browser:

```jsx
if (typeof window.wizz !== 'undefined') {
    console.log('Wizz Wallet is installed!');
}
```

You can review the full API for the `window.wizz` object here.

### **Connecting to Wizz Wallet**

"Connecting" or "logging in" to Wizz Wallet effectively means "to access the user's Bitcoin account(s)".

You should **only** initiate a connection request in response to guide user action, such as clicking a button. You should **always** disable the "connect" button while the connection request is pending. You should **never** initiate a connection request on page load.

We recommend that you provide a button to allow the user to connect Wizz Wallet to your dapp. Clicking this button should call the following method:

```jsx
wizz.requestAccounts()
```

##

## Methods

### **requestAccounts**

```jsx
wizz.requestAccounts()
```

Connect the current account.

**Parameters**

none

**Returns**

`Promise` returns `string[]` : Address of current account.

**Example**

```jsx
try {
  let accounts = await window.wizz.requestAccounts();
  console.log('connect success', accounts);
} catch (e) {
  console.log('connect failed');
}
> connect success ['tb1qrn7tvhdf6wnh790384ahj56u0xaa0kqgautnnz']
```

### isBiHelixAddress

Check whether the connected address is BiHelix address.

```typescript
wizz.isBiHelixAddress();
```

#### Returns

**`Promise<boolean>`** - Whether the the connected address is BiHelix address.

#### Example

```typescript
wizz.isBiHelixAddress().then((v) => {
  console.log('isBiHelixAddress:', v);
}).catch((e) => {
  console.error('error:', e);
});
```

### requestCPFP

Create a `CPFP` acceleration request. (Requires extension version >= 2.9.1) (Extension only)

```typescript
wizz.requestCPFP('52c965f7...d854800');
```

#### Parameters

**`txid`** - **`string`** - The transaction ID of the transaction to be accelerated.

#### Returns

**`Promise<string>`** - The transaction ID of the acceleration transaction.

#### Example

```typescript
wizz.requestCPFP('52c965f7...d854800').then((txid) => {
  console.log('CPFP txid:', txid);
}).catch((e) => {
  console.error('CPFP error:', e);
});
```

### requestMint

```jsx
wizz.requestMint()
```

Sends a request to mint various types of digital assets.

**Parameters**

* **`options`** - **`RequestMintParams`**: The options for the minting request, which vary based on the type of asset being minted. It is an object that can have different properties depending on the **`type`** field.

  * **`type`** - **`string`**: Specifies the type of minting operation. Possible values are **`'mint_arc20'`**, **`'mint_nft'`**, **`'mint_realm'`**, **`'mint_container'`**, and **`'mint_dmitem'`**.

  For **`'mint_arc20'`** type:

  * **`atomicalId`** - **`string`** (optional): the atomical ID of the ARC20 to be minted.

  For **`'mint_nft'`** type:

  * **`fileBytes`** - **`Uint8Array`** (optional): The file content in bytes.
  * **`fileName`** - **`string`** (optional): The name of the file.
  * **`contentType`** - **`string`** (optional): The MIME type of the file.
  * **`bitworkc`** - **`string`** (optional): the mining difficulty for commit transaction, must be hex with a single optional *. dot* separated with a number of 1 to 15 with no more than 10 hex characters. Example: 0123 or 3456.12. Length between 4-10 digits.
  * **`bitworkr`** - **`string`** (optional): the mining difficulty for reveal transaction, must be hex with a single optional *. dot* separated with a number of 1 to 15 with no more than 10 hex characters. Example: 0123 or 3456.12. Length between 4-10 digits.
  * **`satsIn`** - **`number`** (optional): sats in nft.

  For **`'mint_dmitem'`** type:

  * **`atomicalId`** - **`string`** (optional): the ID of the container to be minted.
  * **`dmitem`** - **`Record<string,any>:`** dmitem json file
  * **`satsIn`** - **`number`** (optional): sats in dmitem.

  For **`'mint_realm'`**, type:

  * **`bitworkc`** - **`string`** (optional): the mining difficulty for commit transaction, must be hex with a single optional *. dot* separated with a number of 1 to 15 with no more than 10 hex characters. Example: 0123 or 3456.12. Length between 4-10 digits.
  * **`satsIn`** - **`number`** (optional): sats in realm.

  For **`'mint_subrealm'`**, type:

  * **`satsIn`** - **`number`** (optional): sats in subrealm.

  For **`'mint_container‘`** type:

  * **`bitworkc`** - **`string`** (optional): the mining difficulty for commit transaction, must be hex with a single optional *. dot* separated with a number of 1 to 15 with no more than 10 hex characters. Example: 0123 or 3456.12. Length between 4-10 digits.
  * **`satsIn`** - **`number`** (optional): sats in container.

**Returns**

* `Promise` - `void`:

**Examples**

```jsx
//mintArc20
wizz.requestMint({
  type: 'mint_arc20',
  atomicalId: '9527290d5f28479fa752f3eb9484ccbc5a951e2b2b5a49870318683e188e357ei0' 
}).catch(error => {
  console.error('Error minting ARC20:', error);
})
```

```jsx
//mintRealm
wizz.requestMint({
  type: 'mint_realm',
  realm: 'sats1573', 
  bitworkc: '12345.6',
  satsIn: 888 
}).catch(error => {
  console.error('Error minting Realm:', error);
})
```

```jsx
// mintSubrealm
wizz.requestMint({
  type: 'mint_subrealm', 
  realm: 'hello', 
  subrealm: '123456', 
  satsIn: 789
}).catch(error => {
  console.error('Error minting Subrealm:', error);
})
```

```jsx
//mintContainer
wizz.requestMint({
  type: 'mint_container',
  container: 'sats1573', 
  satsIn: 666 
}).catch(error => {
  console.error('Error minting Container:', error);
})

```

```jsx
//mintDmitem
wizz.requestMint({
  type: 'mint_dmitem',
  atomicalId: '00000b94ff2b25b8f51118aa65dd22dece0acd28609ae90bc564a276c33d5af2i0',
  dmitem: {
    'mainHash': '26af0bf67e433afe6c5637d07aaa9b17701efbe52d01e00e586635bcbf25dd36',
    'data': {
      'args': {
        'request_dmitem': '878',
        'main': 'image.svg',
        'i': true,
        'proof': [
          {
            'p': false,
            'd': '13576b4c9ae48ae86adf82c21f9876531825db8e5727a10eaf4b90e2e3de8bbe',
          },
          {
            'p': true,
            'd': '0b0276c54bf8c0d790df490d91f26ca94463edf9937a6660be27f4c3339a0dc3',
          },
          {
            'p': true,
            'd': '44b1c7be4aa863ea5e4fbefd5bd994d8dcf6878b387b46989ac9dadd71af4411',
          },
          {
            'p': true,
            'd': '0be312c85b53777b274be59457c0895bb37d9accee8333e2836e027c4473e6c1',
          },
          {
            'p': true,
            'd': '89e5a2d475b4e7d05adfc1d14583b18dd34a7a21f39aa4d9141939238653e0d9',
          },
          {
            'p': false,
            'd': 'fca8254d88845c95a050449e255d7a06a576f747e61a17cba3dcc27bfd963c93',
          },
          {
            'p': false,
            'd': '94cc56fcfa9f494a286e72bbb40c1823a3f07a0f74546542df369513c819d540',
          },
          {
            'p': true,
            'd': '2a57764d24fd91bdccd0bc6b899dfa99be652acc921ceacc745fcb8e3c57952d',
          },
          {
            'p': false,
            'd': '4a9a30fea16b07b2232282afc1c95e52354c6d5c1d0589dc6be9a87650a43d7f',
          },
          {
            'p': false,
            'd': 'e07e43e2b753905a6ef99eaa3f656b342c0b781d344cb80ecce6a5e1dddf4757',
          },
        ],
        'parent_container': '00000b94ff2b25b8f51118aa65dd22dece0acd28609ae90bc564a276c33d5af2i0',
        'bitworkc': '8888.8',
        'bitworkr': '8888.8',
      },
      'image.svg': {
        '$b': '3c7376672077696474683d2232303022206865696768743d223230302220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f737667223e0a20203c726563742077696474683d223130302522206865696768743d2231303025222066696c6c3d2223303030303030222f3e0a20203c7465787420783d223530252220793d223435252220666f6e742d66616d696c793d22417269616c2220666f6e742d73697a653d223530222066696c6c3d2277686974652220646f6d696e616e742d626173656c696e653d226d6964646c652220746578742d616e63686f723d226d6964646c65223ee681903c2f746578743e0a20203c7465787420783d223530252220793d223735252220666f6e742d66616d696c793d22417269616c2220666f6e742d73697a653d223230222066696c6c3d2277686974652220646f6d696e616e742d626173656c696e653d226d6964646c652220746578742d616e63686f723d226d6964646c65223e6536383139303c2f746578743e0a3c2f7376673e',
      },
    },
    'targetVector': '878:any:any:image.svg:26af0bf67e433afe6c5637d07aaa9b17701efbe52d01e00e586635bcbf25dd36',
    'targethash': '26af0bf67e433afe6c5637d07aaa9b17701efbe52d01e00e586635bcbf25dd36',
  },
  satsIn: 666
}).catch(error => {
  console.error('Error minting DMItem:', error);
})
```

```jsx
//mintNFT
wizz.requestMint({
  type: 'mint_nft',
  fileBytes: new Uint8Array([123,10,32,32,34,109,97,105,110,72,97,115,104,34,58,32,34,51,51,100,98,54,98,53,101,101,49,51,56,48,101,102,49,98,52,101,48,101,51,54,55,49,51,49,99,102,102,54,98,53,53,57,57,101,102,102,50,51,57,54,97,98,48,54,98,97,48,97,49,99,99,100,53,49,52,52,99,102,51,53,98,34,44,10,32,32,34,100,97,116,97,34,58,32,123,10,32,32,32,32,34,97,114,103,115,34,58,32,123,10,32,32,32,32,32,32,34,114,101,113,117,101,115,116,95,100,109,105,116,101,109,34,58,32,34,57,56,56,34,44,10,32,32,32,32,32,32,34,109,97,105,110,34,58,32,34,105,109,97,103,101,46,115,118,103,34,44,10,32,32,32,32,32,32,34,105,34,58,32,116,114,117,101,44,10,32,32,32,32,32,32,34,112,114,111,111,102,34,58,32,91,10,32,32,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,32,32,34,112,34,58,32,102,97,108,115,101,44,10,32,32,32,32,32,32,32,32,32,32,34,100,34,58,32,34,55,101,97,57,101,50,99,98,99,50,97,102,98,53,50,49,48,52,99,57,52,51,101,54,102,100,54,102,97,54,57,54,55,54,53,52,56,57,49,56,99,53,55,51,98,56,98,48,55,54,100,98,49,98,102,100,97,48,102,55,99,52,56,99,34,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,32,32,34,112,34,58,32,102,97,108,115,101,44,10,32,32,32,32,32,32,32,32,32,32,34,100,34,58,32,34,48,53,52,52,97,101,98,52,49,53,49,48,99,50,52,48,99,53,57,57,100,53,48,57,55,54,50,54,48,48,56,51,101,98,54,52,56,97,49,100,55,99,48,57,50,52,54,48,99,101,56,49,102,50,53,53,56,57,48,98,49,50,51,54,34,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,32,32,34,112,34,58,32,116,114,117,101,44,10,32,32,32,32,32,32,32,32,32,32,34,100,34,58,32,34,99,55,56,101,101,51,53,100,53,99,50,55,102,51,51,50,100,101,48,57,52,99,99,53,100,97,49,57,97,97,48,99,52,100,49,50,56,54,102,57,99,51,101,99,97,97,54,102,50,97,54,54,100,55,99,57,48,97,54,50,50,56,49,102,34,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,32,32,34,112,34,58,32,102,97,108,115,101,44,10,32,32,32,32,32,32,32,32,32,32,34,100,34,58,32,34,48,100,48,56,98,100,53,99,54,49,98,56,99,53,99,98,57,57,97,57,54,49,97,49,54,54,56,57,49,54,50,49,54,51,53,51,48,53,56,48,98,54,97,50,50,52,49,54,53,50,100,102,52,51,102,101,51,55,50,100,55,56,56,49,34,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,32,32,34,112,34,58,32,102,97,108,115,101,44,10,32,32,32,32,32,32,32,32,32,32,34,100,34,58,32,34,99,54,55,52,102,101,52,54,48,54,49,98,49,51,57,49,48,57,102,101,101,98,56,56,51,97,52,98,51,57,102,52,102,49,56,49,51,48,49,101,48,55,97,101,53,99,99,51,48,48,48,55,98,54,54,53,54,53,52,50,55,100,101,102,34,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,32,32,34,112,34,58,32,116,114,117,101,44,10,32,32,32,32,32,32,32,32,32,32,34,100,34,58,32,34,50,102,54,48,57,53,55,48,57,97,99,99,57,51,55,98,48,102,51,52,51,97,97,57,57,49,102,51,97,50,49,97,98,101,102,101,97,101,55,49,101,101,101,52,49,98,53,51,49,52,51,55,100,53,99,102,55,52,102,53,52,54,101,53,34,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,32,32,34,112,34,58,32,102,97,108,115,101,44,10,32,32,32,32,32,32,32,32,32,32,34,100,34,58,32,34,54,57,56,101,102,53,52,102,98,98,49,50,97,51,56,98,100,55,101,55,53,49,51,53,52,97,48,53,49,55,55,53,48,100,52,55,51,48,56,55,53,99,97,56,98,53,101,56,98,101,48,55,55,48,102,48,97,51,49,56,53,97,50,56,34,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,32,32,34,112,34,58,32,102,97,108,115,101,44,10,32,32,32,32,32,32,32,32,32,32,34,100,34,58,32,34,97,55,56,55,52,52,54,49,52,57,51,49,57,97,55,97,55,55,53,102,100,101,54,98,101,57,52,49,97,51,55,55,50,54,52,97,50,55,100,101,48,97,49,98,52,54,54,48,50,56,102,54,101,55,99,53,54,51,56,57,97,53,48,53,34,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,32,32,34,112,34,58,32,102,97,108,115,101,44,10,32,32,32,32,32,32,32,32,32,32,34,100,34,58,32,34,52,97,57,97,51,48,102,101,97,49,54,98,48,55,98,50,50,51,50,50,56,50,97,102,99,49,99,57,53,101,53,50,51,53,52,99,54,100,53,99,49,100,48,53,56,57,100,99,54,98,101,57,97,56,55,54,53,48,97,52,51,100,55,102,34,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,32,32,34,112,34,58,32,102,97,108,115,101,44,10,32,32,32,32,32,32,32,32,32,32,34,100,34,58,32,34,101,48,55,101,52,51,101,50,98,55,53,51,57,48,53,97,54,101,102,57,57,101,97,97,51,102,54,53,54,98,51,52,50,99,48,98,55,56,49,100,51,52,52,99,98,56,48,101,99,99,101,54,97,53,101,49,100,100,100,102,52,55,53,55,34,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,93,10,32,32,32,32,125,44,10,32,32,32,32,34,105,109,97,103,101,46,115,118,103,34,58,32,123,10,32,32,32,32,32,32,34,36,98,34,58,32,34,51,99,55,51,55,54,54,55,50,48,55,55,54,57,54,52,55,52,54,56,51,100,50,50,51,50,51,48,51,48,50,50,50,48,54,56,54,53,54,57,54,55,54,56,55,52,51,100,50,50,51,50,51,48,51,48,50,50,50,48,55,56,54,100,54,99,54,101,55,51,51,100,50,50,54,56,55,52,55,52,55,48,51,97,50,102,50,102,55,55,55,55,55,55,50,101,55,55,51,51,50,101,54,102,55,50,54,55,50,102,51,50,51,48,51,48,51,48,50,102,55,51,55,54,54,55,50,50,51,101,48,97,50,48,50,48,51,99,55,50,54,53,54,51,55,52,50,48,55,55,54,57,54,52,55,52,54,56,51,100,50,50,51,49,51,48,51,48,50,53,50,50,50,48,54,56,54,53,54,57,54,55,54,56,55,52,51,100,50,50,51,49,51,48,51,48,50,53,50,50,50,48,54,54,54,57,54,99,54,99,51,100,50,50,50,51,51,48,51,48,51,48,51,48,51,48,51,48,50,50,50,102,51,101,48,97,50,48,50,48,51,99,55,52,54,53,55,56,55,52,50,48,55,56,51,100,50,50,51,53,51,48,50,53,50,50,50,48,55,57,51,100,50,50,51,52,51,53,50,53,50,50,50,48,54,54,54,102,54,101,55,52,50,100,54,54,54,49,54,100,54,57,54,99,55,57,51,100,50,50,52,49,55,50,54,57,54,49,54,99,50,50,50,48,54,54,54,102,54,101,55,52,50,100,55,51,54,57,55,97,54,53,51,100,50,50,51,53,51,48,50,50,50,48,54,54,54,57,54,99,54,99,51,100,50,50,55,55,54,56,54,57,55,52,54,53,50,50,50,48,54,52,54,102,54,100,54,57,54,101,54,49,54,101,55,52,50,100,54,50,54,49,55,51,54,53,54,99,54,57,54,101,54,53,51,100,50,50,54,100,54,57,54,52,54,52,54,99,54,53,50,50,50,48,55,52,54,53,55,56,55,52,50,100,54,49,54,101,54,51,54,56,54,102,55,50,51,100,50,50,54,100,54,57,54,52,54,52,54,99,54,53,50,50,51,101,101,54,56,52,57,97,51,99,50,102,55,52,54,53,55,56,55,52,51,101,48,97,50,48,50,48,51,99,55,52,54,53,55,56,55,52,50,48,55,56,51,100,50,50,51,53,51,48,50,53,50,50,50,48,55,57,51,100,50,50,51,55,51,53,50,53,50,50,50,48,54,54,54,102,54,101,55,52,50,100,54,54,54,49,54,100,54,57,54,99,55,57,51,100,50,50,52,49,55,50,54,57,54,49,54,99,50,50,50,48,54,54,54,102,54,101,55,52,50,100,55,51,54,57,55,97,54,53,51,100,50,50,51,50,51,48,50,50,50,48,54,54,54,57,54,99,54,99,51,100,50,50,55,55,54,56,54,57,55,52,54,53,50,50,50,48,54,52,54,102,54,100,54,57,54,101,54,49,54,101,55,52,50,100,54,50,54,49,55,51,54,53,54,99,54,57,54,101,54,53,51,100,50,50,54,100,54,57,54,52,54,52,54,99,54,53,50,50,50,48,55,52,54,53,55,56,55,52,50,100,54,49,54,101,54,51,54,56,54,102,55,50,51,100,50,50,54,100,54,57,54,52,54,52,54,99,54,53,50,50,51,101,54,53,51,54,51,56,51,52,51,57,54,49,51,99,50,102,55,52,54,53,55,56,55,52,51,101,48,97,51,99,50,102,55,51,55,54,54,55,51,101,34,10,32,32,32,32,125,10,32,32,125,44,10,32,32,34,116,97,114,103,101,116,86,101,99,116,111,114,34,58,32,34,57,56,56,58,97,110,121,58,97,110,121,58,105,109,97,103,101,46,115,118,103,58,51,51,100,98,54,98,53,101,101,49,51,56,48,101,102,49,98,52,101,48,101,51,54,55,49,51,49,99,102,102,54,98,53,53,57,57,101,102,102,50,51,57,54,97,98,48,54,98,97,48,97,49,99,99,100,53,49,52,52,99,102,51,53,98,34,44,10,32,32,34,116,97,114,103,101,116,104,97,115,104,34,58,32,34,51,51,100,98,54,98,53,101,101,49,51,56,48,101,102,49,98,52,101,48,101,51,54,55,49,51,49,99,102,102,54,98,53,53,57,57,101,102,102,50,51,57,54,97,98,48,54,98,97,48,97,49,99,99,100,53,49,52,52,99,102,51,53,98,34,10,125]), 
  fileName: 'item-988.json',
  contentType: 'application/json',
  bitworkc: '8888.8',
  bitworkr: '8888.8',
  satsIn: 555 
}).catch(error => {
  console.error('Error minting NFT:', error);
})
```

### sendBitcoin

Send a BTC transaction. (Requires extension version >= 2.6.0)

```javascript
const txid = await window.wizz.sendBitcoin('bc1p...', 1000, { feeRate: 100 });
console.log({ txid });
```

**Parameters**

1. `address` Receiving address.
2. `amount` Amount of BTC to send.
3. `options` (Optional)
   * `feeRate` Fee rate to use.

**Return**

`Promise` - `string`: Transaction ID.

### sendARC20

Send an ARC20 transaction. (Requires extension version >= 2.6.0) (Extension only)

```javascript
const txid = await window.wizz.sendARC20('bc1p...', 'atom', 1000, { feeRate: 100 });
console.log({ txid });
```

**Parameters**

1. `address` Receiving address.
2. `arc20` Name of the ARC20 token to send.
3. `amount` Amount of ARC20 to send.
4. `options` (Optional)
   * `feeRate` Fee rate to use.

**Return**

`Promise` - `string`: Transaction ID.

### sendAtomicals

Send an Atomcials transaction. (Requires extension version >= 2.6.0) (Extension only)

```javascript
const txid = await window.wizz.sendAtomicals('bc1p...', ['O9adf....', '80ea...'], { feeRate: 100 });
console.log({ txid });
```

**Parameters**

1. `address` Receiving address.
2. `atomicalIds` List of Atomicals IDs to send.
3. `options` (Optional)
   * `feeRate` Fee rate to use

**Return**

`Promise` - `string`: Transaction ID

### getBalance

Get the balance of the connected account. (Requires extension version >= 2.6.0)

```jsx
const { confirmed, unconfirmed, total } = await window.wizz.getBalance();
console.log({ confirmed, unconfirmed, total });
```

**Parameters**

None.

**Return**

`Promise` - `{ confirmed: number, unconfirmed: number, total: number }`: Balance of the current address

### getAccounts

```jsx
wizz.getAccounts()
```

Get address of current account

**Parameters**

none

**Returns**

`Promise` - `string`: address of current account

**Example**

```jsx
try {
  let res = await window.wizz.getAccounts();
  console.log(res)
} catch (e) {
  console.log(e);
}
> ["tb1qrn7tvhdf6wnh790384ahj56u0xaa0kqgautnnz"]
```

### getNetwork

```jsx
wizz.getNetwork()
```

get network

**Parameters**

none

**Returns**

`Promise` - `string`: the network. `livenet` and `testnet`

**Example**

```jsx
try {
  let res = await window.wizz.getNetwork();
  console.log(res)
} catch (e) {
  console.log(e);
}

> 0
```

### switchNetwork

```jsx
wizz.switchNetwork(network)
```

switch network

**Parameters**

`network` - `string`: the network. `livenet` and `testnet`

**Returns**

none

**Example**

```jsx
try {
  let res = await window.wizz.switchNetwork("livenet");
  console.log(res)
} catch (e) {
  console.log(e);
}

> 0
```

### getPublicKey

```jsx
wizz.getPublicKey()
```

Get publicKey of current account.

**Parameters**

none

**Returns**

`Promise` - `string`: publicKey

**Example**

```jsx
try {
  let res = await window.wizz.getPublicKey();
  console.log(res)
} catch (e) {
  console.log(e);
}
> 03cbaedc26f03fd3ba02fc936f338e980c9e2172c5e23128877ed46827e935296f
```

### getInscriptions

```jsx
wizz.getInscriptions(cursor,size)
```

List inscriptions of current account

**Parameters**

none

**Returns**

`Promise` - `Object`:

`total` - `number` : the total count

`list` - `Object[]` :

`inscriptionId` - `string` : the id of inscription.

`inscriptionNumber` - `string` : the number of inscription.

`address` - `string` : the address of inscription.

`outputValue` - `string` : the output value of inscription.

`content` - `string` : the content url of inscription.

`contentLength` - `string` : the content length of inscription.

`contentType` - `number` : the content type of inscription.

`preview` - `number` : the preview link

`timestamp` - `number` : the blocktime of inscription.

`offset` - `number` : the offset of inscription.

`genesisTransaction` - `string` : the txid of genesis transaction

`location` - `string` : the txid and vout of current location

**Example**

```jsx
try {
  let res = await window.wizz.getInscriptions(0,10);
  console.log(res)
} catch (e) {
  console.log(e);
}

> {
  "total":10,
  "list":[
    {
      inscriptionId: '6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531i0',
      inscriptionNumber: 959941,
      address: 'bc1q8h8s4zd9y0lkrx334aqnj4ykqs220ss735a3gh',
      outputValue: 546,
      preview: 'https://ordinals.com/preview/6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531i0',
      content: 'https://ordinals.com/content/6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531i0',
      contentLength: 53,
      contentType: 'text/plain;charset=utf-8',
      timestamp: 1680865285,
      genesisTransaction: '6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531',
      location: '6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531:0:0',
      output: '6037b17df2f48cf87f6b6e6ff89af416f6f21dd3d3bc9f1832fb1ff560037531:0',
      offset: 0
    }
  ]
}
```

### signMessage

```jsx
wizz.signMessage(msg[, type])
```

sign message

**Parameters**

`msg` - `string`: a string to sign

`type` - `string`: (Optional) "ecdsa" | "bip322-simple". default is "ecdsa"

**Returns**

`Promise` - `string`: the signature.

**Example**

```jsx
// sign by ecdsa
try {
  let res = await window.wizz.signMessage("abcdefghijk123456789");
  console.log(res)
} catch (e) {
  console.log(e);
}

> G+LrYa7T5dUMDgQduAErw+i6ebK4GqTXYVWIDM+snYk7Yc6LdPitmaqM6j+iJOeID1CsMXOJFpVopvPiHBdulkE=

// sign by bip322-simple
try {
  let res = await window.wizz.signMessage("abcdefghijk123456789","bip322-simple");
  console.log(res)
} catch (e) {
  console.log(e);
}

> AkcwRAIgeHUcjr0jODaR7GMM8cenWnIj0MYdGmmrpGyMoryNSkgCICzVXWrLIKKp5cFtaCTErY7FGNXTFe6kuEofl4G+Vi5wASECaIeVi8xMtvjATqSSYPDRDjEsQbr0hSUpU7FHJNtVKqw=
```

### pushTx

```jsx
wizz.pushTx(options)
```

Push Transaction

**Parameters**

`options` - `Object`:`rawtx` - `string`: rawtx to push

**Returns**

`Promise` - `string`: txid

**Example**

```jsx
try {
  let txid = await window.wizz.pushTx({
    rawtx:"0200000000010135bd7d..."
  });
  console.log(txid)
} catch (e) {
  console.log(e);
}
```

### signPsbt

```jsx
wizz.signPsbt(psbtHex[, options])
```

Sign PSBT

This method will traverse all inputs that match the current address to sign.

**Parameters**

`psbtHex` - `string`: the hex string of psbt to sign

options`autoFinalized` - `boolean`: whether finalize psbt after signing, default is true

`toSignInputs` - `array`:

`index` - `number`: which input to sign

`address` - `string`: (at least specify either an address or a publicKey) Which corresponding private key to use for signing

`ublicKey` - `string`: (at least specify either an address or a publicKey) Which corresponding private key to use for signing

`sighashTypes` - `number[]`: (optional) sighashTypes

`disableTweakSigner` - `boolean` :(optional)

When signing and unlocking Taproot addresses, the `tweakSigner` is used by default for signature generation. Enabling this allows for signing with the original private key.

**Returns**

`Promise` - `string`: the hex string of signed psbt

**Example**

```jsx
try {
  let res = await window.wizz.signPsbt(
    "70736274ff01007d....",
    {
        autoFinalized:false,
        toSignInputs:[
          {
            index: 0,
            address: "tb1q8h8....mjxzny",
          },
          {
            index: 1,
            publicKey: "tb1q8h8....mjxzny",
            sighashTypes: [1]
          },
          {
            index: 2,
            publicKey: "02062...8779693f",
          }
        ]
    }
  );
  console.log(res)
} catch (e) {
  console.log(e);
}

wizz.signPsbt("xxxxxxxx",{toSignInputs:[{index:0,publicKey:"xxxxxx",disableTweakSigner:true}],autoFinalized:false})
```

### pushPsbt

```jsx
wizz.pushPsbt(psbtHex)
```

Push transaction

**Parameters**

`psbtHex` - `string`: the hex string of psbt to push

**Returns**

`Promise` - `string`: txid

**Example**

```jsx
try {
  let res = await window.wizz.pushPsbt("70736274ff01007d....");
  console.log(res)
} catch (e) {
  console.log(e);
}
```

##

## **Events**

### **accountsChanged**

```jsx
wizz.on('accountsChanged', handler: (accounts: Array<string>) => void);
wizz.removeListener('accountsChanged', handler: (accounts: Array<string>) => void);
```

The `accountsChanged` will be emitted whenever the user's exposed account address changes.

### **networkChanged**

```jsx
wizz.on('networkChanged', handler: (network: string) => void);
wizz.removeListener('networkChanged', handler: (network: string) => void);
```

The `networkChanged` will be emitted whenever the user's network changes.

## **TODO**

**getAtomicals**

**SendBTC**

**SendARC20**

**SendNFT**


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.wizz.cash/wizz-wallet/dev/wallet-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
