[Proposal] Trial Account BOS App and Production Handbook with Open Source Airdrop Service plus Examples and Documentation

Name of Proposal

Trial Account BOS App and Production Handbook with Open Source Airdrop Service plus Examples and Documentation

Proposal Type

Innovation Fund Request

Amount Requested (in USDC)

5000 USDC

Payout Address

harmonic-guild-v1.sputnik-dao.near

Open-Source License

MIT. Open Source License

Outcomes & Deliverables

The following will be constructed for this project.

  1. BOS App for Trial Account Drops
  2. An backend airdrop service with two variants:

a. A node application
b. A serverless application (deployable as an Azure Function App)

  1. Utility Scripts (in Javascript) for testing
  2. Documentation thereof including:

a. Examples of API management for anti-bot protection

Solution

BOS App for Trial Account Drops
A BOS based UI Interface to configure a Trial Account Airdrop employing the KeyPom contract. This app allows you to configure which smart contracts, metadata, and methods the Trial Accounts accesses. It gives you a unique Drop ID that you can use to create unique keys to distribute to your users in the drop.
Example app - trialDropDeploy by jass-build.near | Near Social

An backend airdrop service with two variants

a. A node application
b. A serverless application (deployable as an Azure Function App)

Once you have the unique keypom Drop ID, you need a way to add limited access keys to this drop and share it with users in real time. The node service just does this. It hosts a funder private key. When you hit the request API, it makes a call to the Keypom contract to add a key to the drop and then returns the private key that you can now use in your dApp as a trial account.
Example serverless application - GitHub - NEARBuilders/onboarding-service at master

Utility Scripts (in Javascript) for testing

All the functions that the BOS app and the onboarding service have, can also be tested with simple JS scripts. These scripts make it so you can create drops, add keys, and test your trial account during the development cycle.
A few example scripts we use and will be expanding upon - https://github.com/Harmonic-Guild/drop-deployment-scripts/tree/dev

Documentation thereof including:

Examples of API management for anti-bot protection. We will explore some best bot protection measures using API management tools from Azure or AWS and include these in the documentation.

Note: this builds off of Near Builder’s Trial Account Example

App developer Flow:

  1. Funder creates a Trial Account Drop using the BOS app, receiving the unique drop id.
  2. Setup the Node service or the serverless app with this unique id and host it on cloud. (The app does need to hold a near account and private key, and app secrets.)
  3. Expose the service to distribute trial drop keys to users via frontend integration or by simply sharing the API url. Note: a frontend app would need to include the Keypom wallet selector. We will share this in the documentation as well.

User Flow:

  1. User goes to the API url and receives a unique key, this key will be used on the app for the trial.
  2. Users can also access the trial key via the frontend app itself without having to go through a claim URL.

Impact to Ecosystem

With this buildout Harmonic Guild aims to ease onboarding to Near by improving the utility and ease of use for Near’s Trial Account smart contract capabilities. In this we are expanding on the fantastic groundwork laid by Build DAO (www.nearbuilders.org) in their Trial Account Example. This extension creates infrastructure, documentation, and examples which can be readily used by other teams to create airdrops that fit their specific use cases.

Relevance to Onboard DAO

The Trial Account Airdrop infrastructure expanded by this proposal is essential material for developers and communities to build better onboarding. It improves on existing libraries to make the creation of FT and NFT airdrops easier. It also improves the user experience for collecting these airdrops for less technical users. It further decentralizes the Near ecosystem’s airdrop codebase by adding a BOS application. As token distribution is an essential entrypoint for joining tokenized projects in the Near ecosystem, this infrastructure is directly aligned with Onboard DAO’s mission.

Team & Relevant Background

The Harmonic Guild is a crypto infrastructure, utilities, and audiovideo promotion and distribution technologies development company. We are building an NFT-based music distribution product. We also build primarily backend blockchain software infrastructure. We are transitioning to become a Democratic Decentralized Autonomous Company.

We’re working to make the internet more fair, democratic, progressive, and transparent. Join us! Help us experiment, improve, and iterate, (and find and squash bugs). Don’t hesitate to say hey!

