[GENERAL] Name and Surname of Main Applicant
Adriano Fiorenza
[GENERAL] Email address of Main Applicant
adriano@gamechanger.finance
Additional Applicants
Roberto Morano (Advisor)
[GENERAL] Please specify how many months you expect your project to last (from 2-12 months)
8
[GENERAL] Please indicate if your proposal has been auto-translated into English from another language.
No
[GENERAL] Does your project have any dependencies on other organizations, technical or otherwise?
Yes
[GENERAL] If YES, please describe what the dependency is and why you believe it is essential for your project’s delivery. If NO, please write “No dependencies.” in this field.
- Dandelion Decentralized APIs - wallet and future HTTP service backend APIs. Making GCWallet posible since 2021
- CSL - Emurgo's Cardano Serialization Lib, making GCWallet posible since 2021
- Current Cardano Protocol Specification - We are always succeptible to breaking changes or updates in or caused by protocol level changes that can delay our development
[GENERAL] Will your project outputs be fully Open Source?
No
[GENERAL] If NO, please describe which outputs are not going to be open source. If YES, please write “Project will be fully open source.” in this field.
- GameChanger Wallet Dapps are auditable and open by design and GCFS read, write and search functions are already available on our DSL for developers to use. Our scripting language DSL JSON Schema and documentation will be available for everyone
- HTTP Server will not be open source on first stages of the project to ensure project sustainability but as protocol is open, eventually this server source code will became open source.
- API Server will not be open source on first stages of the project to ensure project sustainability but as protocol is open, eventually this server source code will became open source.
- In the future, if community request us a library to read and decode GCFS despite offering our APIs and HTTP services for this, we may split and package our internal library and publish it open source.
[METADATA] Category of Proposal
Dev Tools, API or Library
[IMPACT] Please describe your proposed solution.
The Problem:
Cardano's clever design leverages on storing around a 5% of data on-chain and keeping the rest of the 95% of the dapp code handling and storage off-chain to improve scaling and performance. It's that so that half of the Cardano community opts to name the "executable" part of this on-chain data as validators instead of smart contracts because it's mostly validation code, not the entire business logic inlined on the chain.
This while is great because give us the freedom to chose what to store on-chain or not, it's currently making developers store crucial data / dapp code on centralized hosting solutions (frontend and backend deployments, databases, configuration files, smart contract code, etc..), and 99% of all our current dapps and DAOs are not prepared for
- disaster recovery
- censorship resistance
- dapp hosting redundancy
- decentralized dapp hosting
- perpetual, updatable and versioned data/code hosting
- collaborative on-chain code/data repositories, with monetization included
- better and standarized on-chain data management
- on-chain byte footprint
- full transparency vs off-chain opaque code
- cryptographically signed oracle/dapp/DAO's data and code
- clearer and predictable DAO and treasury monetary operations
- and many more
Nevertheless Cardano general purpose features allows builders to store on-chain not only monetary transactional data but also arbitrary data in 2 different ways by protocol specification. All NFT's, dapp, oracle, messages, use this storage space every day, mostly without caring about data compression, de-duplication and indexing. Protocol "defends" itself with fees for each byte of allocated data but nevertheless we are not caring enough to optimize this on our current chain operations and infrastructure providers are already suffering the consecuencies. In the future, not everyone will be able to deploy a Cardano full node due to full data size.
While it's wise to make good use of these native data storage features, almost nobody is caring for optimizing, indexing, and avoiding data duplication on Cardano Layer 1...
We did.
We cared about all these issues and we have already solved almost all of them with GCFS, our functioning on-chain file/data storage system protocol.
Some issues left solving are just because we need tiny improvements and tooling around it, and we are a small team that needs your help to make these last efforts. We delivered first as this is already fully functioning and powering GameChanger Wallet Beta, but now we are asking funds to continue the work.
These GameChanger Wallet Beta (v2) working features are a living proof of the success of GCFS:
- Full on-chain dapp code and data storage
- Executable on-chain scripts, not only Plutus Validators
- Workspaces
- Multisig
- GCFS read. write and search features for developers and users on Dapp Connector API and UI
And specially an entire voting dapp coded in less than 12 hours exclusively for Catalyst, to proof and show all the stack working together,
- React + GCScripts (our JSON based DSL) + GCWallet + GCFS,
- without any specialized nor centralized backend to aggregate the data,
- a trully Web3 on-chain voting system.
- time window for voting expirity enforced by protocol,
- CIP-8 signature
- User updatable aliases and profiles
- and the dapp never receives personal information from the wallet to work, the voter remains anonymous
- works in desktop and mobile without any difference
- Try it out on preproduction testnet (less than 10 tADA, airdrop included if empty wallet and you wait a minute):
https://gcvoting.netlify.app/catalyst/fund10/102594
If you are in a hurry, here you have two simple voting actions with a pre-defined user alias setup, two simple links or buttons to quickly cast your votes for this proposal. Because also both or them are dapp connections, you haven't realize until now that this document it's also a dapp :) .
voting results
(* Links/dapp may get deprecated in time as it's on wallet Beta version and may get improvements)
Frequently Asked Questions:
- "OMG you want to store entire files on chain on a non file storage intended blockchain?"
Yes and no. GCFS was designed based on a file system approach instead of any other database design because dealing with files is a concept almost every user and developer understands. This being said, it's very versatile and you can use GCFS for example as a key-value database already. Every small piece of data, being an actual file or not, can be represented as a "file", a content with a file name to look it up.
Also this means that you can store entire image, audio, video, and other files there but protocol and Cardano design is not prepared for huge files so while it's posible, it's very impractical and expensive. So yes, file uploading (watch video), IPFS pinning and file hosting is already posible but network fees must be payed and transaction submission and confirmation time must be awaited for.
GCFS is already indexed, deals with storage footprint reduction, and creates statefull updatable and versioned NFTs (DiskNFTs) to handle this file system directory structures so yes, we want to store files on-chain to standarize and improve the way Cardano is currently using the chain for dealing with NFTs, oracles, and many other use cases.
- "How to use if it's provided on GameChanger Dapp Connector which is not CIP30?"
It's not because we speak "lenguajes diferentes" that we cannot connect together. GameChanger Wallet has a different Dapp Connector because it offers a
- unique,
- platform/device independent,
- privacy preserving,
- wallet agnostic
- open, auditable,clonable, reusable JSON DSL scripting language,
- easy to integrate everywhere
technology that was first conceived back in 2021 from scratch specially for Cardano without being inspired in any other blockchain. It's URL and JSON based, we have from PDFs to even hardware dapps already talking to the wallet. With GC you can turn everything into a dapp, from websites to social media, chats, emails, QR codes, hardware, PDFs, games, almost everything.
If this is not enough for you, and you want to stick to CIP30 and current technologies, several interoperability features are being worked on right now by the team, starting with having half of Ledger wallet integration complete (Catalyst funded project) and including plans related to CIP30 before 2024.
Detailed Solution:
In order to fully complete this solution, these deliverables will be worked on, to a certain degree in parallel to benefit from continuous protocol and end product relationship feedback.
Deliverable 1: Improve protocol and it current wallet implementations
- Improve or review protocol design, take time to do some further research.
- Improve and review the current working GameChanger Wallet API implementation of GCFS
- Improve or review current used backend API connections.
- Add an optional and default native compression algorithm to reduce the final on-chain byte footprint and reduce operation costs.
- If possible/reasonable, leverage all wallet GCFS read and lookup operations on a deployed GCFS service to benefit from cache and more performant query features.
- Update GC APIv2 dapp connector and documentation to use and reflect this improvements
- Update GC features depending on GCFS to use and reflect these improvements, such as GCScript storage compression ( and dapp connector URL compression to match it ), file system creator/deployer UI, Multisig Over GCFS Protocol and Workspace storage API and UI. These wallet features have been the first use cases of GCFS and provide immediate usage feedback and testing ground for it.
Deliverable 2: GCFS HTTP Server
- Research and design stage. Cache structure and features. External library and API dependencies.
- Create an HTTP service able to index or cache the files and file system metadata structures being requested to minimize future content delivery and lookup queries response times
- Maintain file system metadata in cache in such a way versioning can be used to run lookups, something currently impossible on wallet implementation
- Allow GCFS URI based content delivery on the web with directory paths and versioning
Deliverable 3: GCFS API Server
- Research and design stage. Endpoints. Paths. Cache structure and features. External library and API dependencies.
- Index the files and file system metadata structures being requested to minimize future content delivery and lookup queries response times
- Index file system metadata in such a way versioning can be used to run queries, something currently impossible on wallet implementation
- Add endpoints to run basic queries like file content, file name and keyword lookups across all existing DiskNFTs file systems on Cardano.
Deliverable 4: GCFS HTTP Service on Dandelion
- Service proudly provided for the community by Dandelion Decentralized APIs, a first stage supported by a portion of the budget to cover infrastructure and management costs.
- Adapt and connect wallet features to use it
Deliverable 5: GCFS API Service on Dandelion
- Service proudly provided for the community by Dandelion Decentralized APIs, a first stage supported by a portion of the budget to cover infrastructure and management costs.
- Adapt and connect wallet features to use it
[IMPACT] How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?
- Creation and improvement of tools and software that help make it easier for projects to develop on Cardano.
- GameChanger Wallet by design makes developers life easier since 2021.
- No more complex, low level transaction building on dapp side.
- No more semi-senior or senior developers needed to create dapps.
- No more huge complex library/SDK dependencies for builders
- No more several different tooling dependencies, you can start coding right away from our in-wallet Playground IDE, the built-in Code Editor that already:
- validates syntax
- builds executable URLs (dapp connection)
- builds executable QR Codes (dapp connection)
- generates a minimal HTML5/JS Dapp for fast deploying and integrating Cardano on the web (dapp connection)
- Has built-in code runner and live debugger (dapp connection)
- Has integrated documentation explorer
- Has integrated DSL JSON Schema explorer
- Has a GCFS Filesystem deployer and updater
- upload several files using UI
- update an existing DiskNFT
- one click code and generated HTML dapp deployment
- Well known building blocks like JSON for script coding turns everyone into a Cardano dapp builder, even to accomplish very advanced use cases, our DSL is a very powerfull Cardano library by itself.
- No more device limitations: GCWallet allows you to turn everything containing links into a dapp, like an email, chat, social network, QR code, web pages and even hardware devices. You can connect you wallet from desktop, mobile, and any other device containing a browser like Cardano Totem public terminals.
- No more coercion to users to share personal data to dapps due to lack of alternative dapp connection technologies, our dapp connector is wallet-agnostic by design since 2021.
- GCFS endless use cases:
- Perpetual, Sensorship Resistant Dapp-Wallet Interfaces (Currently on GC Wallet Beta)
- Colaborative code hosting and versioning powered by Cardano cryptography (Currently on GC Wallet Beta). Allows sustainable (open source or private) code modules as charging fees on GCScript is as easy as adding a couple lines of code.
- Multisignature (Currently on GC Wallet Beta)
- Workspaces (Currently on GC Wallet Beta)
- Voting (Working demo available)
- Perpetual, Sensorship Resistant, Web Hosted Dapps
- Statefull NFTs use cases: games, social networks, project management, etc...
- IPFS pinning on Cardano. We are not a file storage blockchain but we still need to store data everyday for the ecosystem, we can put order to chaos and also standarize this data by making it compatible with IPFS by implementing pinning services.
- much more...
- Research, analysis and creation of standards, resources or documentation that bring either novel innovation to the ecosystem or help with improving the education around what is available in the ecosystem for development or running infrastructure.
- GCFS On-Chain File Storage Protocol standard and documentation
- Code examples
- Dandelion GCFS APIs available for the community
- Live coding sessions, demos and tutorials.
[IMPACT] How do you intend to measure the success of your project?
Blockchains are public ledgers, even when we store encrypted data there, we can still at least obtain usage metrics. Mainet metrics of course are the main goal but by also checking on testnet metrics we can take a clear picture of intent: How many developers and students are trying to integrate GCFS.
Usage metrics can also be obtained by analyzing our social media accounts, twitter, youtube, discord server.
Ledger metrics:
- Number of GCFS DiskNFTs minted
- Number of GCFS files created
- Number of transactions on GCFS write events - exponential network fee growth
Social metrics:
- Number of GCFS dapps and use cases, (not only dapps can implement GCFS, users, SPOs, DAOs, etc...)
- Number of developers/students curious or already integrating GCFS. (We have receive lot of questions regarding GCFS already, this makes us confident about launching this project)
- Number of users asking, interacting and learning about DiskNFTs and GCFS.
- Increase of productivity: check stories and videos on this proposal to confirm how much development time and efforts got reduced already to accomplish the shown use cases, such as an entire whitelisted, time limited, 1 wallet 1 vote, voting system in a couple of hours even fetching and filtering voting results, all through the wallet's built-in code editor. Further metrics will be also obtained by stories on community social media.
[IMPACT] Please describe your plans to share the outputs and results of your project?
As done before on previous Catalyst funded projects, GameChanger Wallet team always delivers monthly reports non-stop, explaining the achieved milestones one by one plus adding screen captures, videos, demos, or if posible the entire code of the project if applies.
In this case we will share:
- screen captures of working demos, new documentation, file artifacts, or code advancements
- videos of working demos and other relevant knowledge
- Executable Dapp Connector links, allowing to test new features on wallet DSL/API
- Links to Dandelion API endpoints
- In-wallet code examples like we always provide to test right away on Playground IDE, our built-in code editor.
In this case we may also share:
- Links to Dapp Connector/DSL JSON schema (public already)
- Links to Dapp Connector/DSL Documentation (public already)
- Social/Community related feedback, news, events, articles, etc.
[CAPABILITY/ FEASIBILITY] What is your capability to deliver your project with high levels of trust and accountability?
You may be new to Cardano or may have lost some track of our project history, so here I will summarize relevant facts that you can check on your own to evaluate this project capability to deliver.
- GameChanger Wallet has been online in Cardano since 2021 Q2 using personal funds and receiving support from the community and from Dandelion API infrastructure, whom are today our closest partners.
- We are hosting 2 versions online:
- Legacy : our V1 for Mainnet and Pre-Production since 2021
- Future: our cutting edge V2 on beta stage released in 2023 Q1
- We are long term builders on Cardano community, Gimbalabs, ALDEA DAO, members and community colaborators. Ex Emurgo, current Cardano Foundation staff, experienced developers, sys admins, hardware designers. Some of us like myself, Adriano, I quit everything else back in 2021 to dedicate fulltime into Cardano with this wallet and the ecosystem surrounding it because I believe with passion and conviction in what this project and Cardano can offer to the community.
- We have been trying to dedicate weekly to teach and assist students and builders for free on english and spanish live coding sessions and other initiatives not because we have free time, but because this wallet has been designed to onboard students and builders into Cardano, lowering learning and infrastructure barreers for everyone and also because with it we are designing the ultimate toolkit for Cardano builders and students, and we care for feedback during beta stage to improve our product for the people.
- We have been participating on Catalyst since Fund6, and continue to exist and to work even when we had funding gaps or lack of active Catalyst campaigns as seen recently.
- We have been funded in Fund 7 with projects, some of them has been finished already. One of them had to grow much more in complexity and nevertheless we finished it even while completely out of budget.
- We are actively presenting detailed monthly reports of our pending projects with proofs of milestones. We are a small team, we can get delayed because building in a novel and evolving ecosystem such as Cardano is not easy task, but we always deliver what we promess. Currently we are integrating hardware wallets like Ledger, and preparing for more interoperability features.
[CAPABILITY/ FEASIBILITY] What are the main goals for the project and how will you validate if your approach is feasible?
Technical goals achieved upon milestone completition :
- Improve the design of current GCFS protocol by
- adding support for a native compression algorithm
- normalize the on-chain specification
- other improvements that will be known during the design phase
- redesign the common Js/Ts GFCS library
- Improve the API calls of the library taking into account
- existing Dandelion backend APIs
- new backend GCFS HTTPs server + REST server
- Improve/update all the in-wallet GCFS integrations or impact
- integrate the new GCFS library
- integrate the new GCFS backend APIs
- Dapp Connector API/DSL functions, schema and documentation
- Workspaces
- Multisig over GCFS plugins
- Common file type handlers for DiskNFTs in UI
- GCScript GCFS examples
- Build a GCFS HTTP server
- Ledger data to off-chain storage and indexing
- File cache
- Build a GCFS REST server
- Run search queries
- Index versioning
- Provide to community and also consume the new GCFS servers
- Dandelion setup, deploy and management
On chain verifiable goals that can be measured by analysing ledger data:
- Increase statefull DiskNFT minting
- Increase GCFS transactions, what implies more transaction fees.
Ecosystem goals that can be measured by social media interaction:
- Improve developer productivity
- Reduce complexity of building on Cardano
- Increased amount of dapps and other GCFS use cases
[CAPABILITY/ FEASIBILITY] Please provide a detailed breakdown of your project’s milestones and each of the main tasks or activities to reach the milestone plus the expected timeline for the delivery.
Milestone 1: Review protocol design and research
- Activities:
- performance
- security
- compression support and usage cost reduction impact
- data structure normalization
- URI normalization and variations
- URI, file, data encodings and posible issues
- indexing
- prepare ground for further scaling
- choose new backend APIs to fetch ledger data
- library redesign strategy
- dependencies
- run tests
- Timeline: 1 month
- Acceptance criteria: gain all major required technical desitions to move forward
Milestone 2: GCFS REST API Server design and research
- Activities:
- storage
- caching strategy
- performance
- posible queries
- result formats
- indexing
- dependencies
- run tests
- Timeline: 2 weeks
- Acceptance criteria: gain all major required technical desitions to move forward
Milestone 3: GCFS HTTP Server design and research
- Activities:
- storage
- caching strategy
- performance
- indexing
- dependencies
- run tests
- Timeline: 2 weeks
- Acceptance criteria: gain all major required technical desitions to move forward
Milestone 4: GCFS library review and rewrite
- Activities:
- implement data types and new helpers.
- implement new performance and security improvements
- add optional compression support
- apply data structure normalization (breaking changes)
- URI, file, data encodings helpers
- apply new and improve existing indexing strategies
- prepare for future scaling updates, hashing methods, reserved properties
- use new backend APIs to fetch ledger data and create transports to normalize data input
- internal documentation
- run tests
- Timeline: 1 month
- Acceptance criteria: succesfull tests or demos to move forward
Milestone 5: Update wallet integrations
- Activities:
- integrate the new GCFS library
- integrate the library's backend APIs transport
- Update Dapp Connector API/DSL functions, schema and documentation
- Update Workspaces
- Update Multisig over GCFS plugins
- Update common file type handlers for DiskNFTs in Asset View UI
- Add/update GCScript (DSL) GCFS examples
- Timeline: 1 month
- Acceptance criteria: wallet features implementing all new protocol features and updates that don't depend on the new to-be-deployed backend services
Milestone 6: GCFS REST API Server development
- Activities:
- GCFS library integration and API transport
- on demand on-chain data to indexed local storage cache
- apply caching strategy
- Internal backend library for indexed searchs and data queries
- API endpoints and resolvers
- deployment setup and documentation
- run tests
- Timeline: 1 month
- Acceptance criteria: successfull endpoint and deployment testing
Milestone 7: GCFS HTTP Server development
- Activities:
- reuse/extend internal backend library
- apply caching strategy
- URI based routing
- Response types/mime types
- deployment setup and documentation
- run tests
- Timeline: 1 month
- Acceptance criteria: successfull http hosting and deployment testing
Milestone 8: Dandelion deployment
- Activities:
- deployment scripts for mainnet and preproduction testnet
- developer feedback for latest fixes
- posible documentation and endpoint publishing
- Timeline: 2 weeks
- Acceptance criteria: successfull HTTP and API endpoint hosted for testnet and mainnet
Milestone 9: Update wallet integrations to use Dandelion deployment
- Activities:
- Replace some library's API transports for the new deployed HTTP and API REST services
- Timeline: 2 weeks
- Acceptance criteria: wallet features working successfully, implementing all new protocol features and updates from GCFS library and deployed services
Milestone 10: Developer resources and documentation
- Activities:
- Tutorials
- Live coding sessions
- Code examples
- Timeline: 1 week
- Acceptance criteria: Publish basic material for developers to start building
[CAPABILITY/ FEASIBILITY] Please describe the deliverables, outputs and intended outcomes of each milestone.
Milestone 1: Review protocol design and research
- Deliverables:
- review and research summary
- data analysis (optional)
- tests screen captures (optional)
- info graphics (optional)
Milestone 2: GCFS REST API Server design and research
- Deliverables:
- design and research summary
- tests screen captures (optional)
- info graphics (optional)
Milestone 3: GCFS HTTP Server design and research
- Deliverables:
- design and research summary
- tests screen captures (optional)
- info graphics (optional)
Milestone 4: GCFS library review and rewrite
- Deliverables:
- summary
- tests/demo screen captures or recordings
Milestone 5: Update wallet integrations
- Deliverables:
- summary
- localhost wallet instance screen captures or recordings
- published new wallet version (only if it's wise to rush an update at this point!)
- documentation
Milestone 6: GCFS REST API Server development
- Deliverables:
- summary
- tests/demo screen captures or recordings
- documentation
Milestone 7: GCFS HTTP Server development
- Deliverables:
- summary
- tests/demo screen captures or recordings
- documentation
Milestone 8: Dandelion deployment
- Deliverables:
- summary
- endpoint links / instructions
Milestone 9: Update wallet integrations to use Dandelion deployment
- Deliverables
- summary
- localhost wallet instance usage screen captures or recordings
- published new wallet version (should be posible at this point)
Milestone 10: Developer resources and documentation
- Deliverables:
- Tutorials/Live coding session
- Code examples
[RESOURCES & VALUE FOR MONEY] Please provide a detailed budget breakdown of the proposed work and resources.
Milestone 1: Review protocol design and research
- Senior Cardano Development
- Total: USD 7.763,25
Milestone 2: GCFS REST API Server design and research
- Senior Cardano Full Stack Development
- Total: USD 5.175,50
Milestone 3: GCFS HTTP Server design and research
- Senior Cardano Full Stack Development
- Total: USD 5.175,50
Milestone 4: GCFS library review and rewrite
- Senior Cardano Full Stack Development
- Total: USD 10.351,00
Milestone 5: Update wallet integrations
- Senior Cardano Full Stack Development
- Total: USD 10.351,00
Milestone 6: GCFS REST API Server development
- Senior Cardano Full Stack Development
- Total: USD 10.351,00
Milestone 7: GCFS HTTP Server development
- Senior Cardano Full Stack Development
- Total: USD 10.351,00
Milestone 8: Dandelion deployment
- Infrastructure Cost - 4x Deploys (USD125/mo)
- Total: USD 6.000,00
Milestone 9: Update wallet integrations to use Dandelion deployment
- Senior Cardano Full Stack Development
- Total: USD 5.175,50
Milestone 10: Developer resources and documentation
Total Budget: USD $73.281,50 = ADA 258.397,39
Current rate: 1 ADA = USD 0,2836
[RESOURCES & VALUE FOR MONEY] How does the cost of the project represent value for money for the Cardano ecosystem?
All costs has been calculated on average values and some considerations has been taken into account to reduce costs on research and design and other milestones. Some team member participations wont be taken into account as yet further cost reductions, leaving treasury budget for other projects.
Proposed costs are calculated based on current average monthly salaries for Senior Web Fullstack Developers with experience in Cardano eUTXO model and blockchain development with costs from USA as reference also because project management may be US based due to team member residence location. Also month salary units has been taken into account as profesionals availability is not hourly based, even more with senior developers experienced in Cardano eUTXO model.
We consider that what this protocol and surrounding tooling has to offer to the Cardano Ecosystem makes value for money, not only taking into account all the benefits for developers, dapps and use cases, but also taking into account all the potential risks of a careless design, such as security issues, a harmfull impact on in-block uncompressed data size footprint and extra infrastructure costs on a non optimal nor more performant implementation. Currently the lack of this improvements and servers limits GameChanger Wallet performance and offered features for users and builders on Cardano.
[IMPORTANT NOTE] The Applicant agreed to Fund10 rules and also that data in the Submission Form and other data provided by the project team during the course of the project will be publicly available.
I Accept