# Welcome to PX

Harness the power and security of decentralized storage with PollinationX (PX) Storage NFTs or experience out-of-the-box integration with PX custom APIs & SDK.

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>💡</td><td><strong>Discover PollinationX (PX)</strong></td><td>Decentralized storage infrastructure and service layer.</td><td><a href="/pages/Mb4DKHcddcJieSC35HPV">/pages/Mb4DKHcddcJieSC35HPV</a></td></tr><tr><td>⚙️</td><td><strong>Build with PollinationX</strong></td><td>Multi-chain APIs &#x26; SDKs ready to support any Web2 or Web3 decentralized storage needs.</td><td><a href="/pages/5YoWuyzov1KYba4rq3fs">/pages/5YoWuyzov1KYba4rq3fs</a></td></tr><tr><td>💾</td><td><strong>PX Storage NFTs</strong></td><td>Dynamic NFTs programmed with a predetermined decentralized storage and bandwidth capacity.</td><td><a href="/pages/RdmkGV397DzHfIDzPJ3M">/pages/RdmkGV397DzHfIDzPJ3M</a></td></tr></tbody></table>

<figure><img src="/files/oYqO3gV4HLKBFuwI22bW" alt=""><figcaption></figcaption></figure>

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>🗂️ </td><td><strong>PX dApp</strong></td><td>Store and manage your data files in a self-custodial and permissionless way.</td><td><a href="https://wiki.pollinationx.io/overview/px-dapp">https://wiki.pollinationx.io/overview/px-dapp</a></td></tr><tr><td>⚙️</td><td><strong>PX dApp</strong></td><td>Access developer dashboard,  manage PX subscriptions or access settings and tools.</td><td><a href="https://wiki.pollinationx.io/overview/px-dapp">https://wiki.pollinationx.io/overview/px-dapp</a></td></tr></tbody></table>


# Start Here

PollinationX (PX); Decentralized Storage Infrastructure and Service Layer

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Get Started</strong></td><td>Learn about the PollinationX infrastructure and service EVM layer.</td><td></td><td></td><td><a href="#mission">#mission</a></td></tr><tr><td><strong>PX dApp</strong></td><td>Connect to PX dApp, mint your first storage NFT and upload some files to decentralised storage.</td><td></td><td></td><td><a href="https://wiki.pollinationx.io/overview/px-dapp">https://wiki.pollinationx.io/overview/px-dapp</a></td></tr><tr><td><strong>PX Storage NFTs</strong></td><td>Discover dynamic NFTs with a predetermined storage and banswidth capacity.</td><td></td><td></td><td><a href="https://wiki.pollinationx.io/overview/px-storage-nft">https://wiki.pollinationx.io/overview/px-storage-nft</a></td></tr><tr><td><strong>PX multi-chain</strong></td><td>Explore the PX multi-chain EVM support.</td><td></td><td></td><td><a href="https://wiki.pollinationx.io/overview/supported-networks-and-storages">https://wiki.pollinationx.io/overview/supported-networks-and-storages</a></td></tr><tr><td><strong>PX APIs</strong></td><td>Connect to custom decentralized storage nodes via dedicated service PX APIs.</td><td></td><td></td><td><a href="https://wiki.pollinationx.io/developer-section/api-reference">https://wiki.pollinationx.io/developer-section/api-reference</a></td></tr><tr><td><strong>PX SDK</strong></td><td>Enjoy seamless PX SDK interactions with protocol smart contracts and decentralised storage providers.</td><td></td><td></td><td><a href="https://wiki.pollinationx.io/developer-section/pollinationx-sdk">https://wiki.pollinationx.io/developer-section/pollinationx-sdk</a></td></tr></tbody></table>

### Mission;

*To bridge the gap between decentralized storage networks and end users enabling ease of access while democratizing access to secure and private storage solutions empowering a new era of data sovereignty and security.*

### Context

{% hint style="danger" %}
**Problem:** In today's digital age, data is incredibly valuable, often compared to oil. However, the explosion of digital data has made it increasingly difficult to manage, store, and protect. Traditional cloud storage providers capitalize on data mining, but this approach has significant flaws, including loss of data ownership and custody once data is uploaded, as well as overstated security claims. This centralized model is problematic both technically and ideologically, as it places users' personal and sensitive data under the control of large corporations. These issues have driven the shift towards decentralized storage systems, offering a new approach to data management.
{% endhint %}

{% hint style="info" %}
**Solution:** The up-and-coming decentralized storage networks could be presented as a solution as their self-custodial decentralized design abstracts the possibilities of data mining and data ownership loss putting the data owner in control. Amidst this landscape, PX emerges as a beacon of innovation, bridging the gap between the theoretical promise of decentralized storage and its practical application, adding infrastructure and service layer dedicated to the ease of access.&#x20;
{% endhint %}

### What is PollinationX (PX)?

{% tabs %}
{% tab title="Intro to PX Infra" %}
{% embed url="<https://youtu.be/Hp9_C639QqE?feature=shared>" %}
{% endtab %}

{% tab title="Intro to PX dApp" %}
{% embed url="<https://youtu.be/oairPYB5vSo?feature=shared>" %}
{% endtab %}

{% tab title="Intro to PX Storage NFTs" %}
{% embed url="<https://youtu.be/-UHiaPsUkes?feature=shared>" %}
{% endtab %}
{% endtabs %}

