A new, simple NFT standard for Solana

Related tags

Cryptography nftoken
Overview

New Solana NFT Standard

Current Issues

The current NFT spec is pretty bad for a few reasons:

  • every NFT requires multiple accounts (3+)
  • the token account address can change (and the token account is not always the associated token account of the current NFT owner)
  • the NFT holder can transfer the NFT to a diff token account which can make any existing escrow / marketplace accounts invalid
  • it’s hard to get all of the NFTs for a given wallet
  • the editions part of the spec is very confusing
  • it’s hard to group collections — not built into the original version of the spec and slow to query
  • it’s really hard to get all of the activity (transfers / etc) for one NFT since one tx may include the mint while another tx includes the token account

This all stems from the first problem — an NFT is a bunch of different accounts but it should really be just one account.

A Path Forwards

Read more here: https://lu.ma/p/CM0oovlwagtYho6/Proposal-New-Solana-NFT-Spec


Follow along: https://twitter.com/VictorPontis

Comments
  • Un-break the docs

    Un-break the docs

    What Broke

    In https://github.com/glow-xyz/nftoken/pull/155, I merged this change to _app.tsx:

    https://github.com/glow-xyz/nftoken/blob/782b1086831083d9f0f4e5944e0b4050ae07adc7/docs/pages/_app.tsx#L25-L27

    This should’ve been /docs instead of docs, which meant that the <DocsPage /> layout didn’t render when it was supposed to. DocsPage includes the sidebar, mobile nav, and GlowProvider, which caused the missing sidebar, mobile nav not working, and minting not working.

    Before merging the new NFT detail page I wasn’t careful enough about check the docs part of the site, so I didn’t notice that the docs were broken.

    Fix

    • Replaced docs with /docs.
    • Moved the mobile nav to <Header />, so every time the mobile nav menu button is rendered in the header there’s also an actual mobile nav.

    Test Checklist

    Tested using https://nftoken-git-fix-revert.luma-dev.com

    • [x] Splash page looks good in desktop and mobile.
    • [x] “Learn more” and “Create an NFT” links work.
    • [x] Docs logo goes to Overview.
    • [x] GitHub link works.
    • [x] Forward and back buttons on each page go to the correct place.
    • [x] Glow and Twitter buttons in footer work.
    • [x] Sidebar and header show on docs pages and are position: sticky when scrolling.
    • [x] Docs look good on mobile.
    • [x] Mobile nav works on docs and on NFT detail page.
    • [x] Mobile nav works even when scrolled down the page.
    • [x] Mobile nav closes when a link is clicked.
    • [x] Page is not scrollable while mobile nav is open.
    • [x] Mobile nav links work.
    • [ ] Connect/disconnect wallet works on Live Minting Demo, and so does filling out the form and clicking Create NFT.
    • [x] Live Minting Demo looks good on mobile.
    • [x] Code blocks are legible and can be copied via button in top right corner.
    • [x] NFT detail page has header whose mobile nav can be expanded, but no sidebar on desktop.
    • [x] NFT detail page’s mobile nav works when opened while scrolled partially down the page.
    • [x] NFT detail page looks good on mobile.
    • [x] Copying Solana addresses on NFT detail page works and causes a success toast to appear.
    • [x] Clicking logo on NFT detail page goes to Overview.
    • [x] Clicking links in mobile nav on NFT detail page works.
    • [x] All pages look good when browser font size is increased (in settings, not cmd+/cmd-).
    • [x] All pages look good in dark mode.
    • [x] All pages look good in Safari.
    • [x] All pages look good in Firefox.

    Let me know if there’s anything else I should add to this checklist!

    Outstanding Problems

    • [ ] I can’t connect wallet for the Live Minting Demo on iOS Safari. Is it a problem with it being a Vercel staging URL?
    opened by benborgers 6
  • Give suggestions for images to use for NFT

    Give suggestions for images to use for NFT

    I chose some photos from Unsplash that looked cool. Demo: https://nftoken-git-l-5357-give-suggestions-for-images-to-use-for.luma-dev.com/create-an-nft

    What do you think of the photos?

    I did Unsplash because the photos can be freely used, whereas I know for example DALL-E explicitly says you can’t use their art for NFTs.

    opened by benborgers 5
  • Minting success animation

    Minting success animation

    Two options for confetti:

    1. https://share.cleanshot.com/0KIJoP
    2. https://share.cleanshot.com/9JlXAB

    Any other things you’d want to see? The little “Your NFT has been minted!” message could be spiced up, but I’m not quite sure how.

    opened by benborgers 5
  • Splash page

    Splash page

    Put together a first iteration of a simple splash page. The design is based off of Kunj’s designs in Figma, and it’s pretty bold (although I like it) so let me know what you think.

    opened by benborgers 5
  • Add Sign in with Glow

    Add Sign in with Glow

    Adds a Sign in with Glow button in the top right corner.

    | | Glow installed | Glow not installed | | --- | --- | --- | | Desktop | | | | Mobile | |

    Lingering questions

    • [ ] How do I make Typescript happy with using window.glow?
    • [ ] How do I persist logged-in state? Currently, when you refresh it goes back to being logged out.
    opened by benborgers 5
  • Layered navigation system

    Layered navigation system

    This introduces two levels of navigation: one for the entire NFToken site, and one just for the NFToken docs.

    https://share.cleanshot.com/y932U5

    I’m not too sure about the design of the mobile docs nav — happy to hear suggestions for other options!

    To do

    • [ ] Scrolling down on a docs page on mobile and then navigating to another page causes the underline on the primary nav to fly up weirdly.

    Checklist

    • [ ] Splash page looks good in desktop and mobile.
    • [ ] “Learn more” and “Create an NFT” links work.
    • [ ] Sidebar and header show on docs pages and are position: sticky when scrolling.
    • [ ] Docs look good on mobile.
    • [ ] Mobile nav works even when scrolled down the page.
    • [ ] Mobile nav closes when a link is clicked.
    • [ ] Page is not scrollable while mobile nav is open.
    • [ ] Live Minting Demo works.
    • [ ] All pages look good when browser font size is increased (in settings, not cmd+/cmd-).
    • [ ] All pages look good in dark mode.
    • [ ] All pages look good in Safari.
    • [ ] All pages look good in Firefox.
    opened by benborgers 4
  • Create collection detail page

    Create collection detail page

    • Extracts the key/value table into <ValueList />
    • Adds a button linking an NFT to its collection (if it exists)
    • Adds a collection page with information about the collection and listing all its NFTs.
      • https://nftoken-git-l-5178-create-collection-detail-page.luma-dev.com/collection/3nj6H9cGutWBZeTzT5EDWLiWMh7XwVn6nsscUJLqzws7
      • https://nftoken-git-l-5178-create-collection-detail-page.luma-dev.com/collection/BqMWbhw36dekDaSqMtLgCBomcgK5Lgu9Z5Y5mTtfQ1B2
    opened by benborgers 4
  • Style NFT detail page

    Style NFT detail page

    This styles the NFT detail page (/nft/[address]) page with a developer-y table of attributes and their values.

    Solana addresses are copyable, and links are clickable. Traits (if present) are listed under a separate table.

    Examples:

    • https://nftoken-git-l-5177-create-nft-detail-page.luma-dev.com/nft/uERDSnn8x7Hjv6zPMFpGXrbXEvGVwwBAaViFrDdjXr6
    • https://nftoken-git-l-5177-create-nft-detail-page.luma-dev.com/nft/GtmTbLRKJxPAo4ZREr8sWq928sbG9xJo845U5eQNmL2f
    opened by benborgers 4
  • Allow minting devnet NFTs

    Allow minting devnet NFTs

    This PR adds NetworkContext which allows changing between mainnet and devnet for the entire docs site, and persists it to local storage.

    On the Create NFT component itself, there’s a LuxMenu that allows switching network:

    2022-06-24 at 12 52 22@2x

    opened by benborgers 4
  • Allow Minting from Mintlist

    Allow Minting from Mintlist

    Feature overview: https://www.loom.com/share/22e0fe0f7f264529a719046d01d0d8a2

    Extras:

    • The nft card component used both on the mintlist and collection page has been extracted into the NftCard component. cc @benborgers

    QA: You can use the following mintlist to test on devnet: https://nftoken-git-l-5182-allow-minting-from-mintlist.luma-dev.com/mintlist/heT9rmaXNQNttfwe5vPn6xymgEJg33cMDnNDGF6RuRo?network=devnet

    opened by vovacodes 3
  • All Mintlists Page

    All Mintlists Page

    • Add the /mintlists page that gives overview of all the mintlists created by the wallet
    Screenshot 2022-06-30 at 14 47 59
    • Add the mintlist/[mintlistAddress] page that displays the mintlist details
    Screenshot 2022-06-30 at 15 14 11
    opened by vovacodes 3
  • Support faster mintlist creation

    Support faster mintlist creation

    There can be multiple writes to an account in the same block, so we can support much faster mintlist creation by allowing the add_mint_infos instruction to specify the following info:

    • start_idx
    • mint_infos_to_add

    Then the program needs to be a bit smarter about figuring out the number of NFTs that have been configured since it's possible that we are overwriting a mint info that has already been configured.

    opened by vpontis 0
  • Add better support for freeze authority - Escrowless Problems

    Add better support for freeze authority - Escrowless Problems

    The root of this issue is that a delegate can not freeze the token. Only update authority can. This means you can't do something like cardinal-staking, or escrowless marketplace listings. These kinds of dapps are popular because holder-verification continues to work, and the token shows in their wallet.

    Currently, without freeze authority being delegatable, a dapp given delegate authority may break or have stale data if the user removes the delegate authority without interacting with said dapp - or transfers the token.


    If we remove is_frozen from nft_update, and add new instructions to manage this property, we can solve this problem.

    Delegate moving forward will act as transfer and freeze authority.

    When frozen, the token can not be acted upon. Any action except for metadata update should error. nft_burn needs to be patched. (#196 )

    These changes can be made with backwards compatibility with v1.

    The new instructions could be:

    nft_freeze and nft_thaw. Each would check if the delegate is the signer of the ix, and if so, update is_frozen


    We can scan mainnet for any current calls to nft_update and see if anyone is using args.is_frozen before making a decision but I think shooting for retro-active ^1.0.1 support here would be a massive win.

    opened by Flawm 1
  • Dependency Dashboard

    Dependency Dashboard

    This issue provides visibility into Renovate updates and their statuses. Learn more

    Awaiting Schedule

    These updates are awaiting their schedule. Click on a checkbox to get an update now.

    • [ ] Update dependency @glow-app/glow-react to v0.6.0

    Open

    These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

    Ignored or Blocked

    These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

    Detected dependencies

    cargo
    programs/nftoken/Cargo.toml
    • anchor-lang 0.24.2
    • anchor-spl 0.24.2
    • arrayref 0.3.6
    • borsh 0.9
    github-actions
    .github/workflows/docs-tests.yml
    • actions/checkout v3
    .github/workflows/program-test.yml
    • actions/checkout v3
    npm
    docs/package.json
    • @glow-app/glow-client 0.3.0
    • @glow-app/glow-react 0.1.1
    • @glow-app/solana-client 0.5.0
    • @heroicons/react 1.0.6
    • @lux-org/sass 0.46.0
    • @markdoc/markdoc 0.1.2
    • @markdoc/next.js 0.1.4-1
    • @metaplex-foundation/beet 0.2.0
    • @svgr/webpack 6.2.1
    • @types/luxon 2.3.2
    • @types/react-dom 18.0.5
    • axios 0.27.2
    • canvas-confetti 1.5.1
    • classnames 2.3.1
    • copy-to-clipboard 3.3.1
    • formik 2.2.9
    • luxon 2.4.0
    • motion 10.10.0
    • next 12.1.6
    • prism-themes 1.9.0
    • prismjs 1.28.0
    • react 18.1.0
    • react-dom 18.1.0
    • react-dropzone 14.2.1
    • sass 1.52.3
    • typescript 4.7.3
    • zod 3.17.3
    • @types/canvas-confetti 1.4.2
    • @types/node 17.0.41
    • @types/prismjs 1.26.0
    • @types/react 18.0.12
    • @typescript-eslint/parser 5.27.1
    • eslint 8.17.0
    • eslint-plugin-lodash 7.4.0
    package.json
    • prettier 2.6.2
    • typescript 4.7.3
    program-tests/package.json
    • @project-serum/anchor 0.24.2
    • @project-serum/borsh 0.2.5
    • @project-serum/serum 0.13.65
    • @solana/web3.js 1.43.6
    • @types/jest 28.1.1
    • @types/lodash 4.14.182
    • @typescript-eslint/eslint-plugin 5.27.1
    • @typescript-eslint/parser 5.27.1
    • assert 2.0.0
    • axios 0.27.2
    • bignumber.js 9.0.2
    • buffer 6.0.3
    • buffer-layout 1.2.2
    • camelcase 6.3.0
    • eslint 8.17.0
    • eslint-config-prettier 8.5.0
    • jest 28.1.1
    • lodash 4.17.21
    • luxon 2.4.0
    • p-limit 4.0.0
    • prettier 2.6.2
    • ts-jest 28.0.4
    • typescript 4.7.3
    • zod 3.17.3
    • node >=11
    nvm
    .nvmrc
    • node 16.15.1

    • [ ] Check this box to trigger a request for Renovate to run again on this repository
    opened by renovate[bot] 0
  • Figure out how account versioning works

    Figure out how account versioning works

    Let's say we add Hierarchical Collections #65 in the second version of the CollectionAccount. How do we let Anchor / Rust serialize one account or the other? Will we have to move serialization code from the Anchor macro to inside the instruction?

    opened by vpontis 0
Releases(nftoken-js-v0.1.5)
  • nftoken-js-v0.1.5(Jul 21, 2022)

  • nftoken-js-v0.1.4(Jul 21, 2022)

  • nftoken-js-v0.1.3(Jul 21, 2022)

  • nftoken-js-v0.1.2(Jul 21, 2022)

    • Upgrade solana client (6f8b052)
    • Add button to download glow on mintlist (#191) (557cd9a)
    • Add a video embed to the Mintlists docs (#190) (dda6fc5)
    • Improve UX of creating a mintlist (#189) (507ba28)
    • Add docs re selling NFTs with Mintlists (#188) (c503ae7)
    • Capitalize "glow" (#187) (4e0ffac)
    • Point nftoken.so to Framer-hosted landing page (#184) (ccca4b4)
    • Add better empty states to the docs (#186) (75e8002)
    • Add mintlist_close_v1 instruction + test (#185) (98e81c3)
    • Give suggestions for images to use for NFT (#183) (3026bbc)
    • Fully replace Heroicons with Lux Icons (#182) (3cbd001)
    • Use lux-icons (#181) (887cb63)
    • Clean up docs (#180) (b48a03e)
    • Fix header logo in docs (#179) (f16dbbb)
    • Add @glow-xyz/nftoken-js library (#178) (e4a4fc5)
    • Update benefits (#177) (86f1697)
    • Add more states to the mintlist page (#176) (1ba10db)
    • Add countdown to mintlist + more social tags (#175) (d635040)
    • Remove animation from secondary nav on desktop (#174) (28098b4)
    • More cleanups (#173) (5f3722a)
    • Do some small docs cleanups (#172) (faa1e8d)
    • Layered navigation system (#170) (975d120)
    • Improve mintlist layout + functionality (#171) (fd6ddc5)
    • Support CSV Upload (#167) (94f7f3c)
    • Improve image uploading drop zone (#168) (ed7a44d)
    • Allow Minting from Mintlist (#166) (326d3bc)
    • Split NFT info by on/off chain metadata (#165) (d9a4987)
    • Add the NFTs section to the Mintlist page (#163) (2e8593b)
    • Polish NFT and collection 404 pages (#164) (2fc6e96)
    • Create collection detail page (#162) (9075741)
    • All Mintlists Page (#161) (4d1ae1d)
    • Add Mintlist Support to the docs website (#158) (7772338)
    • Simplify _app.tsx (#160) (a7a2420)
    • Allow minting devnet NFTs (#152) (58cf8d5)
    • Un-break the docs (#159) (1dad212)
    • Revert Ben's changes (#157) (5786934)
    • Style NFT detail page (#155) (66bff88)
    • Move docs to /docs (#154) (838b496)
    • Add super basic page to see an NFT's information (#153) (013b1fa)
    • Bring over LuxModal (#149) (8fca787)
    • Tweak margin (#151) (74943d8)
    • Use LuxButton in more places (#140) (b7d500b)
    • Attribute table (#150) (2b0ea14)
    • Mitigate layout shift due to splash page image (#147) (263afbe)
    • Push the footer down on short pages (#145) (4895909)
    • Fix responsiveness issue due to code block 2 (#144) (8ca76d9)
    • Fix responsiveness in code block (#143) (5c52dc4)
    • Add Google Analytics (#142) (09f35e0)
    • Make code blocks light/dark responsive (#137) (77ff7ee)
    • Footer improvements (#139) (74237ef)
    • flex-center (#141) (8044394)
    • Bump dependencies, incl @glow-app to 1.0 (#138) (000a3c5)
    • Update some technical copy (#136) (0dc9961)
    • Refactor header and _app.tsx components (#135) (3b27df3)
    • Improve the create nft section (#134) (dd43175)
    • Fix social preview and page title (#132) (c72384f)
    • Bump program version and release docs (#131) (b35ea98)
    • Revise some docs copy from feedback (#100) (34d3765)
    • Share image (#125) (0ecb66e)
    • Bring over components from Luma (#126) (5fa2677)
    • Delete renovate.json5 (#129) (71a0a84)
    • Minting success animation (#116) (c1af751)
    • Loading indicator for image uploading (#117) (4fa35ab)
    • Fix sketch in dark mode (#119) (a1ee38f)
    • Swap favicon (#118) (8b845fd)
    • Update renovate.json5 to run less often (#115) (c02b49e)
    • Dark mode fixes (#113) (b0dc795)
    • Fix link on homepage (#114) (2e6fa7d)
    • Remove @solana/web3.js + small polish (#108) (dc44024)
    • fix (#107) (bfa4e57)
    • Iterate on Create NFT section UI (#85) (1ee7e09)
    • Hook up uploading image to creating NFT (#106) (47d96a8)
    • Mobile nav animation fix (#105) (98b4a0a)
    • Hook up uploading image to S3 (#104) (644ea0a)
    • Splash page (#96) (03302fb)
    • Add footer (#92) (1151817)
    • Bump version to 1.0 (#95) (1f04a7d)
    • Prepare to deploy to nftokf9qcHSYkVSP3P2gUMmV6d4AwjMueXgUu43HyLL (#94) (33b1bd2)
    • Rename collection_transfer to collection_update_authority (#93) (75bdae2)
    • Deploy new program nf8HTAnNYh2nSBh8a3Sfa7XsCZYitMcHRx3PgEtea5E (#88) (1916b59)
    • Import icons instead of using raw SVG’s (#91) (45bfd91)
    • UI polish (#89) (2e7e807)
    • Improve docs + add nft_burn_v1 instruction (#86) (adcf589)
    • Add tag (#81) (c1f9d79)
    • Add Code Blocks component (#82) (001ce97)
    • Don't allow scrolling when nav is open (#80) (fb6ce85)
    • Redesign (#68) (5a1bde1)
    • Update dependency @solana/web3.js to v1.43.6 (#73) (bfe4ba8)
    • Update dependency @typescript-eslint/parser to v5.27.1 (#75) (a199a60)
    • Update Node.js to v16.15.1 (#77) (ea2ddfb)
    • Update dependency next to v12.1.7-canary.31 (#76) (ff1ecfa)
    • Pin dependencies (#71) (c4ac7a8)
    • Configure renovatebot to manage deps (#70) (d222358)
    • Make the NFT creation form work (#67) (ac84dba)
    • Add basic content for documentation (#63) (5d052a4)
    • Add Sign in with Glow (#54) (8bab895)
    • Fix type error in docs (#61) (5bfd1b8)
    • Add ability for the creator to freeze an NFT account (#60) (a81adbc)
    • Create NFT Section (#55) (6bf725f)
    • Remove sass files locally in favor of npm package (#59) (c91a439)
    • Update creator field to authority (#58) (9f7421e)
    • Update deploy script and program ID (#57) (d766fca)
    • Add version to all instructions (#56) (af32e07)
    • Create layout for docs (#49) (37d0849)
    • Update deploy script to build before deploying (#53) (b376792)
    • Update metadata url to variable width string (#52) (48bdd0b)
    • Add instruction to set up creators account for royalties (#47) (5c02dd3)
    • Add contributing.md doc (#48) (71b01ab)
    • Add deploy script (#45) (1e050ce)
    • Update metadata length and account sizes (#44) (c2d931d)
    • Add docs website (#43) (373c6a0)
    • Add configuration for rustdocs (#42) (d92e9e9)
    • Prevent adding duplicate mint infos (#41) (52a8d46)
    • Organize imports + add a test for create coll / nft (#40) (f842f55)
    • Allow setting holder when creating NFT (#39) (a4eada7)
    • Rename priceprice_lamports; update account orders (#38) (90e278d)
    • Improve MintlistAccount layout (#37) (bbfc7b9)
    • Add mintlist_mint_nft instruction (#36) (8416c12)
    • Add mintlist_create + mintlist_add_mint_infos instructions (#35) (077a183)
    • Update README.md (#30) (c5590ba)
    • Update program to nf2 (#29) (5fe642f)
    • Allow updating nft + collection (with tests) (#27) (c912c52)
    • Update program id + rename instructions (#26) (d9a2772)
    • Add ixs to set / unset nft collection (#25) (b26046e)
    • Add test for transferring NFT (#21) (acb9ccf)
    • Set up GitHub Action to test Anchor Program on PRs (#16) (77f3811)
    • Add created_at to collection (#9) (f1cea0e)
    • Rename state → account_types (f36ec7b)
    • Fixup (f18ef99)
    • Remove unused imports (df8b5b3)
    • Pull our each instruction into its own file (92811df)
    • Add created_at to NftAccount struct (03571fa)
    • Split instructions into different files (c005a90)
    • Add tests for delegating (de156d1)
    • Add a readme (9841b3b)
    • Add collection account + ability to mint NFT into collection (c97c1ae)
    • Initial nftoken commit (5ce9117)
    Source code(tar.gz)
    Source code(zip)
  • nftoken-js-v0.1.1(Jul 10, 2022)

    • temp commit (2044837)
    • temp commit (c7a30ae)
    • temp commit (d513792)
    • temp commit (663c7b0)
    • temp commit (0e3e84d)
    • temp commit (60c4682)
    • temp commit (e608383)
    • Add nftoken-js package (1ffbb9f)
    • Update benefits (#177) (86f1697)
    • Add more states to the mintlist page (#176) (1ba10db)
    • Add countdown to mintlist + more social tags (#175) (d635040)
    • Remove animation from secondary nav on desktop (#174) (28098b4)
    • More cleanups (#173) (5f3722a)
    • Do some small docs cleanups (#172) (faa1e8d)
    • Layered navigation system (#170) (975d120)
    • Improve mintlist layout + functionality (#171) (fd6ddc5)
    • Support CSV Upload (#167) (94f7f3c)
    • Improve image uploading drop zone (#168) (ed7a44d)
    • Allow Minting from Mintlist (#166) (326d3bc)
    • Split NFT info by on/off chain metadata (#165) (d9a4987)
    • Add the NFTs section to the Mintlist page (#163) (2e8593b)
    • Polish NFT and collection 404 pages (#164) (2fc6e96)
    • Create collection detail page (#162) (9075741)
    • All Mintlists Page (#161) (4d1ae1d)
    • Add Mintlist Support to the docs website (#158) (7772338)
    • Simplify _app.tsx (#160) (a7a2420)
    • Allow minting devnet NFTs (#152) (58cf8d5)
    • Un-break the docs (#159) (1dad212)
    • Revert Ben's changes (#157) (5786934)
    • Style NFT detail page (#155) (66bff88)
    • Move docs to /docs (#154) (838b496)
    • Add super basic page to see an NFT's information (#153) (013b1fa)
    • Bring over LuxModal (#149) (8fca787)
    • Tweak margin (#151) (74943d8)
    • Use LuxButton in more places (#140) (b7d500b)
    • Attribute table (#150) (2b0ea14)
    • Mitigate layout shift due to splash page image (#147) (263afbe)
    • Push the footer down on short pages (#145) (4895909)
    • Fix responsiveness issue due to code block 2 (#144) (8ca76d9)
    • Fix responsiveness in code block (#143) (5c52dc4)
    • Add Google Analytics (#142) (09f35e0)
    • Make code blocks light/dark responsive (#137) (77ff7ee)
    • Footer improvements (#139) (74237ef)
    • flex-center (#141) (8044394)
    • Bump dependencies, incl @glow-app to 1.0 (#138) (000a3c5)
    • Update some technical copy (#136) (0dc9961)
    • Refactor header and _app.tsx components (#135) (3b27df3)
    • Improve the create nft section (#134) (dd43175)
    • Fix social preview and page title (#132) (c72384f)
    • Bump program version and release docs (#131) (b35ea98)
    • Revise some docs copy from feedback (#100) (34d3765)
    • Share image (#125) (0ecb66e)
    • Bring over components from Luma (#126) (5fa2677)
    • Delete renovate.json5 (#129) (71a0a84)
    • Minting success animation (#116) (c1af751)
    • Loading indicator for image uploading (#117) (4fa35ab)
    • Fix sketch in dark mode (#119) (a1ee38f)
    • Swap favicon (#118) (8b845fd)
    • Update renovate.json5 to run less often (#115) (c02b49e)
    • Dark mode fixes (#113) (b0dc795)
    • Fix link on homepage (#114) (2e6fa7d)
    • Remove @solana/web3.js + small polish (#108) (dc44024)
    • fix (#107) (bfa4e57)
    • Iterate on Create NFT section UI (#85) (1ee7e09)
    • Hook up uploading image to creating NFT (#106) (47d96a8)
    • Mobile nav animation fix (#105) (98b4a0a)
    • Hook up uploading image to S3 (#104) (644ea0a)
    • Splash page (#96) (03302fb)
    • Add footer (#92) (1151817)
    • Bump version to 1.0 (#95) (1f04a7d)
    • Prepare to deploy to nftokf9qcHSYkVSP3P2gUMmV6d4AwjMueXgUu43HyLL (#94) (33b1bd2)
    • Rename collection_transfer to collection_update_authority (#93) (75bdae2)
    • Deploy new program nf8HTAnNYh2nSBh8a3Sfa7XsCZYitMcHRx3PgEtea5E (#88) (1916b59)
    • Import icons instead of using raw SVG’s (#91) (45bfd91)
    • UI polish (#89) (2e7e807)
    • Improve docs + add nft_burn_v1 instruction (#86) (adcf589)
    • Add tag (#81) (c1f9d79)
    • Add Code Blocks component (#82) (001ce97)
    • Don't allow scrolling when nav is open (#80) (fb6ce85)
    • Redesign (#68) (5a1bde1)
    • Update dependency @solana/web3.js to v1.43.6 (#73) (bfe4ba8)
    • Update dependency @typescript-eslint/parser to v5.27.1 (#75) (a199a60)
    • Update Node.js to v16.15.1 (#77) (ea2ddfb)
    • Update dependency next to v12.1.7-canary.31 (#76) (ff1ecfa)
    • Pin dependencies (#71) (c4ac7a8)
    • Configure renovatebot to manage deps (#70) (d222358)
    • Make the NFT creation form work (#67) (ac84dba)
    • Add basic content for documentation (#63) (5d052a4)
    • Add Sign in with Glow (#54) (8bab895)
    • Fix type error in docs (#61) (5bfd1b8)
    • Add ability for the creator to freeze an NFT account (#60) (a81adbc)
    • Create NFT Section (#55) (6bf725f)
    • Remove sass files locally in favor of npm package (#59) (c91a439)
    • Update creator field to authority (#58) (9f7421e)
    • Update deploy script and program ID (#57) (d766fca)
    • Add version to all instructions (#56) (af32e07)
    • Create layout for docs (#49) (37d0849)
    • Update deploy script to build before deploying (#53) (b376792)
    • Update metadata url to variable width string (#52) (48bdd0b)
    • Add instruction to set up creators account for royalties (#47) (5c02dd3)
    • Add contributing.md doc (#48) (71b01ab)
    • Add deploy script (#45) (1e050ce)
    • Update metadata length and account sizes (#44) (c2d931d)
    • Add docs website (#43) (373c6a0)
    • Add configuration for rustdocs (#42) (d92e9e9)
    • Prevent adding duplicate mint infos (#41) (52a8d46)
    • Organize imports + add a test for create coll / nft (#40) (f842f55)
    • Allow setting holder when creating NFT (#39) (a4eada7)
    • Rename priceprice_lamports; update account orders (#38) (90e278d)
    • Improve MintlistAccount layout (#37) (bbfc7b9)
    • Add mintlist_mint_nft instruction (#36) (8416c12)
    • Add mintlist_create + mintlist_add_mint_infos instructions (#35) (077a183)
    • Update README.md (#30) (c5590ba)
    • Update program to nf2 (#29) (5fe642f)
    • Allow updating nft + collection (with tests) (#27) (c912c52)
    • Update program id + rename instructions (#26) (d9a2772)
    • Add ixs to set / unset nft collection (#25) (b26046e)
    • Add test for transferring NFT (#21) (acb9ccf)
    • Set up GitHub Action to test Anchor Program on PRs (#16) (77f3811)
    • Add created_at to collection (#9) (f1cea0e)
    • Rename state → account_types (f36ec7b)
    • Fixup (f18ef99)
    • Remove unused imports (df8b5b3)
    • Pull our each instruction into its own file (92811df)
    • Add created_at to NftAccount struct (03571fa)
    • Split instructions into different files (c005a90)
    • Add tests for delegating (de156d1)
    • Add a readme (9841b3b)
    • Add collection account + ability to mint NFT into collection (c97c1ae)
    • Initial nftoken commit (5ce9117)
    Source code(tar.gz)
    Source code(zip)
Owner
null
Solana NFT generative artwork program

resin Solana NFT generative artwork program Installation Depends on imagemagick for art generation, which can be installed here: https://imagemagick.o

null 4 Jun 24, 2022
Solana NFT marketplace boilerplate with anchor & react & candy-machine-cli

The Heros NFT Marketplace Boilerplate project is designed to let users fork, customize, and deploy their own nft marketplace app to a custom domain, ultra fast.

null 30 Dec 15, 2022
NFT mixing program on solana chain

Mixture_machine Core logic of composing NFT Compose of NFT As you invoke compose_nft function with 2 or more child NFTs, child NFTs are locked in to M

Jay Soh 7 Dec 12, 2022
A reference NFT Staking Program & Client for Solana NFTs

This is a reference NFT Staking Program & Client for Solana NFTs. This program is compatible with both Candy Machine v1 and Candy Machine v2 NFTs.

Tracy Adams 73 Dec 19, 2022
Solana NFT marketplace boilerplate with anchor & react & candy-machine-cli

Solana_Marketplace_HerosNFT The Heros NFT Marketplace Boilerplate project is designed to let users fork, customize, and deploy their own nft marketpla

null 30 Dec 15, 2022
Dfinity's fungible token standard. Any PRs and comments are welcome,collaborate with us to build this standard

Dfinity's fungible token standard. Any PRs and comments are welcome,collaborate with us to build this standard

Deland Labs 46 Nov 7, 2022
Demonstrates Solana data account versioning used in supporting the Solana Cookbook article: Account Data Versioning

versioning-solana This repo demonstrates ONE rudimentary way to upgrade/migrate account data changes with solana program changes. What is data version

Frank V. Castellucci 6 Sep 30, 2022
My attempt at learning Solana program (smart contract) development through RareSkill's Solana course.

60-days-of-solana My attempt at learning Solana program (smart contract) development through RareSkill's Solana course. Originally, I was trying to cr

Jasper 3 Feb 25, 2024
Simple rust library for NFT metadata w/ an easy server

NFT Server Simple rust lib for NFT Metadata, and a basic axum server for delivering it $ cargo build $ cargo clippy $ cargo run --bin example Usage I

Nomad 6 Nov 4, 2022
A Simple Rust NFT API + Smart Contract

Rust NFT API Purpose Rust NFT API is a simple RESTful API developed in Rust that offers functionalities for creating, retrieving, and listing Non-Fung

Luis Soares 5 Feb 25, 2024
C++ `std::unique_ptr` that represents each object as an NFT on the Ethereum blockchain

C++ `std::unique_ptr` that represents each object as an NFT on the Ethereum blockchain

null 1.9k Dec 28, 2022
Substrate NFT !ink smart contract base

Substrate !ink NFT simple implementation This is a simple working version of base NFT smart contract written using latest (as of this date) !ink 3.0.0

POLK4.NET 14 Dec 3, 2022
Drop-in Access Control via NFT Ownership

niftygate - Signature-Based Authenticating Proxy What is it? niftygate is a proxy for HTTP services, that validates signatures, providing an AuthN lay

Chris Olstrom 70 Jan 3, 2023
NFT & Marketplace Contracts with royalties and fungible token support. Sample React app included.

NFT Market Reference Implementation A PoC backbone for NFT Marketplaces on NEAR Protocol. Reference Changelog Changelog Progress: basic purchase of NF

NEAR App Examples 156 Apr 28, 2022
Bespoke toolkit for Non-fungible token (NFT) technology 🚀

Bespoke toolkit for Non-fungible token (NFT) technology ?? What is Onft? Instead of forcing a consensus algorithm or peer networking on you, Onft prov

Owez 5 Jan 9, 2022
Examples and helpers to build NFT contracts on CosmWasm

CosmWasm NFTS This repo is the official repository to work on all NFT standard and examples in the CosmWasm ecosystem. cw721 and cw721-base were moved

CosmWasm 147 Jan 4, 2023
This is the Repo used to learn blockchain development in conjusction with the CyberGen NFT Project.

Environment Setup Install Rust from https://rustup.rs/ Install Solana from https://docs.solana.com/cli/install-solana-cli-tools#use-solanas-install-to

null 1 Nov 3, 2021
The NFT smart contract powering xyz on Terra

xyz NFT Contract This repository contains the core NFT smart contract that implements xyz, a base layer for metaverses on the Terra blockchain. The xy

null 16 Sep 25, 2022
A PoC backbone for NFT Marketplaces on NEAR Protocol

NFT Market Reference Implementation A PoC backbone for NFT Marketplaces on NEAR Protocol. Reference Changelog Changelog Progress: basic purchase of NF

null 9 May 26, 2022