TheGame
TheGame copied to clipboard
[MyMeta] Custom Backgrounds
Allow people to set custom backgrounds on their MyMeta profile. Bonus points if hosted on IPFS or other decentralized storage.
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
This issue now has a funding of 0.001 SC attached to it.
- If you would like to work on this issue you can 'start work' on the Gitcoin Issue Details page.
- Want to chip in? Add your own contribution here.
- Questions? Checkout Gitcoin Help or the Gitcoin's Discord
- $1,921,420.49 more funded OSS Work available on the Gitcoin Issue Explorer
I have some questions about this:
- are we looking to facilitate the upload of an image or only request a link to the image?
- this is a separate feature from the current headers provided by 3box or a replacement of that feature as the app moves to ceramic/idx?
- are we concerned about the NSFW images and need some administrative controls?
Thanks!
I have some questions about this:
* are we looking to facilitate the upload of an image or only request a link to the image? * this is a separate feature from the current headers provided by 3box or a replacement of that feature as the app moves to ceramic/idx? * are we concerned about the NSFW images and need some administrative controls?
Thanks!
- A link might be better as we wouldn't need to worry about hosting, though that only offloads the worry to the player. Facilitating an upload would be much better UX.
- Separate feature I think yeah, these would be full backgrounds so they would require different dimensions & higher res.
- Hmm... I wasn't worried until you asked 😂. Good question. As they are supposed to be "decentralized linkedin-like pages", then people should be able to put whatever they want up there. On the other hand, the ones that want NSFW should be excluded from MetaGame's profile indexing system - overall making it way harder to implement these custom backgrounds, right? There probably things that are more important to implement than this in the MyMeta, MetaOS or Product roadmaps.
Thanks for fleshing out the requirements, will be good for later!
On the other hand, the ones that want NSFW should be excluded from MetaGame's profile indexing system - overall making it way harder to implement these custom backgrounds, right?
We could go the hands off route and only let people link to the image. I'm not a lawyer but that seems like a way to avoid problems. But its only a matter of time before someone says "Hmm, so I can post child porn. Lets do it." and that isn't a fun thing to show anywhere.
Content moderation is a pain and we probably have the same problems with avatars/headers, even though they come from 3box at the moment.
We could go the hands off route and only let people link to the image. I'm not a lawyer but that seems like a way to avoid problems. But its only a matter of time before someone says "Hmm, so I can post child porn. Lets do it." and that isn't a fun thing to show anywhere.
Yeah, probably good enough to begin with 🤷♂️ We can write a warning saying something like "If you upload inappropriate images, you risk your profile being delisted & yourself being banished from MetaGame."
* are we looking to facilitate the upload of an image or only request a link to the image?
Seems that having control of the image would be preferable.
* this is a separate feature from the current headers provided by 3box or a replacement of that feature as the app moves to ceramic/idx?
I wouldn't count on this migration happening anytime soon. Do you have any experience hosting images in IPFS?
* are we concerned about the NSFW images and need some administrative controls?
This sort of thing is only a problem at a certain scale, I think we have a solid enough community right now to police itself. At some point we can add a flag button or something
Forgive me if I have missed the discussion somewhere but has there been any progress on this? I have looked through the last few weeks meeting notes and not found it in searches in Discord. @alalonde
Forgive me if I have missed the discussion somewhere but has there been any progress on this? I have looked through the last few weeks meeting notes and not found it in searches in Discord.
Not sure about others but I was keeping the discussion here to try and flesh out the requirements when I was looking for a first issue to participate in. I haven't done any work on this since.
Do you have any experience hosting images in IPFS?
Sorry, I totally missed this question! I do have some experience but using the CLI, not programming the interaction.
I'm working on this using ipfs. Everything is working fine, but I need to do some changes in the Smart Contract so I can save the hash returned by the ipfs and link that hash with the wallet address so we can have a relation. (simple smart contract mapping). Is it ok?
We are in the process of creating an IDX MetaGame profile where this data will be stored. (Like in the next two weeks.)
¿Are you talking about creating a smart contract to store the user's background? The data will be living in Ceramic with a cached reference stored in Hasura.
¿Where are you pinning the IPFS hash? I'm pretty sure we want to use web3.storage for this.
@dysbulic hey man, okay. I was working with infura and getting the hash returned by it. But I see web3.storage more useful and if you guys want to use it I can do it. Another members are going to use work on this one? bc I can help :)
@CastilloLuis, we're in the process of switching from storing profile information in a database to having that data in the Ceramic Network as the source of truth.
Before we get to that though, we are going to build a frontend for storing the IDX basic profile. It has two images (a profile and header background) in it that will need to be stored in the same manner as the background you're adding, so you could certainly be useful. 😸
As for web3.storage, it's free and theoretically reliable, so it seems like the way to go. Otherwise, anyone using the system is going to have to deal with pinning costs. Not that they'd be huge, but if we can eliminate a concern it seems like a good idea.
@CastilloLuis, I was wrong about using web3.storage. It relies on an API key for authentication, and to use it in MyMeta we would need to include the key in the application (or hack together some way to keep it private).
Anyone with the key has the ability to remove all the files from an account, so until they add an alternative authentication mechanism or add scoping to keys so you can create an upload-only one, we should probably just use a traditional pinning service.
Ok, so there's been another change of course. @Cali93 & I implemented a web3.storage uploader Hasura action. You send it a file & it returns you a CID.
Or at least it will when it's done in the next day or so. The action handler exists, but Hasura actions don't have File
s as accepted types, so the files will have to be base64 (en|de)coded.
All of the pinning services I examined – pinata, infura, & web3.storage – utilize an API token for authentication. A token that shouldn't be sent to the client necessitating a service running somewhere to authenticate and proxy the upload.
The base64 encoding is a bit of a hack, but the next best alternative – uploading via a Next.js API endpoint – is blocked by the need for webpack 5 to run web3.storage. That is in turn blocked by the upgrade to Next v11 and React v17 (#792).
Currently there is being worked on storing a potential background image in Ceramic. Where and how the background is being displayed etc is still up for discussion?
So the profiles now have a page background image. There is no interface, however, for including it in the page.
To accomplish the custom background, I would like to enable profile theming (#1158) which would let me specify not only the image, but also how it is positioned and a background color and other properties.
I would also like to keep track of all the background images that have ever been entered (they are all saved in web3.storage, but will be orphaned currently if a new image is uploaded). I would like to present the user with an interface that conglomerates the backgrounds from all the users and makes it simple to insert that into a custom theme.
Right on, great to hear! I think this feature could be a great case for a Seed sink / a way to start making MyMeta & MetaGame more sustainable. The profiles are completely free to use, but if you want a custom background - 1 Seed. What do you think?
The profiles are completely free to use, but if you want a custom background - 1 Seed. What do you think?
Maybe it could be token gated by an NFT that one buys and must be in your wallet to access extended features?
So the profiles now have a page background image. There is no interface, however, for including it in the page.
I have it in the interface to upload the background image & it shows it as saved when revisiting later but it never actually displays in the background.. Is it just me or the feature isn't finished yet?
Done by @dan13ram as a part of the 1.0 push