Artinals Protocol
  • Introduction
    • What is Artinals?
    • Overview of the Modules
    • Key Concepts and Terminology
  • Getting Started
    • Prerequisites
    • Cloning the Repository
    • Building and Testing the Modules
  • ART20
    • Overview and Capabilities
    • Data Structures
      • NFT
      • CollectionCap
      • UserBalance
      • TokenIdCounter
      • Dual IDs
    • Events
      • NFTMintedEvent
      • CollectionCreatedEvent
      • MetadataUpdateEvent
      • BurnEvent
      • TransferEvent
      • Additional Events
    • Functions and Entry Points
      • Initializing the Module
      • Creating Collections
      • Minting ART20 NFTs
      • Updating Metadata
      • Transfer and Burn Operations
      • Batch Operations
      • Deny List Mechanics and Authority
      • Custom Transfers
    • Value Sources (API, Oracle)
    • Best Practices & Examples
  • SALE Module
    • Purpose and Functionality
    • Interdependence
    • Price Index Module
    • Liquidity Module
    • Data Structures
      • NFTSale
      • NFTListing
  • Events
    • SaleCreated
    • NFTPurchased
    • PriceUpdateEvent
    • CurrencyWithdrawn
    • DenyList & Related Events
    • PoolCreatedEvent
    • OrderCanceled
    • OrderExecuted
  • Functions and Entry Points
    • Creating a Sale
    • Adding NFTs to a Sale
    • Purchasing NFTs from a Sale
    • Withdrawing Proceeds
    • Managing Sale State
    • Core Trading Functionality
  • Integrating with ART20
  • Examples & Best Practices
  • MARKET Module
    • Introduction
    • Testnet (Beta)
    • Smart Contract Overview
    • Data Structures
      • Trade Ledger (TradeLedger)
      • Trade Offer (TradeOffer)
      • Buy Offer (BuyOffer)
      • Ledger Registry (LedgerRegistry)
    • Event Structures
      • Offer Created (OfferCreated)
      • Offer Accepted (OfferAccepted)
      • Buy Offer Created (BuyOfferCreated)
      • Buy Offer Accepted (BuyOfferAccepted)
      • Batch Transactions
    • Event Emissions
    • Functions and Entry Points
      • Trade Ledger Management
      • Register Ledger
      • Get Trade Ledger
      • Create Sell Offer
      • Accept Sell Offer
      • Cancel Sell Offer
      • Create Buy Offer
      • Accept Buy Offer
      • Cancel Buy Offer
      • Batch Accept Sell Offers
      • Batch Accept Buy Offers
  • Security Mechanisms
  • TRADE Module
    • Introduction
    • Purpose and Ecosystem Role
    • Data Structures
      • TradingPool
      • LiquidityPosition
      • PriceOracle
      • CollectionPool
    • Events
      • PoolCreated
      • LiquidityAdded
      • LiquidityRemoved
      • TradeExecuted
      • PoolStatusChanged
      • PoolFeesUpdated
    • Functions and Entry Points
      • Creating and Managing Liquidity Pools
      • Adding/Removing Liquidity
      • Swapping NFTs and Tokens
      • Fee Mechanics and Distribution
      • Emergency Operations and Recovery
  • Working with Price Oracles
  • Metrics and Statistics (24h Volumes, TWAP, Price Impact)
  • Integration with SALE and ART20
  • Integration and Workflows
    • Typical User Journeys
      • Creating a Collection and Minting Tokens (ART20)
      • Listing and Selling NFTs (SALE)
      • Providing Liquidity and Trading NFTs (TRADE)
    • Example Scripts and Transactions
    • Interactions Between Modules
  • Security, Permissions, and Deny Lists
    • Introduction
    • Role of Deny List in ART20
    • Creator vs. Owner Permissions
    • Fee Distribution and Authority
    • Best Practices for Secure Deployment
  • Testing and Troubleshooting
    • Running Unit Tests
    • Common Issues and Solutions
    • Debugging and Emitting Debug Events
  • Advanced Topics
    • Value Sources (API Endpoints and Oracle Addresses)
    • Batch Update Operations
    • Customizing Parameters (Fees, Supply, Price Ranges)
    • Extensibility and Future Integrations
  • Appendices
    • Move Language and Sui Concepts
    • Glossary of Terms
    • Code Style and Conventions
  • Building on Top of the Artinals Contract
    • Overview
    • Package ID
    • Import Modules
    • Commom Integration Patterns
    • Best Practices
    • Common Errors and Solutions
Powered by GitBook
On this page
  1. Introduction

Overview of the Modules

Overview of the Modules

Artinals is primarily composed of three interlinked modules:

  1. ART20 Module: This module focuses on creating and managing NFT collections and their tokens. It offers functionalities for:

    • Minting new NFTs and collections.

    • Batch operations, such as mass minting or mass metadata updates.

    • Metadata updates, allowing creators to modify the NFT’s name, description, image URL, and more.

    • Deny list functionality, enabling creators to disallow certain addresses from receiving tokens.

    • Value sources, supporting data fetched from external APIs or oracles for dynamic NFT properties.

    Essentially, ART20 defines the core NFT logic, data structures, and event emissions that form the backbone of the Artinals system.

  2. SALE Module: The SALE module introduces marketplace-like functionality. It lets you:

    • Create NFT sales: List a set of NFTs for sale at a specified price per token.

    • Add more NFTs to an existing sale: Dynamically manage inventory in ongoing sales.

    • Purchase NFTs directly using a specified currency (like SUI or another coin type).

    • Withdraw currency proceeds from sales.

    • Open, close, or reopen a sale, allowing flexible management of the selling window.

    By integrating with ART20, the SALE module uses existing NFT capabilities while adding a layer of marketplace logic.

  3. TRADE Module: The TRADE module aims to facilitate more complex trading scenarios, including:

    • Liquidity pools for NFTs and tokens, allowing users to trade NFTs in a decentralized, automated market-making environment.

    • Adding and removing liquidity from pools, receiving LP tokens to represent shares.

    • Swapping NFTs for tokens and vice versa, governed by price curves, fees, and price oracles.

    • Pool management, including emergency operations, pool fee updates, and dynamic price setting.

    • Price oracle integration to maintain a fair and stable price feed for NFTs.

    In combination with ART20 and SALE, the TRADE module provides advanced DeFi-like mechanics for NFT liquidity and price discovery.

PreviousWhat is Artinals?NextKey Concepts and Terminology

Last updated 6 months ago