Interakt is a web3 native way to own, store and monetize your interactions online. The project will have features including streaming ERC 20 tokens, storing your audio/video recording on IPFS and user owned access through profile NFTs
Interakt helps users to monetize and own their interactions online, the Interakt video calling tool can be used to stream ERC20 tokens in real-time. The audio from the call can be recorded and stored in decentralized storage (IPFS) and can only be accessed by the wallet owner.
All of the interaktions on the platform are encrypted and can only be accessed by the wallets hence ensuring complete privacy and ownership of data by the user.
We combined the forces of IPFS, Ceramic network, Lit protocol and Polygon (currently deployed on Rinkeby testnet) to create Interakt.
Interakt has used components like IPFS, and Web3. storage, OrbitDB, Lit Protocol SDK, Ceramic network and the main-net version to be deployed on Polygon.
We used PeerJs SDK ( https://peerjs.com ) for video streaming. It used WebRTC under the hood. The SDK abstracts the complexity of WebRTC and provides simple functions to facilitate a simple peer-to-peer video stream.
We used Llamapay (https://llamapay.io) smart contract to stream the ERC20 tokens. the contract allows a user (wallet ) to deposit, and stream the token to a wallet directly. We stream DAI stable in this demo. We merge the audio stream using web native MediaRecorder. Once the call ended we will have the audio blob with audio tracks of both the Peer.
The recorded audio is stored in IPFS via web3.storage after it is encrypted using Lit Protocol SDK. The encryption key ( salt ) and other details about the call, we store on a ceramic Title Document which abides by a custom-created data model ( called "session"). Ceramic will be authenticated with user Ethereum wallet provider DID. So only the wallet owner can access this information.
All the previous interaktion are the list of StreamId of the ceramic documents containing session details like the IPFS file link, decryption key, date, the amount paid, and others. It is accessible only by the user’s wallet using IDX.