PollinationX is a decentralized storage infra layer that provides developers access to custom decentralized storage nodes and offers end-users dynamic [NFTs](https://wiki.pollinationx.io/overview/px-storage-nft) with preset storage and bandwidth capacities. offers a suite of back-end services that enable developers to connect to custom decentralized storage nodes via dedicated service APIs & SDK while utilising the read-and-write methods of [supported decentralized storage](/overview/supported-networks-and-storages) out-of-the-box.&#x20;

PX emerges as a beacon of innovation, bridging the gap between the theoretical promise of decentralized storage and its practical application, adding infrastructure and service layers dedicated to ease of access.

{% hint style="info" %}
**Meaning:** The name PollinationX derives from the pollination process in nature. The same as plant spores are distributed from one flower to another, your files are split into smaller pieces, encrypted and dispersed between various PollinationX nodes. At the same time, data reunification is possible only with the user's private key.  In addition, PollinationX "pollinates" applications by connecting solutions from diverse developers. Once you upload your files become instantly accessible across any app integrated with PollinationX.
{% endhint %}

{% hint style="success" %}
**PX technology is build based on decentralized principles;**

(1) pseudonymous login via Web3 wallets;\
(2) self-custodial;\
(3) on-chain verifiable;\
(4) users data is accessible only to the private key owner; \
(5) no personal data whatsoever is collected or can be accessed by the PX service, and; \
(6) open-source & open-source with commercial restrictions.
{% endhint %}

### Products

* **PX dApp:** Simplifies the usage of decentralized storage networks while serving as a developer dashboard and an end-user file hosting service.
* **PX Storage NFT:** Represent the storage and bandwidth quotas in a mintable, portable ans self-custodial form.
* **Developers Tools:** Offers a suite of back-end services that enable connection to custom decentralized storage nodes via dedicated service APIs & SDK while utilising the read-and-write methods of supported decentralized storage out-of-the-box.

### Official Links

{% tabs %}
{% tab title="PollinationX" %}

```
https://pollinationx.io/
https://wiki.pollinationx.io/
https://github.com/pollinationx/
```

{% endtab %}

{% tab title="PX dApp" %}

```
https://app.pollinationx.io/
https://testnet.pollinationx.io/
https://github.com/pollinationx/px-dapp/
```

{% endtab %}
{% endtabs %}


# FAQ

## Let's get started

### 1. What is PollinationX?

PollinationX is a decentralized storage infra layer that provides developers access to custom decentralized storage nodes and offers end-users dynamic NFTs with preset storage and bandwidth capacities.

### 2. Why is decentralized storage important?

Compared with centralized storage, geographically dispersed decentralized storage network has no single point of failure. Your data is broken into 1000s of pieces and dispersed through the network decentralized storage nodes. Access is permissionless, while data retrieval is possible only with the users private key.&#x20;

### 3. Is decentralized storage free?

PollinationX offers first 100MB of decentralized storage and 25 Bandwidth for free. Users can upgrade their storage using [PX sNFTs](/overview/px-storage-nft) available in various sizes (e.g. 5GB, 10GB, 20GB, 100GB). If compared with centralized storage solutions, one must acknowledge that some storage plans could offer "free" packages in exchange for associated users data, which is mined and sold. This is not the case with PollinationX.&#x20;

## Data security and privacy

### 4. Is data ownership preserved?

Yes, compared to centralized storage where users don't have control over their data, decentralized storage enables full data custody while retaining data ownership.&#x20;

### 5. Who can access the data?

Data can be accessed only with the users private key!

### 6. Can I delete my data from PX Drive?

You can delete files from your PX Drive account. Simply connect to your PX Drive account and use the delete function in the file manager. This will remove the files from your account, but they will still remain on the decentralized storage network.

However, once a file is uploaded to decentralized storage, there cannot be a guarantee that all copies of the file are gone from the decentralized storage network. As soon as a file is uploaded, other decentralized storage nodes can access and store a copy of the data. The data only becomes unavailable when the last decentralized storage node has stopped pinning the file, and all copies are garbage collected.&#x20;

## Other

### What is the PX sNFT?

PX Storage NFT is a dynamic NFT programmed with a predetermined storage capacity. It represent the decentralized storage unit (e.g. 5GB, 10GB, 20GB, 100GB) and enable users to mint the storage according to specific needs. The PX sNFT is based on the open-source `[PX]` smart contract.

### What is bandwidth?&#x20;

Bandwidth Defines how many data files can be uploaded to decentralized storage. It acts as a metric used within the PX Storage NFT mechanics (i.e. 1 bandwidth = 1 data file upload).

### What is PX dApp?

PX app is a decentralized application, a developer dashboard and an end-user file hosting service. It is built to service developers while managing subscriptions or accessing a range of developer settings and tools. It is also built for end-users. It offers a file hosting service with cutting-edge decentralized storage solutions that empower users with full control and ownership of their data. <br>


# Library

Dive deeper into 3+ years of research and development, discover what we learned putting together this amazing decentralisation storage infrastructure.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>📄<strong>PollinationX (PX); Decentralized Storage Infrastructure and Service Layer</strong></td><td>PX Whitepaper, David Tacer, <em>Dr. Tali Režun &#x26; Denis Jazbec, 2024</em></td><td></td><td><a href="https://bit.ly/PX-whitepaper">https://bit.ly/PX-whitepaper</a></td></tr><tr><td>🎙️<strong>Bringing Decentralized Storage to the Masses. Talk with David Tacer, PollinationX Co-Founder</strong></td><td>Blockchain Recorded Podcast EP58, 2023</td><td></td><td><a href="https://open.spotify.com/episode/6nOzF4wYNsIZKRRZqTSgaU?si=I6n4iQyYRji1PA8QQwri3Q">https://open.spotify.com/episode/6nOzF4wYNsIZKRRZqTSgaU?si=I6n4iQyYRji1PA8QQwri3Q</a></td></tr><tr><td>🎙️<strong>Arthera &#x26; PollinationX: Decentralized Storage Architecture. Spaces with Laurent Perello &#x26; David Tacer</strong></td><td>X Spaces, 2023</td><td></td><td><a href="https://x.com/PollinationX_io/status/1702710829345292787">https://x.com/PollinationX_io/status/1702710829345292787</a></td></tr></tbody></table>


# PX dApp

PollinationX dApp is a decentralized application, a developer dashboard and an end-user file hosting service.

The PX dApp is built to service developers while managing subscriptions or accessing a range of developer settings and tools. It is also built for end-users like you and me. It offers a file hosting service with cutting-edge decentralized storage solutions that empower users with full control and ownership of their data. Through dynamic Storage NFTs, users can securely manage their storage quotas and bandwidth capacities. The app provides a familiar "Cloud Storage" experience, syncing files across devices in a self-custodial, permissionless manner, ensuring that your digital assets remain private and secure across all platforms, accessible only to the private key owner.

* **End-users:** A decentralized storage service offering a "Cloud Storage Drive" experience, where users can store and access files online in a self-custodial, permissionless way. It syncs documents, photos, and more across all devices supporting Web3 wallets.
* **Developers:** A integrator-focused dashboard that allows developers to manage their PX subscriptions and access a range of developer settings and tools.

{% embed url="<https://testnet.pollinationx.io/>" %}

{% embed url="<https://app.pollinationx.io/>" %}

### **Fundamentals**

* Pseudonymous access via Web3 login
* Self-custodial, censorship-resistant, and permissionless
* Resistant no data mining
* Data access possible only with users' private key
* Multi-chain
* Open-source

### Technicals

The diagram illustrates the PX dApp processes between user wallets, platform, data, blockchain and decentralized storage.&#x20;

<figure><img src="/files/sczJeUrd8StkdKbIymmI" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Note:** Check the [PX processes](https://wiki.pollinationx.io/developer-section/px-processes) chapter for detailed descriptions of the PX dApp processes running in the back end.
{% endhint %}

### Resources

{% embed url="<https://github.com/pollinationx/px-dapp>" %}


# PX dApp User Guide

This is the PollinationX dApp manual page. Follow the steps for easier onboarding and access to all needed information.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>1️⃣ <strong>Connect to the dApp</strong></td><td>Install, login, fund your wallet and connect to PX App.</td><td></td><td><a href="#connecting-to-the-dapp">#connecting-to-the-dapp</a></td></tr><tr><td>2️⃣ <strong>Set up the PX dApp account</strong></td><td>Set up or import a PX Storage NFT account.</td><td></td><td><a href="#setting-up-the-px-dapp-account">#setting-up-the-px-dapp-account</a></td></tr><tr><td>3️⃣ <strong>Set up the dashboard</strong></td><td>Mint PX NFTs, export private keys and access dev tools.</td><td></td><td><a href="#setting-up-the-dashboard">#setting-up-the-dashboard</a></td></tr><tr><td>4️⃣ <strong>Manage and upload files to decentralized storage</strong></td><td>Create folders, drag and drop, edit or delete files.</td><td></td><td><a href="#managing-and-uploading-files-to-decentralized-storage">#managing-and-uploading-files-to-decentralized-storage</a></td></tr><tr><td>5️⃣ <strong>Sync the state to the blockchain</strong></td><td>Sync the file structure state to the blockchain.</td><td></td><td><a href="#syncing-the-file-structure-state-to-the-blockchain">#syncing-the-file-structure-state-to-the-blockchain</a></td></tr><tr><td>6️⃣ <strong>Upgrade or mint new storage NFTs</strong></td><td>Mint according to your storage needs.</td><td></td><td><a href="#upgrade-or-mint-new-storage">#upgrade-or-mint-new-storage</a></td></tr></tbody></table>

{% tabs %}
{% tab title="Intro to PollinationX" %}
{% embed url="<https://youtu.be/Hp9_C639QqE?feature=shared>" %}
{% endtab %}

{% tab title="PX dApp Tutorial" %}
{% embed url="<https://youtu.be/oairPYB5vSo?feature=shared>" %}
{% endtab %}

{% tab title="Intro to PX Storage NFTs" %}
{% embed url="<https://youtu.be/-UHiaPsUkes?feature=shared>" %}
{% endtab %}
{% endtabs %}

### Connecting to the dApp

PX dApp is a Web3-native application supporting [MetaMask](https://support.metamask.io/getting-started/getting-started-with-metamask/) and Wallet Connect. We recommend beginners take the [MetaMask Web3 101](https://learn.metamask.io/overview) course before starting.

Since PX dApp services run on-chain, ensure your wallet has enough gas for setup and operations.&#x20;

The PX dApp is a multi-chain application. Users can choose between several supported EVM blockchains. We recommend browsing the [supported network list](https://wiki.pollinationx.io/overview/supported-networks-and-storages) and choosing the blockchain most suited to your needs.

Steps:

* ⚙️ Install and login to a supported wallet
* 💰 Fund your wallet with gas
* 🤝 Connect your wallet with the [PX dApp Testnet](https://testnet.pollinationx.io/) (testnet.pollinationx.io) or [PX dApp Mainnet](https://app.pollinationx.io/) (app.pollinationx.io)
* 🔗 Select blockchain

### Setting up the PX dApp account

When you first connect to the PX dApp, you'll need to create or import a PX Storage NFT account. Each PX Storage NFT account has its own encryption with a unique public and private key pair. The private key allows you to export your PX Storage NFT accounts and restore your storage state on any browser-based device.

Steps:

* 🔐 **Set up** a password for the account
* 👤 **Create** a new account or import a private key of an existing one
* 🔑 If creating a new account, be sure to store the account private key securely
* ⚠️ **Follow** the instructions carefully to complete the account setup

### **Setting up the dashboard**

The PX dApp dashboard is your mission control within the application. It lets you mint PX Storage NFTs and manage their accounts. It is also a place where devs can access integrator tools and settings.&#x20;

Steps:

* ⛏️ **Mint** PX Storage NFT according to your preferences and confirm the transaction with your wallet, read more in the "[upgrade or mint PX NFT chapter](#upgrade-or-mint-new-storage)"
* 👉 **Access** the account tab to export the account private key (if needed)
* 👉 **Access** the settings tab to reset the private key within the app (if needed)

### Managing and uploading files to decentralized storage

Once you’ve set up the dashboard, adding files to your PX storage NFT account is as easy as dragging and dropping from your computer’s file system.

Steps:

* 📂 Create folders
* 💾 Drag and drop the chosen files to the dedicated form within the app and upload the files to decentralized storage - check the upload progress on the right
* ⬇️ Download, edit or delete files by accessing the additional features menu

{% hint style="info" %}
**Note:** When uploaded, files are split into smaller pieces, encrypted and dispersed between various decentralized storage nodes. At the same time, data reunification is possible only with the user's private key.
{% endhint %}

### **Syncing the file structure state to the blockchain**

The sync with blockchain feature enables syncing the file structure state between different devices.&#x20;

Steps:

* ⬇️ Download from blockchain - choose to download the app state
* ⬆️ Upload to blockchain - choose to upload the app state

{% hint style="danger" %}
**Note:** You have to sync the state to the blockchain first, before you sync it to another device.
{% endhint %}

### Upgrade or mint new storage

PollinationX NFTs enable easy access to decentralized storage. Users can mint decentralized storage NFTs according to their storage needs (e.g. 100MB, 5GB, 20GB, 100GB). Storage is available until used. New storage NFTs can be minted according to the user's need.

Steps:

* 🚀 **Upgrade** storage - Upgrade the storage on the existing NFT located in your wallet
* ⛏️ **Mint** new storage NFT - Mints a new storage NFT
* 🔄 **Refresh** the dynamic NFT creative located at the left bottom of the dApp. Newly minted storage should appear under the usage writing.

### Disclaimer

THE SOFTWARE SET FORTH IN THESE TERMS IS PROVIDED 'AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTY THAT THE SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE OR FIT FOR A PARTICULAR PURPOSE. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY US.

In no event will the Company, its affiliates, distributors or resellers be liable for any indirect, special, incidental or consequential damages arising out of the use of or inability to use the software, including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if advised of the possibility thereof.


# PX Storage NFTs

PollinationX dynamic sNFTs represent the storage and bandwidth unit, while the NFT image reflects the real-time storage capacity state.

### Intro to PX  sNFTs

PX sNFTs are built for both developers and end-users. PX decentralized storage NFTs represent the storage unit and bandwidth upload capacity. Utilizing dynamic NFT technology, the NFT image dynamically updates to represent the real-time status of storage capacity. NFTs come with predefined storage and bandwidth allocations and can be minted to meet specific requirements. Storage usage metrics are synchronized via the \[PXMain] smart contract, ensuring accurate tracking. Based on the selected storage size in gigabytes and the number of bandwidth uploads (i.e. 1 bandwidth = 1 data file upload), PX sNFTs are minted to grant storage access.

### Fundamentals

* Pseudonymous storage access via Web3 login
* Self-custodial
* Robust and resistant to Web2 data mining & data ownership loss
* On-chain verifiable
* No centralized point of failure
* Multi-chain
* Transferable
* Composable
* EVM-native

### Developers

Developers can integrate the PX sNFTs directlly into their apps, enabling users to self-custody their data right out-of-the-box. As an PX sNFT owner, the integrator is authorised to claim credentials to access the PX SDK methods and have access to advanced PX dApp functionalities.

With PX sNFT integration, developers benefit from decentralization storage optimization. There is no need to maintain a larger storage capacity for storage reselling. End users maintain and hold their storage themselves in the form of the PX sNFT.&#x20;

{% hint style="info" %}
**Note:** The PX sNFT owner is authorised to claim credentials to access the PollinationX SDK methods. The storage size gets updated via NFT \[PXMain] smart contracts when the user uploads the files. When maxing the storage size, a new NFT must be minted.
{% endhint %}

### End-users

Through dynamic Storage NFTs, users can securely manage their storage quotas and bandwidth capacities. Due to the PX sNFT multi-chain nature, users can mint the sNFTs in the domain of their native chain.

### Integrations & Features

<table><thead><tr><th width="217">App</th><th>Minting</th><th>State overview</th><th>Account overview</th></tr></thead><tbody><tr><td><a href="https://app.pollinationx.io/">PX dApp</a></td><td><h2>✅</h2></td><td><h2>✅</h2></td><td><h2>✅</h2></td></tr><tr><td><a href="https://app.blockcommunicator.com">BlockCommunicator</a></td><td><h2>✅</h2></td><td><h2>✅</h2></td><td><h2>✅</h2></td></tr><tr><td><a href="https://w3xshare.com/">W3XShare</a></td><td><h2>✅</h2></td><td><h2>✅</h2></td><td><h2>✅</h2></td></tr><tr><td><a href="https://app.the4thpillar.io/">4P Super App</a></td><td><h2>✅</h2></td><td><h2>✅</h2></td><td><h2>✅</h2></td></tr></tbody></table>

### Sizes, Bandwidth & Prices

<table><thead><tr><th>Size</th><th>Bandwidth</th><th width="182">Estimated price in $</th></tr></thead><tbody><tr><td>100MB</td><td>25 uploads</td><td>Free</td></tr><tr><td>1GB</td><td>50 uploads</td><td>≈ 5$</td></tr><tr><td>5GB</td><td>150 uploads</td><td>≈ 15$ </td></tr><tr><td>20BG</td><td>400 uploads</td><td>≈ 30$</td></tr></tbody></table>

<table><thead><tr><th>Bandwidth</th><th width="182">Estimated price in $</th></tr></thead><tbody><tr><td>10 uploads</td><td>≈ 1$</td></tr></tbody></table>

{% hint style="info" %}
**Note:** References to USD prices are made for approximate fiat value illustration purposes only. Access [Fees](/overview/fees) chapter for more information.
{% endhint %}

### Adding the PX sNFT to MetaMask

1. Go to MetaMask and access the NFT tab
2. Click ➕*Import NFT*
3. Fill in the details below:\
   \- **Address:** 0x1142b080a5493695e3E35c9C4269f6C06B5CE0F4\
   \- **Token ID:** (e.g. #123)
4. Click *Import*

{% hint style="info" %}
**Note:** NFT smart contracts address is no always the same. Check the exact address on the [supported network](https://wiki.pollinationx.io/overview/supported-networks-and-storages) page. Every PX sNFT has its uniqe ID. You can find it on the NFT graphics (# + a specific number) or access it in the NFT mint smart contract transaction.
{% endhint %}

### Resources

{% embed url="<https://github.com/PollinationX/smart-contracts>" %}


# Supported Networks & Storages

We strive to enable access to decentralized storage no matter to the native L1 or L2.

## Supported Networks

\[PXMain] smart contract represents the [PX sNFT](/overview/px-storage-nft) which acts as a storage unit applicable within various use cases. Multi-chain interoperability directly correlates with \[PXMain] smart contract deployment.&#x20;

{% tabs %}
{% tab title="Mainnets" %}

| Chain List 🔗                                       | PX smart contracts 🔗                                                                                                                                                                                                                                                                                                                                                               | Deployment |
| --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- |
| [Gnosis](https://chainlist.org/chain/100)           | <p>\[<a href="https://gnosisscan.io/address/0xBdbEb66f3c33a7D83f2761D435E7a9a0135D5c43">PXMain</a>], \[<a href="https://gnosisscan.io/address/0x062a44f6aa66fDa906379cD2baF7f84E847e35A5">PXUtils</a>], <br>\[<a href="https://gnosisscan.io/address/0x5B9f65CdF489b5401143243c574F8f27Cce189bA">PXStorage</a>]</p>                                                                 | 25.09.2025 |
| [Polygon](https://chainlist.org/chain/137)          | <p>\[<a href="https://polygonscan.com/address/0x1142b080a5493695e3e35c9c4269f6c06b5ce0f4">PXMain</a>], \[<a href="https://polygonscan.com/address/0xd0466eb975de9cdfd790db14f143f4aaafd67cf2">PXUtils</a>], <br>\[<a href="https://polygonscan.com/address/0xe6cd5c37f5687ba0fd44b429e14be2689a2592ea">PXStorage</a>]</p>                                                           | 18.02.2025 |
| [Sonic](https://chainlist.org/chain/146)            | <p>\[<a href="https://explorer.soniclabs.com/address/0x1142b080a5493695e3E35c9C4269f6C06B5CE0F4">PXMain</a>], \[<a href="https://explorer.soniclabs.com/address/0xd0466eB975dE9CDfd790Db14f143f4aAAFd67cF2">PXUtils</a>], <br>\[<a href="https://explorer.soniclabs.com/address/0xe6CD5C37F5687ba0fd44B429E14be2689A2592eA">PXStorage</a>]</p>                                      | 09.12.24   |
| [Fantom Opera](https://chainlist.org/chain/250)     | <p>\[<a href="https://ftmscan.com/address/0x1142b080a5493695e3E35c9C4269f6C06B5CE0F4">PXMain</a>], \[<a href="https://ftmscan.com/address/0xd0466eb975de9cdfd790db14f143f4aaafd67cf2">PXUtils</a>], <br>\[<a href="https://ftmscan.com/address/0xe6cd5c37f5687ba0fd44b429e14be2689a2592ea">PXStorage</a>]</p>                                                                       | 15.07.24   |
| [Oasis Sapphire](https://chainlist.org/chain/23294) | <p>\[<a href="https://explorer.oasis.io/mainnet/sapphire/address/0x1142b080a5493695e3E35c9C4269f6C06B5CE0F4">PXMain</a>],  \[<a href="https://explorer.oasis.io/mainnet/sapphire/address/0xd0466eB975dE9CDfd790Db14f143f4aAAFd67cF2">PXUtils</a>], <br>\[<a href="https://explorer.oasis.io/mainnet/sapphire/address/0xe6CD5C37F5687ba0fd44B429E14be2689A2592eA">PXStorage</a>]</p> | 08.08.24   |
| {% endtab %}                                        |                                                                                                                                                                                                                                                                                                                                                                                     |            |

{% tab title="Testnets" %}

| Chain List 🔗                                        | PX smart contracts 🔗                                                                                                                                                                                                                                                                                                                                                  | Deployment |
| ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- |
| Katana                                               | <p>\[<a href="https://explorer.tatara.katana.network/address/0x1142b080a5493695e3E35c9C4269f6C06B5CE0F4">PXMain</a>], \[<a href="https://explorer.tatara.katana.network/address/0xd0466eB975dE9CDfd790Db14f143f4aAAFd67cF2">PXUtils</a>], <br>\[<a href="https://explorer.tatara.katana.network/address/0xe6CD5C37F5687ba0fd44B429E14be2689A2592eA">PXStorage</a>]</p> | 12.07.25   |
| [Citrea](https://chainlist.org/chain/5115)           | <p>\[<a href="https://explorer.testnet.citrea.xyz/address/0x062a44f6aa66fDa906379cD2baF7f84E847e35A5">PXMain</a>], \[<a href="https://explorer.testnet.citrea.xyz/address/0x0ce9ec7aA5Ac741f65012bB0561Fb251C09343B3">PXUtils</a>], <br>\[<a href="https://explorer.testnet.citrea.xyz/address/0x787478308f7f5bCd3980391430b45c54e60223c5">PXStorage</a>]</p>          | 27.11.2024 |
| Sonic                                                | <p>\[<a href="https://testnet.soniclabs.com/address/0x2901156559b86eb85be6cea64420e629ccfc9f7b">PXMain</a>], \[<a href="https://testnet.soniclabs.com/address/0x6de689b4a0863a2748a5fc1285b2ceace907437e">PXUtils</a>], <br>\[<a href="https://testnet.soniclabs.com/address/0x1a827cfc59c935bbef393af0b680fecb2b6fa18c">PXStorage</a>]</p>                            | 12.11.2024 |
| [Gnosis Chiado](https://chainlist.org/chain/10200)   | <p>\[<a href="https://gnosis-chiado.blockscout.com/address/0x59827DCC32a45DC25F99008e4EE8b46908915BCC">PXMain</a>], \[<a href="https://gnosis-chiado.blockscout.com/address/0xf584C0E3980265C967cEbFF7422543ae05810fb8">PXUtils</a>], <br>\[<a href="https://gnosis-chiado.blockscout.com/address/0x487d911818DEAc27ceF25091084638A5c404A50f">PXStorage</a>]</p>       | 04.10.2024 |
| [Polygon Amoy](https://chainlist.org/chain/80002)    | <p>\[<a href="https://amoy.polygonscan.com/address/0x1142b080a5493695e3E35c9C4269f6C06B5CE0F4">PXMain</a>], \[<a href="https://amoy.polygonscan.com/address/0xd0466eB975dE9CDfd790Db14f143f4aAAFd67cF2">PXUtils</a>], <br>\[<a href="https://amoy.polygonscan.com/address/0xe6cd5c37f5687ba0fd44b429e14be2689a2592ea">PXStorage</a>]</p>                               | 30.09.2024 |
| [Soneium Minato](https://chainlist.org/chain/1946)   | <p>\[<a href="https://explorer-testnet.soneium.org/address/0x1142b080a5493695e3E35c9C4269f6C06B5CE0F4">PXMain</a>], \[<a href="https://explorer-testnet.soneium.org/address/0xd0466eB975dE9CDfd790Db14f143f4aAAFd67cF2">PXUtils</a>], <br>\[<a href="https://explorer-testnet.soneium.org/address/0xe6CD5C37F5687ba0fd44B429E14be2689A2592eA">PXStorage</a>]</p>       | 02.09.2024 |
| [Immu3](https://chainlist.org/chain/3100)            | \[[PXMain](https://evmexplorer.tanssi-chains.network/address/0x3e4760aC84f99ED1CB505fe0973b54d6E77B3C99?rpcUrl=https%3A%2F%2Ffraa-flashbox-2800-rpc.a.stagenet.tanssi.network)]                                                                                                                                                                                        | 15.07.24   |
| [Immu3](https://chainlist.org/chain/3100)            | \[PXMain]                                                                                                                                                                                                                                                                                                                                                              | 19.04.2024 |
| [Fantom](https://chainlist.org/chain/4002)           | \[[PXMain](https://testnet.ftmscan.com/address/0xCFa778071BAd55BA6c893B3Fa5683F2231d3464F)]                                                                                                                                                                                                                                                                            | 15.07.24   |
| Fantom Sonic                                         | \[[PXMain](https://public-sonic.fantom.network/address/0xF416eC122f61B933207915946B00364674eB3134)]                                                                                                                                                                                                                                                                    | 05.04.24   |
| [Sepolia](https://chainlist.org/chain/11155111)      | \[[PXMain](https://sepolia.etherscan.io/address/0xd0466eb975de9cdfd790db14f143f4aaafd67cf2)]                                                                                                                                                                                                                                                                           | 01.09.2023 |
| [Polygon Mumbai](https://chainlist.org/chain/80001)  | \[[PXMain](https://mumbai.polygonscan.com/address/0x327d9765b9979a5bdae587971ff9c5d94596385b)]                                                                                                                                                                                                                                                                         | 24.08.2023 |
| EdgeEVM                                              | \[[PXMain](https://testnet.edgscan.live/address/0xd0466eB975dE9CDfd790Db14f143f4aAAFd67cF2)]                                                                                                                                                                                                                                                                           | 18.10.2023 |
| [Arthera](https://chainlist.org/chain/10243)         | \[[PXMain](https://explorer-test.arthera.net/address/0x3F399f029BDCc695CfC8bab174938EdEaB84E546)]                                                                                                                                                                                                                                                                      | 01.02.2024 |
| [Metis Sepolia](https://chainlist.org/chain/59902)   | \[[PXMain](https://sepolia.explorer.metisdevops.link/address/0xd0466eB975dE9CDfd790Db14f143f4aAAFd67cF2)]                                                                                                                                                                                                                                                              | 23.02.2024 |
| [Oasis Sapphire](https://chainlist.org/chain/23295)  | \[[PXMain](https://testnet.explorer.sapphire.oasis.dev/address/0xd0466eB975dE9CDfd790Db14f143f4aAAFd67cF2)]                                                                                                                                                                                                                                                            | 27.11.2023 |
| [ZetaChain Athens](https://chainlist.org/chain/7001) | \[[PXMain](https://explorer.zetachain.com/address/0xd0466eB975dE9CDfd790Db14f143f4aAAFd67cF2)]                                                                                                                                                                                                                                                                         | 01.30.2024 |
| [Mantle Sepolia](https://chainlist.org/chain/5003)   | \[[PXMain](https://explorer.sepolia.mantle.xyz/address/0xd0466eB975dE9CDfd790Db14f143f4aAAFd67cF2)]                                                                                                                                                                                                                                                                    | 09.02.2024 |
| [Gnosis Chiado](https://chainlist.org/chain/10200)   | \[[PXMain](https://gnosis-chiado.blockscout.com/address/0xd0466eB975dE9CDfd790Db14f143f4aAAFd67cF2)]                                                                                                                                                                                                                                                                   | 09.02.2024 |
| {% endtab %}                                         |                                                                                                                                                                                                                                                                                                                                                                        |            |

{% tab title="Faucets" %}

<table><thead><tr><th width="386">Chain</th><th>TestNet Faucets 🔗</th></tr></thead><tbody><tr><td>Immu3</td><td><a href="https://immu3-faucet.vercel.app/">➡️</a></td></tr><tr><td>Fantom</td><td><a href="https://faucet.fantom.network/">➡️</a></td></tr><tr><td>Fantom Sonic</td><td><a href="https://public-sonic.fantom.network/account">➡️</a></td></tr><tr><td>Sepolia</td><td><a href="https://sepolia-faucet.pk910.de/">➡️</a></td></tr><tr><td>Polygon Faucets</td><td><a href="https://faucet.polygon.technology/">➡️</a></td></tr><tr><td>EdgeEVM</td><td><a href="https://beresheet-evm-faucet.vercel.app/">➡️</a></td></tr><tr><td>Arthera</td><td><a href="https://faucet2.arthera.net/">➡️</a></td></tr><tr><td>Metis Sepolia</td><td><a href="https://sepolia.faucet.metisdevops.link/">➡️</a></td></tr><tr><td>Oasis Sapphire</td><td><a href="https://faucet.testnet.oasis.dev/">➡️</a></td></tr><tr><td>ZetaChain Athens</td><td><a href="https://www.covalenthq.com/faucet/#form">➡️</a></td></tr><tr><td>Mantle Sepolia</td><td><a href="https://faucet.sepolia.mantle.xyz/">➡️</a> / <a href="https://bridge.sepolia.mantle.xyz/">Bridge</a></td></tr><tr><td>Gnosis Chiado</td><td><a href="https://faucet.chiadochain.net/">➡️</a></td></tr></tbody></table>
{% endtab %}
{% endtabs %}

## Supported Storage Networks

PollinationX currently supports [BTFS](https://www.btfs.io/) (i.e. BitTorrent File System) and will support other decentralized storage networks in the future.&#x20;

<table><thead><tr><th>Decentralized Storage</th><th width="92.33333333333331">Status</th><th width="105">Version</th><th>Node</th></tr></thead><tbody><tr><td>BTFS</td><td>Active</td><td>Alpha</td><td>/</td></tr><tr><td>IPFS</td><td>TBA</td><td></td><td>/</td></tr><tr><td>FileCoin</td><td>TBA</td><td></td><td>/</td></tr></tbody></table>

{% hint style="danger" %}
**Warning:** BTFS is in the alpha version. Use it at your own discretion!
{% endhint %}


# Fees

### Fee Table

{% tabs %}
{% tab title="Blockchain Fees" %}

<table><thead><tr><th width="278.66666666666663">Smart Contract Methods</th><th>Gas Limit</th><th>*Estimated Price in $POL</th><th>*Estimated Price in FTM</th><th>*Estimated Price in ROSE</th></tr></thead><tbody><tr><td>[PXMain] Mint free package or new storage</td><td>3800000</td><td>≈ 0.1POL</td><td>≈ 0.15 FTM</td><td>≈ 0.38 ROSE</td></tr><tr><td>[PXMain] Mint Bandwidth</td><td>860000</td><td>≈ 0.02POL</td><td>≈ 0.03 FTM</td><td>≈ 0.086 ROSE</td></tr><tr><td>[PXMain] Upgrade Package</td><td>1240000</td><td>≈ 0.03POL</td><td>≈ 0.05 FTM</td><td>≈ 0.12 ROSE</td></tr></tbody></table>
{% endtab %}

{% tab title="PX sNFT Price" %}

<table><thead><tr><th>Size</th><th>Bandwidth Limit</th><th width="182">Estimated price in $</th><th>*Estimated Price in $POL</th><th>Estimated Price in FTM</th><th>Estimated Price in ROSE</th></tr></thead><tbody><tr><td>100MB</td><td>25 uploads</td><td>Free</td><td>Free</td><td>Free</td><td>Free</td></tr><tr><td>1GB</td><td>50 uploads</td><td>≈ 5$</td><td>≈ 25 POL</td><td>≈ 12 FTM</td><td>≈ 80 ROSE</td></tr><tr><td>5GB</td><td>150 uploads</td><td>≈ 15$</td><td>≈ 70 POL</td><td>≈ 35 FTM</td><td>≈ 240 ROSE</td></tr><tr><td>20BG</td><td>400 uploads</td><td>≈ 30$</td><td>≈ 140 POL</td><td>≈ 70 FTM</td><td>≈ 470 ROSE</td></tr></tbody></table>
{% endtab %}

{% tab title="PX Bandwidth Price" %}

| Bandwidth    | Estimated price in $ | \*Estimated Price in $POL | Estimated Price in FTM | Estimated Price in ROSE |
| ------------ | -------------------- | ------------------------- | ---------------------- | ----------------------- |
| 10 uploads   | ≈ 1$                 | ≈ 6 POL                   | ≈ 3 FTM                | ≈ 16 ROSE               |
| {% endtab %} |                      |                           |                        |                         |

{% tab title="Resources" %}

<table><thead><tr><th width="163.66666666666663">Function</th><th width="196">GAS Tracker</th><th width="207">Unit Converter</th><th>Token</th></tr></thead><tbody><tr><td>Polygon</td><td><a href="https://polygonscan.com/gastracker">Polygon GasTracker</a></td><td>/</td><td>POL</td></tr><tr><td>Fantom</td><td><a href="https://ftmscan.com/gastracker">Fantom GasTracker</a></td><td><a href="https://ftmscan.com/unitconverter">Fantom UnitConverter</a></td><td>FTM</td></tr><tr><td>Oasis Sapphire</td><td>/</td><td>/</td><td>ROSE</td></tr></tbody></table>
{% endtab %}
{% endtabs %}

{% hint style="info" %}
**\*Note:** Crypto prices are estimated and calculated based on; (1) Fantom 41 GWei, and; (2) Oasis 100 GWei gas price. The "Send message" gas limit is based on the length of the message. The "Create Group" gas limit depends on the number of members in the group and the encryption variable. Table calculation is based on a two-member encrypted group. References to USD prices are made for approximate fiat value illustration purposes only.
{% endhint %}


# PX Architecture

Harnesses the power and security of decentralized storage networks while enabling end-users to access decentralize storage with ease.

### Let's Start

The architecture was designed to be as lightweight and modular as possible while retaining core decentralization primitives. There are five key legos forming the core PX framework:

* Smart contract & libraries
* On-chain storage validation
* PX Nodes
* PX Storage NFT authorisation
* PX client

### Architecture by layers

Connected by the PX SDK (i.e. software development kit), seven layers complete the PollinationX framework:

* dApps & clients (e.g. [PX dApp](https://wiki.pollinationx.io/overview/px-dapp))
* [PX SDK](https://wiki.pollinationx.io/developer-section/px-sdk)
* [PX API](https://wiki.pollinationx.io/developer-section/api-reference)
* [Decentralized storage networks](https://wiki.pollinationx.io/overview/supported-networks-and-storages#supported-storage-networks) (i.e. BTFS, IPFS)
* [Storage nodes](https://wiki.pollinationx.io/developer-section/px-nodes)
* [PX Protocol](https://github.com/PollinationX/smart-contracts)
* PX Assets&#x20;
* [Blockchain networks](https://wiki.pollinationx.io/overview/supported-networks-and-storages#supported-networks)

<div align="left" data-full-width="false"><figure><img src="/files/irZr1ASsW5JbHYsxmais" alt=""><figcaption></figcaption></figure></div>

### Resources

{% embed url="<https://github.com/PollinationX/px-dapp>" %}

{% embed url="<https://github.com/PollinationX/sdk-js>" %}

{% embed url="<https://github.com/PollinationX/smart-contracts>" %}


# PX Processes

### Let's Start

There are numerous processes runing between user wallets, platform, data, blockchain and decentralized storage.

### Minting a PX Storage NFT

<div align="left"><figure><img src="/files/7Sgvy4kO6UNedmYWVled" alt=""><figcaption></figcaption></figure></div>

Steps:

* The user mints a new PX sNFT on the blockchain.
* The user interacts with the PX sNFT smart contract through the application (dApp) or an explorer\*.
* The smart contract generates a new PX sNFT token and associates it with the user's wallet address.
* During the minting process, the smart contract also saves the BTNS key for the minted PX sNFT.

{% hint style="info" %}
\*If PX sNFT is minted directly on a smart contract via blockchain Explorer, the user needs to make PX sNFT registration through registration management to generate the BTNS key.
{% endhint %}

### PX Storage NFT registration management

The process generates and allocates a unique BTNS key to PX sNFT which is used to reference storage usage metadata on BTFS.&#x20;

{% hint style="info" %}
**\*IPNS details:** <https://docs.ipfs.tech/concepts/ipns/#mutability-in-ipfs>
{% endhint %}

### Uploading files and saving storage usage metadata

Steps:

* The user uploads the files on the PX sNFT (prerequisite; available free PX sNFT storage).
* The files are saved BTFS (or any other supported decentralized storage network).
* Upon successful file upload, the PX Node provides the storage usage for the uploaded file and saves storage usage metadata, which includes storage quota, current usage and the CID of the uploaded file.
* The metadata is stored on BTFS and referenced by PX sNFT assigned BTNS key.

### Syncing mechanism

Steps:

* The user wants to ensure that his storage usage metadata is synchronized with the blockchain, so he triggers a sync operation through the dApp or explorer.
* The user calls the synch function on the PX sNFT smart contract providing the PX sNFT token ID.
* The PX sNFT smart contract uses Chainlink to fetch the latest metadata from BTFS using the user's PX sNFT BTNS key.
* After retrieving the metadata, the PX sNFT smart contract updates users' PX sNFT token on-chain with the latest storage usage information.

### When the user chooses not to synch their storage usage metadata

Users who do not sync their storage usage metadata within the specified timeframe face temporary restrictions on uploading files, and PX sNFT will not allow uploads. After synchronization, PX sNFT will allow uploads again.&#x20;

{% hint style="info" %}
**Note:** While the PX infrastructure is natively interoperable with IPFS and IPNS, the first production integrations are made using BTFS and BTNS frameworks. Other decentralized storage network support will follow according to the project roadmap.
{% endhint %}


# PX Nodes

We are enhancing the robustness of the PX system with node decentralization.

### Let's Start

The objective is to decentralize the PX infrastructure, enhancing the robustness of the PX system as more nodes operate in a true self-custodial manner. By increasing the number of nodes, we bolster the resilience and autonomy of the PX network, promoting a more secure and democratic ecosystem for all participants.

<div align="left"><figure><img src="/files/IohAzkdn4JUrSjluR0rm" alt=""><figcaption></figcaption></figure></div>

### DNS link

DNSLink is used for linking DNS records to IPFS content. It allows associating a domain name with a IPFS content identifier (i.e. CID), making it easier to access IPFS content using human-readable domain names. By setting up a DNSLink, we associated a domain name [nodes.pollinationx.io](https://nodes.pollinationx.io/) with the CID of the JSON file containing the list of PX nodes.

### List of Nodes on IPFS

The JSON file stored on IPFS contains a list of URLs to all PX nodes participating in the network. Each URL represents a node's endpoint that can be used to interact with the node. This JSON file serves as a registry of all available nodes, allowing clients to discover and connect to nodes dynamically. Later the PX infrastructure will transit from a IPFS to a smart contract to serve as a registry of nodes. With that approach, anyone will be able to publish a PX node, which will be a significant step towards decentralization and improving the architecture's flexibility.&#x20;

### IPFS CID

The IPFS CID\* identifies the JSON file containing the list of PX nodes on IPFS. This hash will be later replaced with the IPFS hash. Clients can access this file by resolving the DNSLink to obtain the CID and then fetching the content from the IPFS network.

{% hint style="info" %}
**\*IPFS CID:** bafkreiequiplrkpg6kdxbaraxasa6weohy3bwszowrostbav72pe3fjcqe
{% endhint %}

\*bafkreiequiplrkpg6kdxbaraxasa6weohy3bwszowrostbav72pe3fjcqe

### Healtz API

The Healthz API monitors the availability and status of nodes in the network. It checks whether nodes are online, responsive, and functioning as expected.  API provides real-time visibility into the operational status of the network. In addition to monitoring PX nodes, the Healthz API verifies the connectivity and health of the underlying blockchain network. It checks whether the blockchain is online and accessible, ensuring that critical infrastructure components are operational.

### Processes within the PX node:

* The PX Storage NFT authorization process checks the wallet NFT holdings. In case of a positive (i.e. >1) wallet balance, the access token is generated for each NFT.
* The Check Usage process checks if the access token is valid and checks if the uploader has enough storage available on the NFT.
* The data file is transferred to the upload.
* The NFT storage state is synced

{% hint style="info" %}
**Note:** While the PX infrastructure is natively interoperable with IPFS and IPNS, the first production integrations are made using BTFS and BTNS frameworks. Other decentralized storage network support will follow according to the project roadmap.
{% endhint %}

### Resources

{% embed url="<https://nodes.pollinationx.io/>" %}


# PX API Reference

Dive into the specifics of each API endpoint by checking out our complete documentation.

## Authentication

Auth authenticates the user and checks their PollinationX (PX) storage NFTs.

{% content-ref url="/pages/HbRfSy16FsK8e6rUS2Qv" %}
[Auth](/developer-section/px-api-reference/auth)
{% endcontent-ref %}

## File management

This API endpoints for uploading and downloading files to/from decentralized storage.

{% content-ref url="/spaces/dhAnLhcEtZNDPAiBQKzC/pages/1TGSYX8K6VDh7GI0nRya" %}
[Upload](/developer-section/px-api-reference/upload)
{% endcontent-ref %}

{% content-ref url="/spaces/dhAnLhcEtZNDPAiBQKzC/pages/idpg62K5f32dJjwBQS6L" %}
[Download](/developer-section/px-api-reference/download)
{% endcontent-ref %}

{% hint style="info" %}
**Good to know:** To enhance security and privacy, consider encrypting files before uploading them to the decentralized storage. This way, even if the storage nodes are compromised, the data remains protected. If you want encryption out of the box consider using our [PollinationX SDK](/developer-section/px-sdk).
{% endhint %}


# Auth

Auth authenticates the user and checks their PollinationX (PX) storage NFTs.

## Authentication

## Authenticate user

<mark style="color:blue;">`GET`</mark> `/auth/login`

#### Query Parameters

| Name                                        | Type   | Description                                                                       |
| ------------------------------------------- | ------ | --------------------------------------------------------------------------------- |
| wallet<mark style="color:red;">\*</mark>    | String | The user's wallet address.                                                        |
| chain <mark style="color:red;">\*</mark>    | String | The chain identifier.                                                             |
| nonce<mark style="color:red;">\*</mark>     | String | A non-reusable value provided by the client to prevent replay attacks.            |
| signature<mark style="color:red;">\*</mark> | String | The signature generated by signing the request data using the user's private key. |

{% tabs %}
{% tab title="200 Authentication successfull" %}

```json
{
    "success": true, //  Indicates whether the request was successful or not.
    "nfts":  // An array of NFT objects.
	[
        {
            "contract": {
                "address": Address of the NFT contract,
            },
            "id": {
                "tokenId": Unique identifier of the NFT,
                "tokenMetadata": {
                    "tokenType": Type of the token
                }
            },
            "balance": Balance of the NFT,
            "title": Name of the NFT,
            "description": Description of the NFT,
            "tokenUri": {
                "gateway": Gateway URL for accessing the token URI,
                "raw": Raw token URI
            },
            "media": [
                {
                    "gateway": Gateway URL for accessing the media file,
                    "thumbnail": URL of the thumbnail image associated with the media,
                    "raw": Base64 encoded SVG image data,
                    "format": "svg+xml",
                    "bytes": media size
                }
            ],
            "metadata": {
                "name":  Name of the NFT metadata,
                "description":  Description of the NFT metadata,
                "image": Base64 encoded SVG image data for the NFT metadata,
                "attributes": [
                    {
                        "display_type": "boost_percentage", // Display type of the attribute
                        "value": 3, // Value of the attribute define how much storage is already used
                        "trait_type": "Usage" // Trait type of the attribute.
                    },
                    {
                        "value": "5GB", // Maximum PX Storage NFT capacity
                        "trait_type": "Capacity"
                    }
                ]
            },
            "timeLastUpdated": Timestamp indicating the last update time,
            "contractMetadata": {
                "name": Name of the NFT contract metadata,
                "symbol": Symbol of the NFT contract metadata,
                "tokenType": Type of the token supported by the contract,
                "contractDeployer": Address of the contract deployer,,
                "deployedBlockNumber": Block number at which the contract was deployed,
                "openSea": {
                    "lastIngestedAt": Timestamp indicating the last ingestion time by OpenSea.
                }
            },
            "jwt": JWT (JSON Web Token) for authentication purposes,
            "endpoint": API endpoint for interacting with the PollinationX.
        },
     ],
    "totalCount": Total count of NFTs returned
}
```

{% endtab %}

{% tab title="500: Internal Server Error Authentication failed" %}

```json
{ error: Error message }
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
**Tip:** This endpoint allows you to authenticate a user and check their PollinationX (PX) storage NFTs without triggering a blockchain transaction or incurring any gas fees.
{% endhint %}

### Auth URL:

{% embed url="<https://6cp0k0.pollinationx.io/auth/login>" %}

The URL link defines which parameters must be sent. The user proves the storage ownership (i.e. PX sNFT) by signing with MetaMask. PX sNFTs are available for minting at the [PX Dashboard](broken://pages/uZ7WbNdgG6gJ3kJmMD9C).


# Upload

This API endpoint allows you to add a file to the decentralized storage.

{% hint style="info" %}
**Good to know:** Upload API automatically checks the NFT holder storage quota.&#x20;
{% endhint %}

{% hint style="warning" %}
If using API for uploading, files are not encrypted. Do not store any private or sensitive information in an unencrypted way. If you want encryption out of the box consider using our [PollinationX SDK](/developer-section/px-sdk).
{% endhint %}

## Upload file

## Upload file

<mark style="color:green;">`POST`</mark> `/api/v1/add`

API endpoint and JWT token is available in [Authenticate user](#authenticate-user) api response.&#x20;

#### Headers

| Name                                            | Type                | Description                                         |
| ----------------------------------------------- | ------------------- | --------------------------------------------------- |
| Authorization<mark style="color:red;">\*</mark> | Bearer \<jwt token> | he authentication token required to access the API. |

#### Request Body

| Name                                   | Type                | Description                        |
| -------------------------------------- | ------------------- | ---------------------------------- |
| file<mark style="color:red;">\*</mark> | multipart/form-data | The file to be added to the system |

{% tabs %}
{% tab title="200 The request was successful" %}

```json
{
	"Name": "The name of the uploaded file",
	"Hash": "The Content Identifier (CID) of the file on the decentralized storage. It uniquely identifies the file and can be used to retrieve or reference it.",
	"Size": "The size of the uploaded file in bytes"
}
```

{% endtab %}

{% tab title="500: Internal Server Error An error occurred while processing the request" %}

```json
{ error: Error message }
```

{% endtab %}

{% tab title="401: Unauthorized The request lacks valid authentication credentials or the provided token is invalid" %}

{% endtab %}
{% endtabs %}

{% hint style="info" %}
The provided CID (`"Hash"`) in api response can be used to interact with the decentralized storage system to retrieve or manipulate the file as needed.
{% endhint %}


# Download

This API allows you to download a file from the decentralized storage using its Content Identifier (CID)

{% hint style="info" %}
**Good to know:** Consider the size of the file you are downloading and the network conditions. Larger files may take longer to download, so ensure that your application handles file downloads efficiently and provides progress indications if needed.
{% endhint %}

## Download file

## Download file

<mark style="color:green;">`POST`</mark> `/api/v1/get`

API endpoint and JWT token is available in [Authenticate user](#authenticate-user) api response.&#x20;

#### Query Parameters

| Name                                  | Type   | Description                                                                                         |
| ------------------------------------- | ------ | --------------------------------------------------------------------------------------------------- |
| arg<mark style="color:red;">\*</mark> | String | The Content Identifier (CID) of the file you want to download from the decentralized storage system |

#### Headers

| Name                                            | Type                | Description                                         |
| ----------------------------------------------- | ------------------- | --------------------------------------------------- |
| Authorization<mark style="color:red;">\*</mark> | Bearer \<jwt token> | he authentication token required to access the API. |

{% tabs %}
{% tab title="200 The request was successful" %}

```
Binary image
```

{% endtab %}

{% tab title="500: Internal Server Error An error occurred while processing the request" %}

```json
{ error: Error message }
```

{% endtab %}

{% tab title="401: Unauthorized The request lacks valid authentication credentials or the provided token is invalid" %}

{% endtab %}
{% endtabs %}

{% hint style="info" %}
The provided CID (`"Hash"`) in api response can be used to interact with the decentralized storage system to retrieve or manipulate the file as needed.
{% endhint %}


# PX SDK

Interact with the PollinationX APIs using the PollinationX SDK. With just a few lines of code, unlock the potential of PollinationX's infrastructure.

The PX SDK is a comprehensive, stable, and powerful Javascript SDK in place to interact with the PX architecture.&#x20;


# Quick start

### Instal the SDK:

```
npm i @pollinationx/core
```

### Resources

{% embed url="<https://github.com/PollinationX/sdk-js>" %}


