⚫ 0xcrypto.io
⚫ 0xCrypto.io is a platform enabling artists, creators, programmers, businesses and others to publish their work and get paid in crypto.
About
The problem it solves ⚫ 0xCrypto.io is a platform enabling artists, creators, programmers, DAOs and others to publish their work and get paid in crypto. It is essentially the web3 implementation of Pateron. Web2 competitors: https://www.patreon.com/ & https://www.buymeacoffee.com/ ⚫ 0xCrypto.io allows users to register pages (using Polygon MATIC) with a click of a button. This page created by a user is essentially a smart contract on Polygon, therefore, this page cannot be modified and duplicated by others. ## Technical but not so Technical Explanation of a ⚫ 0xCrypto.io page 1) When a user creates a page, a contract is created comprising of the owner, membership fees etc. 2) A page will have an address just like a wallet (Looks something like 0x75de244d3...). 3) A supporter or customer can become a member of the page created using MATIC on the Polygon Network. 4) The page contract automatically pays out the creator of the page. Works like magic! ## Memberships Supporters/Fans of a page can become a member and pay using Polygon MATIC. Becoming a member of a page costs 1 MATIC and the membership is subscription-based. It is valid for 1 month. In future updates, users will be able to post members-only content. ##### NOTE: The membership is validated using the Page.sol smart contract. ## Publish Content for Supporters Users can publish content on the website for their supporters. Content published on ⚫ 0xCrypto.io is stored on ipfs. This makes ⚫ 0xCrypto.io more decentralized. ## Example Page on ⚫ 0xCrypto.io https://0xcrypto.io/page/0x0047bc316db82844221DBDb675530003B58BfECE ## Example transaction of funds made to a page https://polygonscan.com/tx/0x5a37a09b0c5b82dfed1ce013200b2fb6588073407ecd29d7b3e1e7538e1a813e ## Documentation https://docs.0xcrypto.io/
How it's made
Challenges we ran into ## Challenge #1 Setting up web3 on the latest Angular gives errors as fs, crypto and other required packages are no longer supported. Even the polyfills for the package are not set up. ### Solution I directly downloaded the web3.min.js file and stored it on my server, then I mocked the window object in angular (to avoid type issues) and then accessed the web3 functions I needed. ## Challenge #2 As I have included various security steps each both on the frontend and backend. Like verifying memberships, ownerships of pages. the performance was impacted. ### Solution To avoid major performance issues on the website. I make several concurrent calls to the backend while loading in already public information on the website giving it the illusion of speed. ## Challenge #3 As you know I have implemented an ipfs solution for storing content. Users can add attachments to their contracts as well and these attachments with metadata are stored on ipfs. As I was building membership I noticed there is no membership focused ipfs solution. I could not encrypt data say for a particular signature and keep it valid for a month. ### Solution I have built a prototype solution on my backend which is not live yet but is almost ready to be shipped. #### The steps it takes are as follows: 1) Take a signature from an address 2) Derive address from the signature 3) Validate membership and validity date from the smart contract. (this is the smart contract 0xcrypto uses with the required maps for this check https://github.com/0xcrypto-io/contracts/blob/main/Page.sol) 4) Only return the ipfs hash and metadata based on this check. This way only members can gain access to the ipfs content as it is very unlikely that a malicious person will be able to guess the ipfs hash.