project screenshot 1
project screenshot 2
project screenshot 3

Forever More

A DAO that manages the renewal of storage deals, with a high replication factor. In a way trying to achieve perpetual storage.

Forever More

Created At

FVM Space Warp

Project Description

ForeverMore is a dApp that can be used as a starting point for a DAO operating on the Filecoin network.

The objective of the smart contract, called by this web app, is to manage the deals between two actors:

  • simple users of the network, that want to store some files
  • service providers that offer up their space in exchange of currency

At the same time the app aims to allow its users the option to store in a convenient way files, that are replicated over the network at any point in time. For the storage providers it aims to provide a steady source of income from new storage bounties.

In the current verion the basic user can create a storage deal offer/bounty for a file based on its CID. For each bounty he can select:

  • the desired amount of replicas that he wants to achive on the filecoin network
  • the minimum storage period desired for each replica

Once the storage period for a replica has passed/expired it will try to make a new replica in the network for the same storage period that was first defined at the creation of the bounty. That will happen only if there are storage providers on the network willing to still take up the offer, and if the user that initiated the storage bounty has enough funds deposited in the contract.

How it's Made

A FEVM smart contract that runs under the hood (deployed on the hyperspace testnet). On top of that there is a single page web-app that interact with the smart contract.

The start for the smart contract was the BountyRewarder.sol from the fevm-hardhat-kit project. By initially understanding what was implemented there, elaborated a more complex contract where the user can replicate its data and new deals are made when existing ones are expiring.

For the frontend I used the collectif-fevm-frontend-template. That project had a lot of pieces that I could use for my project without the need to start from scratch. I created some new React components that invoke the contract. For the moment all of the components are displayed on the main page. All the data displayed by the web app in is stored on-chain. There are no other auxiliary methods for storing application data.

background image mobile

Join the mailing list

Get the latest news and updates