Check out our website: www.harmonicguild.io

Check out our BOS gateway: https://gateway.harmonicguild.io/

Check out our Github: Harmonic-Guild · GitHub

Fund us on Potlock: Potlock

Check out our Astro++: https://near.org/astraplusplus.ndctools.near/widget/home?page=dao&daoId=harmonic-guild-v1.sputnik-dao.near

Follow us on Twitter: https://twitter.com/harmonicguild

Follow us on Instagram: https://www.instagram.com/harmonic_guild/

Project Team:
Quinton Armitage - Admin/ Technical Writer
Quinn’s Twitter: https://twitter.com/QArmitage
Quinn’s Near Social: Quinn (qsaharmonic.near) | Near Social

Jaswinder Singh - Executive Developer
Jas’s Twitter: https://twitter.com/jassification
Jas’s Near Social: Jaswinder Singh (jass.near) | Near Social

Other developers affiliated with our Guild may be deployed to this project as needed.

1 Like

Here is the astra ++ poll for the proposal
https://near.org/astraplusplus.ndctools.near/widget/home?page=dao&tab=proposals&daoId=onboarddao.sputnik-dao.near&proposalId=307

Congratulations with approved proposal! This is a very useful initiative! We are now launching our community page on near.social and wanna test trial accounts also…
How can we do this ? have a handbook already? examples?

Project Completion Report: Trial Account BOS App and Production Handbook

  1. Project Overview
  • Project Name: Trial Accounts Production Handbook
  • Proposal Type: Innovation fund request
  • Amount Requested: 5000 [2500 paid and 2500 pending]
  • Payout Address: harmonic-guild-v1.sputnik-dao.near
  1. Deliverables Completed:

a) BOS App for Trial Account Drops

Link: app by harmonic1.near | Near Social

b) Backend Airdrop Service - Serverless Application

Link: https://github.com/Harmonic-Guild/airdrop-service/tree/main

c) Utility Scripts for Testing

Link: https://github.com/Harmonic-Guild/drop-deployment-scripts/tree/dev

d) Documentation

Link: app by harmonic1.near | Near Social

  1. Key Features Implemented
  • Interact with Keypom Contract through BOS UI. An app that can be easily extended for more Keypom functions.
  • Passing a WASM contract in the form of a Byte Array to Near.call() for creating a trial account config.
  • An Airdrop service that can be deployed as an Azure function app.
  1. Challenges Faced and Solutions
  • Near.call() on BOS does not support binary arguments like near-api-js. To overcome this limitation we converted the Trial Accounts WASM to a Byte Array to be passed as any other regular argument to Near.call()
  1. Team Contributors
  • Jaswinder Singh - Lead Developer
  • Abdullahi - Frontend Developer
  • Quinton Armitage - Admin and Project Manager
  1. Additional Information
  • Trial Accounts is an exciting technology. However, it is not audited for security issues. We don’t recommend it be used in any large-scale production cases without a formal audit. Harmonic Guild makes no warranty to the completeness or security of this application or its documentation.
  1. Thanks / Future Plans / Next Steps
  • We greatly enjoyed building this. We hope the application serves as a useful example for dapp developers building trial experience based onboarding that requires no crypto and no passphrase from the user. It also demonstrates the power of Near’s account model and the utilities of BOS. We appreciate the funding provided for this application by Onboarding DAO, and the diligence of their members in administering this project. Special thanks goes out to Yuen and Joe.
  • We hope that this application gains adoption and leads to another generation of custom built trial account applications. We are happy to set up calls with any member of the community who might want help navigating the guide. If anyone finds any bugs or documentation that needs clarity please bring it to our attention, we’d be more than happy to fix them.
  • We’d love to continue developing on this groundwork. Our first thought is we could create an end-to-end guest book app example in a single monorepo NextJS app, implementing the airdrop-service as part of the NextJS apis. We look forward to discussing the prospect of continuing to develop with the members of Onboarding DAO and the community at large.