Tip This Creator
{"type": "project", "title": "Tip This Creator", "logoImg": "bafkreianjy55caa6cnoabv3couwmdl2lu4v3tdsnv7nlv3glivjul3kxq4", "website": "https://x.com/tipthisc", "bannerImg": "bafkreialtgjgmjrotbhqnqfqmkbk7np6d7npq4zn6wd6z6bigrmcrxagky", "createdAt": 1743877015414, "userGithub": "spyros-zikos", "credentials": {"github": {"type": ["VerifiableCredential"], "proof": {"type": "EthereumEip712Signature2021", "created": "2025-04-05T18:16:45.306Z", "@context": "https://w3id.org/security/suites/eip712sig-2021/v1", "proofValue": "0x4c14f2a8b865ed755d0585350856bd7e1728b42e6c1b07756fc76d928ddfa53b247b1327d27bde25fbe1c0c1026a815e492d9b03ca65fbeb5de799ee56c2e5f31c", "eip712Domain": {"types": {"Proof": [{"name": "@context", "type": "string"}, {"name": "created", "type": "string"}, {"name": "proofPurpose", "type": "string"}, {"name": "type", "type": "string"}, {"name": "verificationMethod", "type": "string"}], "@context": [{"name": "nullifiers", "type": "NullifiersContext"}, {"name": "provider", "type": "string"}], "Document": [{"name": "@context", "type": "string[]"}, {"name": "credentialSubject", "type": "CredentialSubject"}, {"name": "expirationDate", "type": "string"}, {"name": "issuanceDate", "type": "string"}, {"name": "issuer", "type": "string"}, {"name": "proof", "type": "Proof"}, {"name": "type", "type": "string[]"}], "EIP712Domain": [{"name": "name", "type": "string"}], "CredentialSubject": [{"name": "@context", "type": "@context"}, {"name": "nullifiers", "type": "string[]"}, {"name": "id", "type": "string"}, {"name": "provider", "type": "string"}], "NullifiersContext": [{"name": "@container", "type": "string"}, {"name": "@type", "type": "string"}]}, "domain": {"name": "VerifiableCredential"}, "primaryType": "Document"}, "proofPurpose": "assertionMethod", "verificationMethod": "did:ethr:0xd6f8d6ca86aa01e551a311d670a0d1bd8577e5fb#controller"}, "issuer": "did:ethr:0xd6f8d6ca86aa01e551a311d670a0d1bd8577e5fb", "@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/vc/status-list/2021/v1"], "issuanceDate": "2025-04-05T18:16:45.305Z", "expirationDate": "2025-07-04T18:16:45.305Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x4b82fD44b2530e971EA97bF45b1FbB60DF46C1A8", "@context": {"provider": "https://schema.org/Text", "nullifiers": {"@type": "https://schema.org/Text", "@container": "@list"}}, "provider": "ClearTextGithubOrg#Tip-This-Creator#83170047", "nullifiers": ["v0.0.0:sfG6vJeUv1Ht71OMUcUi8BPFAJQkMMAAsvISoK2g/UA="]}}, "twitter": {"type": ["VerifiableCredential"], "proof": {"type": "EthereumEip712Signature2021", "created": "2025-04-05T18:07:46.673Z", "@context": "https://w3id.org/security/suites/eip712sig-2021/v1", "proofValue": "0xc30a5dae1f9d2173317f6bd352820f5d7a092fb5dc043894ef118bda1f1287a70d99adbdd93a68f65ee43b42a268d98d354a5406f7b0ea8ed25d9c0ea589258f1b", "eip712Domain": {"types": {"Proof": [{"name": "@context", "type": "string"}, {"name": "created", "type": "string"}, {"name": "proofPurpose", "type": "string"}, {"name": "type", "type": "string"}, {"name": "verificationMethod", "type": "string"}], "@context": [{"name": "nullifiers", "type": "NullifiersContext"}, {"name": "provider", "type": "string"}], "Document": [{"name": "@context", "type": "string[]"}, {"name": "credentialSubject", "type": "CredentialSubject"}, {"name": "expirationDate", "type": "string"}, {"name": "issuanceDate", "type": "string"}, {"name": "issuer", "type": "string"}, {"name": "proof", "type": "Proof"}, {"name": "type", "type": "string[]"}], "EIP712Domain": [{"name": "name", "type": "string"}], "CredentialSubject": [{"name": "@context", "type": "@context"}, {"name": "nullifiers", "type": "string[]"}, {"name": "id", "type": "string"}, {"name": "provider", "type": "string"}], "NullifiersContext": [{"name": "@container", "type": "string"}, {"name": "@type", "type": "string"}]}, "domain": {"name": "VerifiableCredential"}, "primaryType": "Document"}, "proofPurpose": "assertionMethod", "verificationMethod": "did:ethr:0xd6f8d6ca86aa01e551a311d670a0d1bd8577e5fb#controller"}, "issuer": "did:ethr:0xd6f8d6ca86aa01e551a311d670a0d1bd8577e5fb", "@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/vc/status-list/2021/v1"], "issuanceDate": "2025-04-05T18:07:46.672Z", "expirationDate": "2025-07-04T18:07:46.672Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x4b82fD44b2530e971EA97bF45b1FbB60DF46C1A8", "@context": {"provider": "https://schema.org/Text", "nullifiers": {"@type": "https://schema.org/Text", "@container": "@list"}}, "provider": "ClearTextTwitter#tipthisc", "nullifiers": ["v0.0.0:dIqNzIyPG01UhGd7va+fZi882aTSg0TrCUxHrcBz3U0="]}}}, "description": "# Problem Statement\nDespite the growing popularity of content platforms like X (formerly Twitter), content creators often face challenges in monetizing their work effectively and engaging their audience in meaningful ways. Traditional monetization methods are limited, slow, and often platform-dependent, creating barriers for both creators and their supporters.\n\nThere is a lack of seamless, crypto-native tools that enable fans to support creators directly, transparently, and in real time. Furthermore, there are few incentives or gamified features that can enhance audience participation and reward loyal supporters.\n\nAdditionally, existing tipping and donation systems do not offer insights into user behavior or history, making it difficult for creators to track engagement or reward top supporters. Withdrawal of funds is often a manual, complex process, especially when integrating with external crypto wallets.\n\nThis project aims to solve these problems by introducing an AI-powered agent that simplifies and enhances creator monetization through the following features:\n\n- Creation of crypto wallets linked to X accounts\n- Instant peer-to-peer tipping in crypto\n- Community engagement tools like raffles and giveaways\n- Detailed tipping statistics and analytics\n- Easy withdrawal of funds to external Ethereum addresses\n\nBy leveraging AI and blockchain, this solution empowers content creators and fans alike with a decentralized, transparent, and engaging support ecosystem.\n\n# About\n\nThis project is about an AI Agent that helps X users support their favorite content creators. It also allows content creators to better monetize their content and to boost engagement. All that with crypto! The Agent can\n1. Create 'twitter' wallets\n2. Send tips from one X user to another\n3. Create giveaways/raffles (for the tippers of a user)\n4. Show statistics about tipping history\n5. Send ETH from 'twitter' account to external address (withdrawal of funds)\n\n# How it's made\n\n- The AI agent is based on a fork of the eliza-starter repository. It implements one provider and four actions.\n- The tips that take place are routed through a smart contract which keeps a 10% fee. This smart contract was developed with solidity using the Foundry framework and was deployed on Base Mainnet. It's main purpose is to collect fees and emit events.\n- The 'twitter' wallets are created and managed with the CPD-SDK.\n- The user statistics and the winner giveaways use The Graph to access and query onchain data.\n- The agent data are stored on two sqlite databases.\n\n# Instructions\n\nHow to use this AI agent for tipping (and giveaways if you are a content creator) with (Base) ETH.\n\n\n1. How to setup your \"twitter\" address/wallet:\n\nYou only have to setup your address if you want to tip someone. If you want to receive tips there is no setup required.\nTo setup your \"twitter\" wallet tag the agent at any post/reply. The agent will tell you your public address. Fund this addess by transfering Base ETH to it from an external wallet (like metamask).\n\n2. How to tip:\n\nBefore tipping make sure that you transfer some funds to your address from step 1.\n\nThe creator that you tip does not need to do any setup/interactions with the agent. Any creator can be tipped.\n\nThe default tipping amount is 0.0004 (~$0.10) but you can tip with less or more than that by specifying the tip amount (see below). If you tip with the default amount but you don't have enough balance, then the tip amount will be equal to you balance.\n\n2.1 Tip by posting\n\nYou can tip by tagging the agent and the creator that you want to tip. Do not tag any other users.\n\nYour message has to indicate that you want to tip the creator. To indicate that, you can\n1) Say nothing (just tag the agent and the creator). Example of such post: \"@agent @creator\"\n2) Provide the amount you want to tip (in ETH) while also tagging the agent and the creator. Examples: \"@agent @creator 0.001\", \"0.001 ETH @creator @agent\"\n3) Say something more descriptive which indicates that you want to tip the tagged creator. Optionally you can include the amount of the tip. Examples \"@agent tip this creator @creator please\", \"could you @agent tip this @creator 0.001 ETH?\"\n\n2.2 Tip by replying\n\nYou can tip by tagging the agent at the replies of a post from the creator of your choice. Do not tag any other users.\n\nYour message has to indicate that you want to tip the creator. To indicate that, you can\n1) Say nothing (just tag the agent). Example of such reply: \"@agent\"\n2) Provide the amount you want to tip (in ETH) while also tagging the agent. Examples: \"@agent 0.001\", \"0.001 ETH @agent\"\n3) Say something more descriptive which indicates that you want to tip the creator that made the post that you're replying to. Optionally you can include the amount of the tip. Examples \"@agent tip this creator please\", \"could you @agent tip this creator 0.001 ETH?\"\n\n\n3. How to withdraw:\n\nTo withdraw you need to make a post that mentions/tags the agent and includes the wallet address that you want to withdraw to. Examples of such posts: \"@agent 0x1231231231231231231231231231231231231231\", \"withdraw 0x1231231231231231231231231231231231231231 @agent\"\n\n4. How to do a giveaway:\n\nWhen you do a giveaway you randomly choose a user from those that have tipped you (any amount) and you send them the balance that you 'twitter' wallet has.\n\nIn order to do a giveaway you need to have been tipped by at least one user.\n\nTo do a giveaway, make a post tagging the agent and indicate that you want to do a giveaway. Examples of such posts: \"@agent giveaway\", \"GIVEAWAYYYY @agent\", \"give awaaaay!!! @agent\", \"yo, @agent do a giveaway now\"\n\n5. How to see the address and/or balance of your 'twitter' wallet\n\nMake a post tagging the agent and asking for your address and/or balance. Examples of such posts: \"@agent tell my balance\", \"balance @agent\", \"show me address @agent\"\n\n6. How to see statistics about your tipping history\n\nMake a post tagging the agent and asking for statistics. Examples of such posts: \"@agent stats\", \"statistics @agent\", \"show me some stats @agent\"\n\n\nNotes:\nThis agent cannot be tipped.\nFee on tips: 10%\nDefault tip amount: 0.00004 ETH (~$0.10)\nWhen calculating the balance of the 'twitter' wallet and when making a tip/withdrawal/giveaway, a small amount of ETH (0.000005 ETH (~$0.01)) is withheld by the 'twitter' wallet to be spent in gas fees. This amount cannot be withdrawn.", "logoImgData": {}, "bannerImgData": {}, "projectGithub": "Tip-This-Creator", "projectTwitter": "tipthisc"}