> For the complete documentation index, see [llms.txt](https://theblockchainchief.gitbook.io/web3stash/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://theblockchainchief.gitbook.io/web3stash/services/nft.storage.md).

# NFT.STORAGE

Dive into the specifics of connecting and using NFT.STORAGE with web3stash

## Initialization

To use NFT.STORAGE you have to pass "NFT.STORAGE" as the service name. No other name will work!

```javascript
const nftstorageService = Web3Stash("NFT.STORAGE",{token:""},{nftstorage APIconfig options})
```

## Configuration&#x20;

To use nftstorage in web3stash, you need one thing:

* token - API token generated from nftstorage dashboard

Note: Use these names only while passing keys in object i.e, {token:"",}

#### Optional Config Options

You can pass config options that is available with nftstorage service- You can check nftstorage docs to check what config options are there which you can pass while initialising nftstorage

## Methods Available

The following methods are available for this service, More will be added soon

* Uploading JSON data&#x20;

```javascript
nftstorageService.uploadJson({name:"example", url:"abc.com"}, {nftstorageOptions}).then().catch()
```

* Uploading Image

```javascript
nftstorageService.uploadImage("./image.png", {nftstorageOptions}).then().catch()
```

* Uploading Video

```javascript
nftstorageService.uploadVideo("./video.mp4", {nftstorageOptions}).then().catch()
```

* Uploading File

<pre class="language-javascript"><code class="lang-javascript"><strong>nftstorageService.uploadFile("./data.txt", {nftstorageOptions}).then().catch()
</strong></code></pre>

## Output

All the functions return id (cid) and metadata (data returned by the service on upload)

<pre class="language-javascript"><code class="lang-javascript"><strong>{id:"dewfnlpweurmwknrwiojhgcbxczz", metadata:{}}
</strong></code></pre>
