Porcupin - Tezos NFT Backup Node

Tezos Ecosystem DAO Funding Application: Porcupin – Tezos NFT Backup Node

1. Name:
FAFOlab

2. Email or contact method:
@fafo_lab (Proposer handle) / info@fafolab.xyz

3. Geographic location:
United States of America

4. Are you applying on behalf of a company, or as an individual:
On behalf of a company/team (FAFOlab)

5. If company, provide company name and website:
FAFOlab / fafolab.xyz

6. Name of project or idea:
Porcupin – Tezos NFT Backup Node

7. Detailed description of your project or idea and why you believe it deserves funding:

  • Abstract: Porcupin is a modern, self-hosted backup node designed to preserve Tezos NFT history. It connects to the Tezos blockchain, identifies NFTs associated with specific wallets, and ensures their content — metadata, images, and assets — remains available on IPFS. By repinning NFT assets, Porcupin prevents data loss caused by cache eviction or disappearing hosts, safeguarding the cultural and economic value of Tezos NFTs.
  • Problem Statement: Collectors and creators on Tezos face a critical risk: while the blockchain guarantees ownership records, the actual NFT media (images, videos, metadata) can vanish if IPFS gateways or pinning services stop hosting files. This gap threatens the integrity of the Tezos NFT ecosystem.
  • Proposed Solution: Porcupin addresses this challenge by running as a specialized backup node that continuously monitors wallets and repins metadata and media to IPFS. It offers a native desktop app and server/Docker deployment (including Raspberry Pi support) for a simple “set and forget” experience.
  • Expected Impact: Strengthened infrastructure for NFT permanence, reducing reliance on centralized pinning services. This provides peace of mind for Collectors and long-term preservation of artistic work for Creators.

8. What type of background or experience do you have and your team have in building out a project like this:
FAFOlab is a project of skllzrmy.tez (tz1Qi77tcJn9foeHHP1QHj6UX1m1vLVLMbuY) and Paulwhoisaghost (tz1cgZ6PWKoER3gvW3jGKPHgBkRnpj8XzLm2), two long-time active members of the Tezos community. Both members reside within the United States of America. Together we have released over 10 new tools and projects focused on the Tezos ecosystem, including REJKT, ColleKT, B.A.F.O., and Vibe Art. Most projects have been created and released as freely open-source codebases and were funded completely internally. skllzrmy.tez has over 20 years of professional experience building and delivering applications, experiences, and technical solutions to a diverse global clientele. This combined experience demonstrates the team’s ability to deliver projects successfully.

9. Social handles of project, if any:
@fafo_lab (Proposer/Team)
@skllzarmy
@_TransparentArt

10. Funding amount being requested (please make sure the DAO treasury can currently support it, suggested range is 500–20,000 tez depending on project requirements and value):
Amount: 5,100 XTZ (approximately $2,550 USD)

Budget Breakdown and Use of Funds:
The requested funding will cover the cost of development and testing, materials (Raspberry Pi for development and testing), creation and maintenance of a web homepage, wiki & documentation, and download service, creation of the software, and ongoing support for the term of one year.

11. Tez address to be funded (please verify accuracy):

fafolab.tez - tz1U4wbRsojw1uWcNUpVMK2uihuhhXFYNVg3

12. Proposed goals/GPIs to deliver for the requested funding (funding may be broken into two tranches, with final half distributed after some proven deliverables):

Phase/Milestone Timeline Deliverable
Initialization wk 1 Public GitHub repo established + core architecture defined.
Prototype wks 2–4 Functional prototype (Tezos API integration + core IPFS pinning logic).
Beta Release wks 5–8 Beta release (native desktop app for major OS + Docker image).
Full Release wks 9–12 Full release (Raspberry Pi support integrated + comprehensive documentation/wiki).
Maintenance & Support wks 13–64 Ongoing issue resolution, minor updates, and security patches (12 months of support).

Funding Tranches & Licensing:

  • Funding Tranche 1 (50%): Upon approval of funding.
  • Funding Tranche 2 (50%): Upon delivery of the final complete version (Week 12) and transition to the support phase (Week 13).
  • Licensing Commitment: The project will be released under the MIT or a similar open-source license, and the source code will be made freely available to the public.

