lemon3
{"title": "lemon3", "logoImg": "bafkreih5vbggpzeajlpqkaozmpsgnwczub6qhcixsipy4crvikncx5n57m", "website": "https://github.com/vrypan/lemon3", "bannerImg": "bafkreih6ov37lmwcxe7ylrangjltfga6jcajlwvbubrlg4af74hovhsxhy", "createdAt": 1742748024274, "userGithub": "vrypan", "credentials": {"twitter": {"type": ["VerifiableCredential"], "proof": {"type": "EthereumEip712Signature2021", "created": "2025-03-23T16:38:39.833Z", "@context": "https://w3id.org/security/suites/eip712sig-2021/v1", "proofValue": "0x5ad85c7925ada69be4dbbf4c0d8f1334a613fb5d07dbeee58cab134d62e3e4585be9a614a1e35164094cdfa6f6f435c5d7ffa432ce06f2d2ce8edf5602b0f0c81c", "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-03-23T16:38:39.833Z", "expirationDate": "2025-06-21T16:38:39.833Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x93c620D2aF377C6C37e3E3c1d3E065eb04b08aE2", "@context": {"provider": "https://schema.org/Text", "nullifiers": {"@type": "https://schema.org/Text", "@container": "@list"}}, "provider": "ClearTextTwitter#vrypan", "nullifiers": ["v0.0.0:finZdgK+35xn5tfSGeorjUUxQf0lWVpLNjm9FCz7yoY="]}}}, "description": "\nlemon3 is an open source program that uses IPFS and Farcaster to allow decentralized file hosting and sharing.\n\nlemon3 uses cast.Embeds to embed a special enclosure+ipfs://<CID> link in casts. The link points to a json payload hosted on IPFS. The json payload is intended to make up for the fact that Farcaster Embeds are plain links with no additional information that is required in this case (and could be very useful in other use cases too), and provides: file name, file type, file size and the IPFS CID of the file that was shared. This is the equivalent of the RSS <enclosure> tag used in podcasting.\n\nlemon3 is a mini Farcaster client, that connects to a hub: It will show casts containing enclosures from users you follow, and it allows you to share files by uploading them to IPFS and casting the corresponding enclosure. \n\nIt also contains an embedded IPFS server, so you don’t have to run your own.\n\nVersion 0.1.1 is the MVP: You can upload and share files, and you can find and download files shared by others.\n\nThere’s a lot to be done to get to a version that “just works”: various bug fixes, UX streamlining, a decent user onboarding flow, and features such as keeping track of already downloaded files, support for standalone IPFS servers and a download manager. Maybe a web interface (similar to how Transmission works), too. Probably an RSS gateway that exposes these feeds as RSS for compatibility with existing podcast clients.\n\nEven the core protocol design may need some updates, like replacing the JSON payload with IPLD.\n\nBut once everything is more stable, there are new opportunities that we did not have with RSS, like reactions and comments: For example, if you are producing a podcast, your listeners could reply, like and share your episodes, natively, within their social network.", "logoImgData": {}, "bannerImgData": {}, "projectTwitter": "vrypan"}