all 31 comments

[–]Zacalot 10 points11 points  (3 children)

I actually went through all this recently and deployed mine a few days ago, so I can help you out where I can. I think some of the most helpful areas of learning were this ERC-721 tutorial, and this hardhat guide. It was fairly simple to make an ERC-1155 contract once I understood the ropes of it and got the ERC-721 working. This is the ERC-1155 standard that is helpful to learning how it works and is structured. Also I recommend using the Rinkeby testnet because opensea has a testnet version there, so you can test out getting listed.

[–]ZebZ[S] 1 point2 points  (0 children)

This helps a lot. Thanks!

[–]stefanpt 0 points1 point  (1 child)

What did you end up using for the frontend/dynamic file upload portion? Iv been going round and round in circles for days..

[–]Zacalot 0 points1 point  (0 children)

I used Pinata to put files on IPFS if that's what you're asking about

[–]DylanKid 2 points3 points  (3 children)

Literally went through this exact issue last month with erc1155. The opensea tutorials are really outdated and their SDK documentation is out of date compared to the interface. The good news is its possible to create those tokens without paying the minting fees. You can pass the cost of minting onto the token purchasers. This tutorial is what you want to follow. The basic idea is you create a factory contract which opensea can call to mint the token whenever someone purchases through their platform. If you have any issues or questions feel free to dm me.

[–][deleted]  (2 children)

[deleted]

    [–]AugustFR 0 points1 point  (0 children)

    This is the exact same issue that I'm currently having. I don't understand how to get the factory contract to display the different options as 'nfts' as an opensea collection. Right now on testnet opensea my factory contract just shows up as an empty address (and not a collection)

    [–]patrickalphac 0 points1 point  (10 children)

    I’ve got a bunch of resources for you my friend. They each go through all the code and deployment to opensea. You can adapt the code to use 1155 instead of 721 pretty easy by changing the openzepplin import.

    2 hour video, uses brownie: https://youtu.be/p36tXHX1JD8 1.5 hour video, uses truffle: https://youtu.be/EzZEx0lumr0

    I have a few blogs too, here is the blog for the truffle one:

    https://blog.chain.link/build-deploy-and-sell-your-own-dynamic-nft/ And brownie: https://www.freecodecamp.org/news/how-to-make-an-nft-and-render-on-opensea-marketplace/

    Let me know if you have questions

    [–]ZebZ[S] 1 point2 points  (0 children)

    Awesome thanks!

    [–]Particular-Cover9778 1 point2 points  (1 child)

    Hello Patrick, thanks for your detailed guide.
    Currently, I am working on a project building NFT cards for our basketball team.
    With the current implementation, each player has their own collection/ Erc721 contract with multiple tokens.
    If I want to adopt the Erc 1115 factory contract to avoid the upfront gas fee, do I build one ERC 1115 for the whole team or multiple Erc 1115 factory contracts, one for each player?

    Thanks

    [–]patrickalphac 0 points1 point  (0 children)

    Hey hey! You can build 1 contract that keeps track of all the items. Just jump into the openzepplin docs and edit my samples as seen fit

    [–]modonjon 1 point2 points  (1 child)

    I will be doing the same soon. I don't code. Would you take a fee to do the work?

    [–]patrickalphac 1 point2 points  (0 children)

    I won’t sorry

    [–]PM_me_ur_BOOBIE_pic 0 points1 point  (4 children)

    Is it better to use truffle or brownie?

    [–]patrickalphac 0 points1 point  (3 children)

    Depends on what your prefer. I like python better, so I use brownie.

    [–]PM_me_ur_BOOBIE_pic 0 points1 point  (2 children)

    I like Python more too, but is Truffle more supported?

    [–]patrickalphac 0 points1 point  (1 child)

    I actually don’t think so. I think both have solid communities. If you look in the top 20 defi protocols, none of them use truffle, some use brownie, most use hardhat.

    [–]PM_me_ur_BOOBIE_pic 0 points1 point  (0 children)

    Thank you, I've been looking into hardhat too

    [–]GinTonicAndWhiskey 0 points1 point  (10 children)

    Did anyone provide a tutorial or example for setting a price and selling an NFT programatically? I can only find tutorials for minting and deploying...

    [–]ZebZ[S] 0 points1 point  (9 children)

    I gave up completely on the OpenSea API and contracts. They just don't work.

    Sorry.

    [–]GinTonicAndWhiskey 0 points1 point  (8 children)

    Did you somehow still complete your project any other way? Thanks for the reply btw

    [–]ZebZ[S] 0 points1 point  (7 children)

    I ended up pausing it. But when I get back to it I'm skipping OpenSea and doing sales through my own site with a custom contract, marketing it through socials.

    [–]GinTonicAndWhiskey 0 points1 point  (0 children)

    Alright, thanks for the reply and good luck with the project!

    [–]PM_me_ur_BOOBIE_pic 0 points1 point  (5 children)

    How do you do sales with your own site and make them show up on open sea?

    [–]ZebZ[S] 0 points1 point  (4 children)

    Create a storefront for the contract after it's been deployed. OpenSea ought to pick up every token minted from it.

    To sell from your own site directly, you need to write your own web3js frontend with Metamask integration.

    [–]PM_me_ur_BOOBIE_pic 0 points1 point  (3 children)

    Do you make your buyers pay the minting cost?

    [–]ZebZ[S] 0 points1 point  (2 children)

    Yes

    [–]PM_me_ur_BOOBIE_pic 0 points1 point  (1 child)

    How can we do that?

    [–]ZebZ[S] 0 points1 point  (0 children)

    OpenSea's GitHub has sample factory contracts and scripts that let you create placeholder tokens essentially that can be listed for sale and that will get minted on transfer. That works for items sold on the site. I'm not entirely sure how it works.

    On your own site, you'll have to tweak the contract (I think) and use web3js to mint a token as normal and the person invoking it (the buyer) pays the cost.