Overview

SKALE Filestorage is available on each SKALE Chain. This feature lets developers leverage specialized storage resources on the nodes that operate a SKALE Chain nodes to store data in a validated and secure manner that’s in addition to the on-chain data within the SKALE Chain.

To get started, checkout the Filestorage JS NPM Library.

Architecture

SKALE Filestorage consists of several layers:

filestorage architecture

FileStorage.js is a simple npm package allows users to integrate SKALE Filestorage into their decentralized applications with just a few lines of code. This package is an interface to Filestorage.sol which calls a precompiled smart contract (Precompiled.cpp) which has access to the node’s native filesystem. Each of these layers serves an integral part to the process of uploading, downloading, and deleting of files with the EVM.

Upgradeability

SKALE Filestorage leverages a specialized contract to write chunks of data directly into the SKALE Chain and into the storage space. This contract can be upgraded on a per chain basis to suit any variety of functions for SKALE Chain owners.

built-with openzeppelin

And of course, it’s built with OpenZeppelin Upgradeability technology.

Read about how to perform filestorage upgrades.

Web3 File Server

What good are your files if you can’t show them to the world? Here, the SKALE Network provides the answer. SKALE Nodes contain an NGINX server that allows your Web3 files to be served to the world.

nginx %23009639

Check out how this Web3 File Server works.

FAQ

Where can I read more about SKALE Filestorage?

How long will data be stored on SKALE Chain filestorage?

Data will be available as long as the SKALE Chain lifetime. Users or the SKALE Chain owner can extend the life of a SKALE Chain through SKL deposits.

Can I use SKALE Filestorage with NFTs?

Absolutely! You can perform NFT mint operations all on a SKALE Chain, and store URI assets on the same SKALE Chain. Assets are then distributed across 16 nodes and persist through the lifetime of the SKALE Chain. And those URIs can be served through the Web3 webserver.

Are there any size restrictions for stored NFTs?

Currently the maximum single file size is 100 MB, and are uploaded in chunks of 1MB. SKALE Chains can store GBs of data depending on the chain size. For example, medium chains can store up to 60 GBs of data.

Can I run and execute programs from SKALE Filestorage?

No, filestorage is suitable for static content only, like files, photos, videos. You can host a static website from SKALE Filestorage, which may include client-side scripts.

Dynamic websites rely on server-side processing, and currently SKALE filestorage does not support server-side scripting.

Where is the Filestorage ABI?

You can find the latest ABIs here: https://github.com/skalenetwork/filestorage/releases

Why can’t I allocate space?

Ensure that the ALLOCATOR_ROLE has been granted to the address performing reserveSpace().

Other Features

Want to see another feature listed here? Submit an idea to the SKALE Community roadmap!