project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6

samsar.gg

Open-source AI enabled image editor with tokenized incentives and verifiability of original-content.

samsar.gg

Created At

Scaling Ethereum 2024

Winner of

Witness - Best Use of Witness Protocol

Arbitrum - Qualifying Arbitrum Submissions

Prize Pool

Project Description

The project has the following components- JS AI enabled Image editor - Think photoshop but open-source & without generative engine lock-in. You can use StableDiffusion, Dall-E, Gemini or anything else.

Verifiability- Every operation we generate a witness with time-stamp and post it on-chain. this allows us to record an audit-trail of image creation, and also maintains a history of operations.

Attestation-When publishing the creator has to create an on-chain attestation using ETHSign attesting that they are publishing original work which is compliant with rules, upon arbitration if violation is found, the attestation is revoked and user is penalized.

Multichain- Creator can deploy on any of the supported chains (Gnosis, Arbitrum and soon Base) The app client seamlessly switches user wallet to whichever chain the NFT that the user is interacting with is deployed on.

Multi-client - Users can interact with NFTs on any web or Frame client, they can even do NFT transactions for supported chains within a frame itself, all other clients seamlessly fallback to the public web-app.

Permanent storage - NFT image and metadata is stored in IPFS using Lighthouse.storage. This ensures permanence of memes.

Scalable - App is designed with future scalability in mind. The architecture is such that anyone could contribute to the network with their resources. The exact orchestration mechanism to be decided in future.

Tokenomics- A special kind of ERC1155URI token with transfers disabled, only mint and burn against a bonding curve are possible. The total supply for any new creation (tokenId) is fixed at 10k, and the maximum creator mint is 5% of the total supply. Other (non-creator) wallets are allowed to mint a max of 1 token of each tokenId.

Routing - The app page route is page/{chain_id}_{token_id} which allows for per chain tokens to exist as well as dynamic frame logic depending on the chain.

How it's Made

client: Client is a typescript React app implementation of image editor over konva.js

processor: NodeJS express server which exposes several routes for CRUD processing as-well as runs an OrbitDB replica for storage. This contains clients for Witness, and ETHSign and models for operations as well. This also does web3 operations via the Thirdweb client.

generator: A javascript listener which listens to image generation/outpaint requests and routes them to the image processor. publisher: NextJS project which contains the pages and API routes for frames as well as the landing page.

nfts: This is solidity hardhat project which contains the custom ERC1155 contracts used to NFT operations. This contract is a modified version of Openzepplin ERC1155 which only allows mint and burn but no buy, sell or transfer. The mint and burn prices are fixed against a bonding curve. One wallet can only mint one token of a given token id, only the creator can mint more than 1 item of a given token id (up to maximum of 5%)

db_master: This is the master orbit db process which runs all the dbs. Currently does not implement authentication. Be sure to only configure localhost if running the server locally. farcaster_utils: Contains some utility functions to manage farcaster and pinata sdks.

background image mobile

Join the mailing list

Get the latest news and updates