NiftyKit Docs
WebsiteLaunch AppSign UpDiscord
  • Get Started
    • Introduction
    • Web3 and NFT Basics
    • Getting Started
      • Platform Overview
      • NiftyKit Demo Collection
      • Generating Assets
      • NiftyKit Creator Public Profile
      • File Asset, Size, and Requirements
      • Art Generator Asset Guidelines
    • Pricing
  • NFT Collections
    • What is an NFT Collection?
    • Minting 101
      • Creating Your Own NFT Collection
      • Minting Drop & Dynamic NFTs
      • Airdropping NFTs
      • Minting Open & Limited Editions
    • Collaborations & Shared Collections
      • Revenue Split
        • Split with The Giving Block (Donations Partner)
        • Withdraw Your Revenue Splits
    • Collection Management
      • Importing Assets & Metadata
      • Sales Management
      • Reveal Management
        • Pre-Reveal Placeholder
        • Revealing Your Metadata
      • Post-Drop Management
        • Withdrawing Your Funds
        • Renouncing Your Contract
        • Transfer Ownership of Contract
    • Listing NFTs for Sale
      • Waitlist Management
      • Presale Management
      • Public Sale Management
    • Our Smart Contracts
      • Perfect Abstractions Audit
      • Diamond Smart Contracts
      • Royalties
        • Updating Operator Filter (Blocking Blur and OpenSea)
        • Setting Royalties on NFT Marketplaces
      • Migrating Your Smart Contract to NiftyKit
    • Analytics
    • Troubleshooting
  • Customize Your Experience
    • Introduction
    • NiftyKit Diamond Widgets
      • Available Widgets
        • 🔲Connect Wallet Button
          • ⏳Countdown Timer
        • Drops
          • 🔲Drop Mint Button
          • 🔤Drop Mint Supply Text
          • 🔤Drop Mint Price Text
        • Editions
          • 🔲Edition Mint Button
          • 🔤Edition Mint Supply Text
          • 🔤Edition Mint Price Text
        • Utilities
          • 🛠️Is Connected
          • 🛠️Is Not Connected
          • 🛠️Is Holder
      • Widget Builder
      • Installation Guides
        • 📰Install for WordPress
        • 🌊Install for Webflow
        • 🖌️Install for Wix
        • ◻️Install for Squarespace
    • Available Apps
      • NFT Generator Desktop App
      • Pay What You Want App
      • Crossmint App: Credit Card Minting
      • Augmented Reality App (Token Access)
      • Accept ERC-20
        • Custom ERC-20
      • Generative Collection
      • Soulbound Token
      • Share To Earn
      • ApeCoin
      • Royalty Update
      • Submit an App Request
    • Token Access In Collections
    • Integrate Credit Card Minting
      • Drop Collection Credit Card Integration
      • Edition Collection Credit Card Integration
    • Migrating Your Smart Contract to NiftyKit (via Airdrop)
    • NiftyKit Integration with Farcaster Frames
  • Community
    • Community Guidelines
    • FAQ
    • Meet the Team
    • Contact Info
  • Updates and Changelog
    • Security Report
    • Deprecated features
Powered by GitBook
On this page

Was this helpful?

  1. NFT Collections
  2. Our Smart Contracts

Diamond Smart Contracts

Introducing "Diamonds", ERC-2535: Diamonds, Multi-Facet Proxy, is a new type of smart contract system t- a highly modular, upgradable after deployment, and has virtually no size limit

All new upcoming tools and features released by NiftyKit will be applicable to all deployed Diamond smart contracts moving forward.

Advantages of using Diamond Contracts:

  1. Single Address for Unlimited Contract Functionality. Deployment, testing, and integration with other smart contracts, software, and user interfaces are made simpler through the use of a single address for contract functionality.

  2. Exceeding 24KB Maximum Contract Size. It is possible to keep related functionality within a single contract or at a single contract address, as Diamonds have no maximum contract size.

  3. Organization of Contract Code and Data. A Diamond provides an effective system for isolating different functionalities and connecting them together, as well as sharing data between them in a gas-efficient manner.

  4. Upgrading Functionality. Upgradeable Diamonds can be improved to add, replace or remove features as required. As Diamonds have no maximum contract size, there is no limit to the amount of new functionality that can be added over time. Through upgrading, parts of a Diamond can be altered without having to re-deploy existing processes.

  5. Immutability. It is possible to deploy an immutable Diamond or make an upgradeable Diamond immutable at a later stage.

  6. Reusing Deployed Contracts. Existing, deployed contracts on the blockchain can be utilized to create Diamonds, allowing for the creation of on-chain smart contract platforms and libraries.

PreviousPerfect Abstractions AuditNextRoyalties

Last updated 1 year ago

Was this helpful?