Measurable KPIs:

  • Public GitHub repo established and core architecture delivered by Week 1.
  • Functional prototype with IPFS pinning logic delivered by Week 4.
  • Beta release with desktop app and Docker image delivered by Week 8.
  • Full release with Raspberry Pi support and documentation delivered by Week 12.
  • Minimum 3 tutorials published (desktop, Raspberry Pi, Docker) by Week 12.
  • Regular commits and support as needed during the 12-month support phase.
10 Likes

I really like it.

Quick question though: what sets this apart from Jack’s Archiver? I’m curious about the extra benefits.

Jacks Archiver: https://x.com/JackTezos/status/1958552182526968044?s=20

5 Likes

Great question! Jack’s tool is actually backing up the files to the Internet Archive. This ensures the files are not lost, but it falls short of ensuring the Tezos NFTs still function by ensuring the files are available to the IPFS network. It saves the file, but not the functionality of the NFT in Tezos.

My solution provides for an ongoing IPFS backup node that specifically repins whatever a wallet owns/creates. It would be set once and as long as it is online it would keep you backed up. With Jack’s tool, you must visit the tool and run it to update your backup.

7 Likes

I support this :raising_hands:

4 Likes

For those wondering where to vote…

3 Likes

Just clarifying. Will this be pulling CIDs from Octez, TzKT, Objkt? When writing my own back up tools I found discrepancies between higher level APIs and what the chain actually reports.

I’ve had trouble convincing anyone this is a problem so sticking to ground truth, besides the other obvious benefits of being able to run ~20x faster off just a local rolling node, is critical. At least with the current state of Tezos indexing.

1 Like

Fascinating. I hadn’t heard of any discrepancies, nor have I identified any. I would love to read more if you’ve written about this.

TBH I already have a working prototype on my local machine using TZKT APIs/websocket connections, and I haven’t experienced any issues with discrepancies or slowness. The speed isn’t that much of a factor as within a few seconds it’s picked up and backed up.

Adding a whole node to the setup would add a lot of heft to the package and the requirements and I’m not sure of the benefit as of yet, but it’s an interesting idea.

Again though, I would love to know more about your findings so I can properly test it.

2 Likes

How much for maintenance and support for an extra term of 12 months?

How much per year to implement and operate your own official best effort IPFS pinner that goes around block by block, hash by hash, (Compiles a list/DB? Provides API?) and re-pins everything it finds that was ever minted on Tezos, let’s say at least once per year?

Would be cool to have a Tezos of Alexandria project like that. There are some interesting possibilities in terms of what you can offer in theory. It has potential to turn the annoying and boring tech churn to our advantage. You may even get like a single pane of glass experience for people to approach Tezos art around the idea of which works are most replicated on the internet.

People would still be able to give their own works and interests self-hosted pinning priority.

1 Like

Thanks for the thoughtful questions!

For a subsequent term of support, I expect that at the end of 12 months we will have reached relative stability and won’t require a lot more than package maintenance and keeping up with the odd changes to TZKT. I will form a better picture after a few months, however I expect that it would be of relatively low cost. Professionally, I invoice at $100/hr but for this project and in the foreseeable future I’ve applied roughly a 50% discount to that rate. 2 hours of maintenance per month * 12 is about $1200 USD, but that might even be more than needed.

To operate a Tezos-wide backup is absolutely something that becomes easily within reach once this software exists. It is hard to form a solid estimate of true storage costs without performing more research, but it will ultimately come down to the cost of renting that much cloud storage and covering data egress fees. I will endeavor to make this a long-term goal and present another proposal once I have a better idea of operational costs.

Anecdotally I can say roughly 2300 various NFTs equates to some 60GB on disk. I could see that being a mitigating factor at scale.

Cards on the table, we do plan to offer a hosted version of Porcupin for users that wish to opt for a small monthly payment in lieu of maintaining their own instance. So there is definitely long-term alignment for us with this project and we don’t expect to request funding for all needed support and improvement. We plan to offer support and maintenance above and beyond that which might be funded by the Ecosystem DAO, and all will be made under the same licensure.

All that being said, I definitely see a Tezos Archive node on the horizon, and this first proposal would be a huge step in that direction.

1 Like

If it is skllzarmy.tez project then it is going to be great.

1 Like