[GENERAL] Name and surname of main applicant
Dane Mcbride
[GENERAL] Email address of main applicant
linenotsecure@gmail.com
Additional applicants
None
[GENERAL] Please specify how many months you expect your project to last (from 2-12 months)
7
[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.” .
SproutVideo.com and the SproutVideo API libraries
[GENERAL] Will your project’s output/s 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.”
This project involves the creation of a resource API server (OAuth) that can store new token gate configurations on request from a frontend, provide resource auth tokens to OAuth modals, and provide gate payloads to third-party websites. It is this NodeJS server that will be fully open source so that others can create their own token gating service solutions. It will be stripped of the secure environment variables we use, branding language, and niche functionality pertaining to our app, a version that is less confusing for developers to come in and customize.
The components that communicate with that server in order to form a complete gating solution will be proprietary. That includes the self-service frontend, OAuth interstitial app, and web app API. However, the OPS (on-page script) is meant to be publicly hosted and will be provided in the documentation for the gate server on Github as an example for using the gate server's various API routes.
[METADATA] Category of Proposal
dApp
[IMPACT] Please describe your proposed solution.
The solution is a self-service web app and a collection of supporting background services that allow creators to configure token gates in a simple format that requires no coding or advanced understanding of blockchain.
Video hosting and streaming is handled by an API partner, SproutVideo, through a user's own API key as an integration. This token gating app will communicate directly with the user's Sprout account to fetch and play embedded streams for token holders that can be securely restricted to one or more domains, which allows for a new form of distribution control and monetization across multiple video websites at once, with the monetization and distribution settings firmly in the hands of the content creator.
An advanced version of the Sprout token gate is login-based access to videos. The difference between domain-restricted video and the Sprout API for Logins and Access Grants is that a wallet-based OAuth flow can create conditional access to videos (such as max plays) for individual token holders that does not need to be restricted to one website at a time to remain secure. In other words, we are creating a new form of instant distribution control for artists where a token gate can be played for holders on all websites that utilize a form of the on-page script.
This proposal also includes a scope of work for the token gating object, distribution control. At this present time the app allows users to create token gates that work on any one website at a time with a copy/paste script. This new functionality would allow content creators a new form of distribution control - for any video streaming app using this on-page script, creators can dictate which websites their videos can show up on or are banned from, and the effect is immediate.
What is unique about this solution is that the functionality can work on any website thanks to the usage of a custom Oauth flow process and a wallet-based resource server. This third-party authentication approach was important to us because most NFT functionality is hardcoded to work in one way, on a singular website, and it was critical to the vision for the app that the user is in complete control over content access and monetization. We hope that Cardano projects that produce animations, film or other content can honor this app by using it as a service layer for engaging with their audiences.
[IMPACT] How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?
This solution allows creators to monetize content, livestream performances or full-length films to a wide audience through their own NFTs as access. Video access can be applied retroactively to existing projects to provide never-ending opportunities to engage with NFT holders.
This proposal provides an opportunity for the Cardano ecosystem to support mainstream video-based entrepreneurs. Creators and performers who have grown weary of the restrictive monetization abilities of their host platform can use Cardano NFTs to monetize access to their live or recorded works and get started with very little resistance.
[IMPACT] How do you intend to measure the success of your project?
Our core KPIs for this app post launch are:
- Number of unique wallets interacting with gates
- Number of active user accounts
- New video type token gates created
- Number of video gates accessed per month
- Average audience size for livestreams
- Number of 3rd party media accounts integrated
We hope that the resulting impact to the ecosystem will be:
- More utility NFTs minted
- New first-time consumers loading ADA and buying tokens
- Higher visibility for the blockchain as a result of popular content
[IMPACT] Please describe your plans to share the outputs and results of your project?
We will share the progress and results of this work product on our website as blog updates as well as in partnership with project partners on Twitter and Youtube. We want to assist Cardano organizations to utilize this service layer to token gate video such as livestreamed events and educational material, ideally through the use of existing popular and commonly used NFT series.
[CAPABILITY/ FEASIBILITY] What is your capability to deliver your project with high levels of trust and accountability?
The team involved in this project has already created Cardano apps in prior funds and are looking to expand on what we have learned along the same theme of token-gating as a service. The wallet-based gate payload service has already been proven out in live code and we want to now create a professional video-based feature that is ready for the public.
Already set up are UML diagramming, shared drives, and project management through ClickUp. Top-level work-sprints were made to assess the time and cost of this project, and once funded will be broken down into smaller tasks for assignment.
[CAPABILITY/ FEASIBILITY] What are the main goals for the project and how will you validate if your approach is feasible?
Provide a way for existing and legacy NFT projects, particularly those without coding resources, to refresh engagement with their audiences by providing access to various forms of video content.
Create a self-service business app that is built from the ground up for mainstream appeal. Attract new consumers to the Cardano space by first attracting new business users with tools that make sense and make money with their videos, on their own terms.
Play host to live streamed views of official events such as Cardano Consensus and FutureFest.
Become a commonly used service for filmmakers to monetize full-length films on their own website, and provide a path to a new form of distribution control as dictated by the content creator.
[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.
Our milestones are all fully-functional deliverables and are defined primarily by a successful online deployment and a phase of testing. Here are our milestones covering a 3, 6 and 12 month scope.
- Q1
- High-Volume CDN Architecture
- 2 work sprints covering estimated 215 hours
- Starting 10/08/23, target launch 11/02/23
- Projected cost: ₳ 30,728 ($7,682)
- Web App & API Server
- 2 work sprints covering estimated 280 hours
- Starting 11/5/23, target launch 12/10/23
- Projected cost: ₳ 13,856 ($3,464)
- Cardano OAuth Interstitial
- 2 work sprints covering estimated 310 hours
- Starting 12/10/23, target launch 1/15/24
- Projected cost: ₳ 32,284 ($8,071)
- Q2
- Universal Third Party Script
- 2 work sprints covering estimated 285 hours
- Starting 1/18/24, target launch 2/20/24
- Projected cost: ₳ 13,132 ($3,283)
- On-Page Script and Cloud Libraries
- Gate Payload Parsing
- Integrate the SproutVideo API Library
- 5 work sprints covering estimated 585 hours
- Starting 2/23/24, target launch 4/26/24
- Projected cost: ₳ 69,836 ($17,459)
- Q3 & Q4
- Large-Scale Soft Opening
- 2 work sprints covering estimated 210 hours
- Starting 4/29/24, target launch 5/23/24
- Projected cost: ₳ 9,676 ($2,419)
- Public Launch
- Target launch 5/26/24
For a breakdown of projected hard costs and details on the work sprints that derived these work-hour estimates, please see the proposal worksheet: https://docs.google.com/spreadsheets/d/1tWjHgTD44lIj9v9MAZgTFl2FBr41w6Xh7Vi_ZYIFkaU/edit?usp=sharing
[CAPABILITY/ FEASIBILITY] Please describe the deliverables, outputs and intended outcomes of each milestone.
- High-Volume CDN Architecture
- Component Initialization: Set up accounts, data buckets and server instances for the components required for this project in the service tiers specified by the project costs table. Ensure basic architecture is in place and apps deploy successfully. Integrate secure environment variables into app launch configurations. This project involves the setup of two NodeJS API servers, two Vue3 web apps, and a public script library.
- SproutVideo Configuration Tables: Implement relational data tables for user-owned SproutVideo data and access configurations. Securely store user profile and token gate configuration objects to be accessed by the gate resource server and web app API.
- Web App & API Server
- Web App Frontend: Develop a Vue3 SPA with views for Home, Login, Profile, and My Gates. Develop a two-tiered login system; a restricted account with a wallet-based login and an upgraded account with a login token requirement.
- Web App API Server: Create an API server for handling data requests from the web app including SproutVideo integrations to profiles and access control configs to video gates.
- Cardano OAuth Interstitial
- Cardano OAuth Interstitial App: Develop an OAuth flow app that handles third-party website gate authentications from the on-page script in collaboration with an OAuth security expert.
- Open Source Gate Auth Server: Create an independent API server for handling consumer-side gate requests from third-party websites.
- Universal Third Party Script
- On-Page Script and Cloud Libraries: Develop the JS libraries that a universal on-page script will import to instigate an OAuth flow and, when JWT access tokens return to the callback URL, fetch gate payloads from the gate server. Create a series of functions to handle different payload types - video, playlist, livestream, redirect, render on-screen.
- Gate Payload Parsing: Create payload-parsing scripts for the OPS to use gate payloads containing access confirmations to render a domain-secured embedded video player for Videos, Playlists and Livestreams.
- Integrate the SproutVideo API Library
- Custom App Registration: Register a custom app with SproutVideo and interface with support to get the application approved.
- User Profile Integrations Modal: Add a SproutVideo subsection to the Integrations section of the User Profile view. Perform the OAuth2 flow to obtain the account API key on-page, then update user integrations data via the Web App API. Create a button to confirm key status at-will.
- Listing Account Content: List existing Videos, Playlists and Livestreams from the Create Gate interface.
- Resource Logins API: The OAuth module will ask the Gate Resource API to generate a new Login object via the Sprout API when a user selects a gate and enters their email in the Gate Details popup.
- Access Grant Management: At the time that a Sprout type gate is created, store a new Access Grant configuration in MongoDB and associate it with the new gate. At the Gate Selection modal of the OAuth flow, after gate selection and a Sprout Login is created, create a new Access Grant on the user's Sproutvideo account using the local configs for that gate, for the user-entered email. The stored payload for a SproutVideo gate is the video ID, but the payload returned to the callback is a confirmation of access to a Sprout resource.
- Large-Scale Soft Opening
- Debugging and Security Testing: Small groups of users must stress-test the system and report on ways that it may break or malfunction.
- Coordinate Three Live Shows: Work with performers in the community to host token-gated livestreamed concerts as a form of stress-testing the system and getting feedback from the community.
[RESOURCES & VALUE FOR MONEY] Please provide a detailed budget breakdown of the proposed work and resources.
Here is a breakdown of our projected hard costs and labor, organized by expense category. For a full list of all planned purchases and expected expenses please review the proposal worksheet, tab name Project Costs.
- Project Team
- Dane, Full Stack Developer (proposal author)
- $21,256 USD for 1,845 work hours
- Amounts to approximately $12 per hour
- Hardware
- We do not need to purchase any physical equipment.
- Marketing
- This project team believes it does not need to increase the overall asking price of this project by including a marketing budget and would prefer to grow organically as a service layer in partnership with select users.
- Technical Contractors
- OAuth 2.0 Security Professional
- $4,500 USD for 90 work hours
- API Architecture Consultant
- $1,750 USD for 35 work hours
- Service Providers
- SproutVideo Test Account, Sprout Tier, 6 months, $210
- For regular testing of video gates during development.
- SproutVideo Test Account, Forest Tier, 2 months, $590
- For large-scale load-testing and live soft-openings for long-format media.
- Netlify, 12 Months of Pro Tier, Web App, $228
- Used throughout development and testing.
- Netlify, 6 Months of Enterprise, Oauth App, $900
- For app performance post-launch, with 99% uptime, faster machines and a high-performance edge network.
- Render, 12 Months of Team Plan, $228
- 500GB of bandwidth for hosting web app and OAuth app.
- Render, 12 Months Standard Tier Node Service, Web App, $300
- One year of standard hosting for the self-service web app
- Render, 6 Months Standard Tier Node Service, OAuth App, $150
- NodeJS hosting for the development and testing phase.
- Render, 6 Months Pro PlusTier Node Service, OAuth App, $1,050
- Faster API servers for stress-testing and post-launch phases
- MongoDB Atlas Dedicated Cluster, GCP Tier M30, 6 Months, $2,332
- Data storage at a service tier fit for development and testing
- MongoDB Atlas Dedicated Cluster, GCP Tier M50, 6 Months, $8,640
- 32GB RAM and 8 vCPUS for large audience usage
[RESOURCES & VALUE FOR MONEY] How does the cost of the project represent value for money for the Cardano ecosystem?
The cost of this proposal is a one-time price that will produce a self-service Cardano app that can be used by the entire community to add web3 functionality to their own websites. It has the potential to allow all projects of the past to reinvigorate their tokens with access to video-based rewards.
Once online, Cardano community can begin reaching out to web2 creators with a new reason to use Cardano and an easy onboarding mechanism to becoming a web3 entrepreneur.
All team members have committed to a baseline cost of living for the duration of the project. The price we are asking for amounts to hard software costs such as server hosting, and these bare minimum life expenses. We do not plan to outsource any development work, and this proposal will allow the team to focus on the project around the clock until it is completed.
[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