Skip to content

1.4.0

Compare
Choose a tag to compare
@wallentx wallentx released this 29 Jun 20:21
bd35cb1

Artists and developers (and everyone else) rejoice! The time has finally arrived as this is the much anticipated release for NFTs.

We took a comprehensive and empathy-first approach to understand the ecosystem, the technology’s benefits (both realized and unrealized), the challenges and the pain points. We built our NFT1 standard to offer novel and expanded functionality we believe addresses the friction NFT creators and collectors experience, as well as serve as the foundation to scale the technology into new use cases.

The changelog list below is long, but here’s the TLDR:

For creators:

  • Mint an NFT from the command line or through RPCs
  • Supports on-chain and off-chain metadata with cryptographic hashes at the time of minting
  • Add/update additional links to the NFT content to ensure permanence to the NFT
  • Upon minting, set a permanent royalty percentage and royalty wallet address to get paid on each sale that is enforced on-chain and independent of any marketplace
  • Mint an NFT and transfer to your profile (aka DID) to create the first step in provenance to your NFT
  • Add an off-chain license document that details the rules for others to use your NFT, along with an on-chain sha-256 hash of that document
  • New developer documentation to help you get started with NFTs

For everyday users:

  • Chia’s wallet now supports the following features:
    • View a gallery of your NFT images
    • Send an NFT to your IRL friends, family, and web3 frens
    • Receive an NFT at your XCH wallet address
    • Use Offers to buy or sell NFTs for XCH
    • Share NFT offers to dexie.space (with more integrations to come!)
    • Create and label a profile (aka DID) that links your identifier to the NFT and help build out provenance
    • Download the NFT content so you can have a copy of it to use anywhere

Download the latest update and start creating and building out your collections!

Known Issues

  • You can only mint one NFT per block if you’re using Chia’s CLI or RPC. We are currently working on a bulk minting tool that will address this. If you attempt to mint more than one NFT in a single block, you’ll receive “{'error': 'ALREADY_INCLUDING_TRANSACTION'}” as a WARNING in your log file. The CLI will indicate a successful transaction; it will not show this warning. The reason for this is because the mempool is rejecting your transaction, which happens after the wallet submits it. The transaction will be stuck in the Pending state.
    • Workaround: After minting an NFT, wait for the transaction to clear (approximately 1 minute) before attempting to mint another NFT. If you do see a Pending transaction in your wallet that doesn’t clear after several minutes, then you can remove it by doing the following:
      • GUI - Click the “Actions” dropdown and click “Delete Unconfirmed Transaction”
      • CLI - Run chia wallet delete_unconfirmed_transactions
  • When creating a new Profile (aka DID), the GUI will immediately show the availability of the new Profile, but any actions taken on the new profile, like transferring an NFT will result in an error until the Profile has been written and confirmed on chain.
    • Workaround: Wait for the Profile to be written on-chain and be sure add fees when creating a Profile to help speed up the process
  • When transferring an NFT to a Profile (aka DID), doing more than one in quick succession will result in 2nd, 3rd, etc., NFTs to get stuck in “update pending” state.
    • Workaround is to use the “Cancel Unconfirmed Transaction” on any of the NFTs that get stuck to unlock the NFTs
  • When on testnet, the offer history screen may show “Unknown” instead of “TXCH”.
    • Workaround is to restart the app

Added

Changed

  • New coin selection algorithm based on bitcoin knapsack. Previously chia selected the largest coin
  • Updated chiapos to 1.0.10
  • Updated chiavdf to 1.0.6
  • Updated blspy to 1.0.13
  • Updated setproctitle to 1.2.3
  • Updated PyYAML to 6.0
  • Updated pyinstaller to 5.0
  • Bump clvm_tools_rs version to 0.1.9 for clvm stepper and add a test
  • Modest speedup of syncing by batching coin lookups
  • Cmds: Use the new plot_count of get_pool_state in plotnft show
  • Set mempool size back to the original size at launch
  • Plotting|tests|setup: Improve PlotManager cache
  • Wallet: Drop unused WalletStateManager.get_derivation_index
  • Harvester: Tweak get_plots RPC
  • Remove explicit multidict version from setup.py
  • Simplify install.sh ubuntu version tracking
  • Optimize BLS verification when public key is repeated
  • Use Install.ps1 in build_windows.ps1
  • Updated warning about CHIA_ROOT being set when running init
  • Cmds: Adjust stop daemon output
  • Remove unused functions on MerkleSet
  • Optimize hash_coin_list()
  • Update CONTRIBUTING.md
  • Remove outdated 3.8 upgrade comment
  • Hint refactor
  • Replace MerkleSet with the rust implementation
  • Simplify SizedBytes and StructStream
  • Allow services to set a non-default max request body size limit
  • Reduce the redundant computations of coin_ids in block_body_validation
  • Uses the new from_bytes_unchecked method in blspy, to improve perfo…
  • Remove the cache from CoinStore
  • Keep daemon websocket alive during keyring unlock
  • Support searching derived addresses on testnet.
  • Optimize code to not perform useless subgroup checks
  • Restore missing hints being stored as None (instead of 0-length bytes)
  • Coin simplification
  • Harvester: Use a set instead of a list to speed up availability checks
  • Improved performance of debug log output
  • Update plotters installation to include an apt update - thanks to @TheLastCicada
  • Early return from _set_spent function - Thanks @neurosis69
  • Remove redundant condition in get_coin_records - Thanks @neurosis69
  • Write python version error to stderr - thanks to @LuaKT

Fixed

  • Fixed issues with harvesters not reconnecting properly - fixes #11466
  • Return not synced if there are no connections - fixes #12090
  • Fix issues with wallet resending transactions on various mempool and node errors - fixes #10873
  • Fix some issues with plotnft show (#11897)
  • Handle ephemeral ports and dual stack (ipv4 & ipv6)
  • Fix issues when wallet syncing and rolling back too far in the past
  • Fixes issues with the Farmer Reward dialog incorrectly reporting there is no private key (#11036)
  • Fix race condition, blockchain can change between two calls to get_peak
  • Wallet: Fix CATLineageStore creation in create_new_cat_wallet
  • Fix incorrect return in "rollback_to_block"
  • Wallet: Some rollback fixes
  • Fix issue with missing coins
  • Fix Newer block issue
  • Fix jsonify bool
  • Fix wallet introducers for testnet
  • Correct wallet CLI sent/received indication
  • Correct "Older block not found" error message
  • Print MempoolInclusionStatus as string
  • Optimize Program.curry()
  • Improve detection of disconnected websocket between services
  • Correct install.sh usage short options list
  • Make sure we set the sync to height correctly when we roll back

Thanks

  • Thanks to @antouhou for his assistance with publishing bls-signatures to npm
  • Special thanks to our Community Developers Alpha Group who helped us in testing
  • Thanks to @greimela for their contribution to the NFT project
  • Thanks to all of our NFT partners

Full Changelog: 1.3.5...1.4.0