While we ask teams to provide details of their envisioned solution, we are aware that precise implementation might slightly differ from the initial specification. Should there be large deviations from the original plan, please communicate this to the Grants Team ahead of time.
The list below serves only as a guide and is not exhaustive.
- Building/extending a Substrate pallet
- List the publicly exposed methods
- For each method, specify (to the best of present knowledge):
- Method signature (incl. parameters with their types, return type)
- Short description (code template)
- Runtime Storage defined by your module
- Use case diagram with e.g. UML or SysML (or similar tool demonstrating how external users/system components interact with one another)
- CLI tools
- IDE / IDE plugin
- State what programming language you'll use
- Describe the commands that you want to make available to the users:
- Name
- Parameters
- Result (value returned / file created or modified / application started etc.)
- Building a web application with front-end components
- Developing a mobile app
- Provide mockups and/or wireframes (e.g. Figma)
- List frameworks & tools for development & testing (e.g. React Native, Angular)
- Building a service/mobile app/webapp that relies on a back-end component
- State what language & framework you'll use (e.g. python with Django, Rust with Rocket)
- Define your database requirements and which system you'll use
- Choose how & where will your backend be hosted (cloud provider, IPFS, localhost?)
- Consider scaling & how you plan to handle it
- Consider CI/CD
- Provide a link to your Github repository if you already have the structure in place
- New crypto library
- Extending existing library's functionalities
- Specify what programming language you'll use
- Provide any publications/papers you will base your work on
- Research other crypto libraries providing similar functionalities. State whether/how you plan to use their work. If they don't suit your needs, provide a detailed explanation why and what's missing
- List any existing crypto libraries that you will use as reference implementation (e.g. in a different language)