# [Review] #161 Apillon Platform Milestone 1 Proposal This document represents a technical review of a treasury proposal, conducted by the W3F Grants team. Designed to serve the community, this review offers a succinct overview of the proposal's technical deliverables, rating them based on specific attributes. Additionally, it provides insights on the team's previous contributions to the ecosystem. ***Please note:** This technical review represents neither an endorsement of nor an opposition to the proposal.* ## Technical Assessment **Legend:** - ***type*** := the type of deliverable, e.g. code, infrastructure, ui design, research, etc. - ***business case-specific*** := if the deliverable is strongly tied to the proposer's business model and likely hardly reusable by other teams - ***parachain-specific*** := if the deliverable builds directly on any parachain-specific infrastructure; likely any value that is added will be limited to a specific parachain, rather than the wider ecosystem - ***scope unclear*** := there are details missing in the specification which makes it hard to estimate what will be delivered and if the cost estimation is appropriate, e.g. failure to mention tech/programming languages/standards are used, features of deliverable not listed or described ambiguously, etc. - ***comment*** := any additional comment on the deliverable | Deliverable | type | business case-specific | parachain-specific | scope unclear | comment | | --- | --- | --- | --- | --- | --- | | **Schrödinger’s NFT service**<br>Integrating Phala as a fully-fledged add-on in the NFT Service to turn it into a next-generation decentralized file sharing and encryption solution with out-of-the-box Phat contract configuration and infrastructure connection to NFTs and Crust-based storage. With documentation, API, SDK, CLI, and usage templates. | code |   | X | X | Unclear which standards they will build on. The existing NFT service only supports ERC-721 on EVM chains. | | **User accounting**<br>Granular per-user accounting of all blockchain-based and non-blockchain infrastructure costs | code | X |   | X |   | | **Subscription module**<br>Credit-based accounting and pricing of every feature with monthly subscription options and automatic accounting. | code | X |   | X |   | | **Fiat payment**<br>Integration of a fiat-based payment system | code | X |   | X |   | | **DOT payment**<br>Integration of DOT-based payments | code | X |   | X |   | | **PAPI refactor**<br>Refactoring all Polkadot.js-related services to a PAPI library. | code |   |   |   | The PAPI library is currently not production ready. | | **NFT One-click deploy improvements / UX upgrades**<br>Overhaul and improvement of current NFT wizard. | ui design, code |   |   | X | The current NFT service only supports ERC-721 on EVM chains. | | **SDK completed across all services** | code |   |   | X |   | | **CLI completed across all services** | code |   |   | X |   | | **Code samples**<br>SDK and API usage code samples for multiple environments and libraries (Node (typescript), Vue.js, React.js). | code |   |   | X | Scope seems very broad for the time estimation. | | **WASM support on Astar**<br>Expanded smart contract offering on Astar network with WASM smart contracts. | code |   | X | X |   | | **No-code wizard for RMRK NFTs**<br>Wizard and templates to create and use nestable and equipable NFTs powered by RMRK standard. | code |   |   | X | Unclear which RMRK standard they will build on. | | **Wunderbar integration**<br>Integrating Wunderbar Web3 tracking and analytics in Hosting service. | code |   |   | X |   | | **Dashboard UX split to services, multiple chains and premade template solutions**<br>Revamp of the dashboard to have a clear split between more experienced devs and very low code solutions with templates and wizards. | ui design |   |   | X | Seems like a very high estimate for a dashboard redesign. | | **5 premade NFT-based template solutions: POAP NFTs whitelabel, token gated community whitelabel, non-custodial wallets whitelabel UI + API** | code |   |   | X | Unclear what standards they will build the templates on. | | **IPFS cluster and load balancer**<br>Running multiple IPFS nodes with load balancing and IPNS resubmit service. | infrastructure |   |   | X | Unclear, for if and how long the operations costs are covered | | **IPFS web3 approved domains**<br>IPFS gateway update to support CID and custom subdomains. Give free subdomains to all users in staging and production environments. | infrastructure |   |   | X | Unclear, for if and how long the operations costs are covered | | **IPFS CDN**<br>Caching capabilities for gateways and gateway clusters that can be invalidated per user/project. | infrastructure |   |   | X | Unclear, for if and how long the operations costs are covered | | **IPFS custom gateways**<br>Custom gateway offering for customers, where they can spin off their dedicated gateway that is token limited as well as able to spin custom clusters for extreme traffic. | infrastructure |   |   | X | Unclear, for if and how long the operations costs are covered | | **IPFS bandwidth monitoring**<br>Monitoring traffic of custom gateways, CDN, gateway clusters and public gateways. Monitoring per user, website, project etc. | infrastructure |   |   | X | Unclear, for if and how long the operations costs are covered | | **Sign in with wallet SDK**<br>SDK code for wallet-based log-in. Includes generating and validating signatures for EVM and Substrate wallets, and fetching identity information when available (identity pallet). | code |   |   | X |   | | **Flutter SDK**<br>SDK functionalities written for flutter to expand services to mobile developers. | code |   |   | X |   | | **Cloud functions**<br>Integration of Acurast parachain and expansion on Phala PHAT contracts to enable cloud functions. | code |   | X | X | | ## Past Contributions In evaluating the capabilities and track record of a project team, it's crucial to understand their prior achievements and contributions. This chapter represents an overview of the proposer team's existing services, which provides insights into their technical expertise and experience in the ecosystem. The web-based Apillon platform is currently [deployed](https://apillon.io/) and has the following 3 main features: - **Storage Service:** Provides a web UI for storing arbitrary data on IPFS - **NFT Service:** Provides a web UI for uploading NFT metadata in CSV to create an NFT collection on-chain. It integrates seemlessly with the Storage Service for simple, JPEG-based NFTs. - **Hosting Service:** Provides a web UI for uploading web pages, such as an NFT collection web page created by their [template](https://github.com/Apillon-web3/nft-template). We briefly tested each service's basic functions. The results are described below. ### Storage Service The storage service represents a web UI for Crust files. It's possible to upload files and organize them in containers called *buckets*. It's very similar to existing services like pinata. #### Observations - Uploading and pinning files took 3-4min when testing - When trying to open a newly uploaded file (PDF) for the first time after it's been successfully pinned, an error is thrown - the page displays "Page not found" while in the console an "TypeError: Cannot read properties of undefined (reading 'file_uuid')" is thrown - On subsequent tries to open the file in-browser, only the filename is shown with no option to view it or download it - It is, however, possible to download the file through the kebap menu - another option is to copy the download link, which works as well - when trying the same using a jpg file, no error is thrown. Also, the pinning process took less than 1min. ### NFT Service This service lets a user create EVM-based NFT collections using a web UI. It is similar in scope to other NFT platforms, e.g. OpenSea. The currently supported networks are Moonbeam, Moonbase and Astar. Steps include: 1. Provide a CSV with meta info 2. Provide the matching images, as defined in the previous step (the UI will correctly throw an error if any of the files are not named after the meta info) 3. Provide a collection name, symbol and chain (Moonbeam, Astar or Moonbase) 4. Provide behavioral attributes, such as supply, soulboundness (:= not transferable), revocability (:= owner can destroy them), royalty fee settings and release date 5. Finally, the collection will be deployed 6. After that, it's possible to create a website for the NFT collection using their [Apillon-web3/nft-template](https://github.com/Apillon-web3/nft-template) repo on github. The web UI shows a prompt with the direct link to create a fork. #### Observations - Even when the royalty fee is set to 0, a royalty EVM address has to be provided ### Hosting Service The hosting service allows for easy publishing of the NFT collection using an out-of-the-box template. Only two modifications are neccessary before publishing it: setting the network (chain extension) and smartcontract address of the NFT collection. After that, the files can be uploaded to IPFS using the *Hosting* service. The docs are straightforward to follow. There are 2 environments: staging and production. #### Observations - After deployment, the site (HTML) was loaded successfully but the NFT collection wasn't found, even after connecting to MetaMask: ![](https://hackmd.io/_uploads/Bk57sE6eT.png)