All pages
Powered by GitBook
1 of 39

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Overview

Introduction

The NuvoSphere Inscription Platform is designed for seamless interactions with EVM-compatible blockchains. It integrates key components including a blockchain event indexer, a user-friendly frontend, and a comprehensive REST API, making it an all-encompassing platform for managing blockchain transactions.

Objective

Aiming to provide a streamlined experience, the platform simplifies various blockchain operations like token deployment, minting inscriptions, and transaction management. It is tailored to cater to a wide range of users, from beginners to experienced developers, ensuring accessibility and efficiency.

Quick Guide

Nuscriptions

Construct Mint Message

Construct Mint Message

Path

  • GET /message/mint/:ticker/:id/:amount

Description

  • Creates a mint message for a specific ticker, ID, and amount.

Parameters

  • ticker: Ticker symbol (path parameter).

  • id: Token ID (path parameter).

  • amount: Amount to mint (path parameter).

Request Example

Response Example

Get Number of Holders for Ticker

Path

  • GET /holder/:ticker

Description

  • Get number of holders for a ticker

Parameters

  • tick: Ticker symbol (query parameter)

Request Example

Response Example

GET /holder/NUVOGENESIS?tick=NUVOGENESIS
GET /message/mint/ETH/1/100
{
  "message": "data:,{\"p\":\"nip-20\", \"op\":\"mint\", \"tick\":\"ETH\", \"id\":\"1\", \"amt\":\"100\"}"
}
"11939"

What's different

Unique Features of the NuvoSphere Inscription Platform

The NuvoSphere Inscription Platform stands out with several unique features:

  1. Customizable Minting Process:

    • Deployers can specify contracts to refine controls over the minting process, offering flexibility and enhanced security.

  2. Unique Sequencing for Minting:

    • While global uniqueness isn’t enforced, the platform ensures a unique sequence in the minting process, making it fairer and more manageable.

  3. Integration with Nuvo Platform:

    • Fully integrated with the Nuvo platform, providing a range of login methods backed by industry-leading MPC wallet technology.

  4. Marketplace with Derivative Support:

    • An upcoming marketplace feature will allow easy operation and support for derivatives, broadening the platform’s capabilities.

  5. Snapshot Features for Token Balances:

    • Periodic on-chain snapshots of token balances are taken, ensuring permanence and reliability of data without the worry of data purges.

These features make the NuvoSphere Inscription Platform a comprehensive, secure, and user-friendly environment for blockchain interactions.

Spot

How to mint

Frontend

Frontend Usage

The NuvoSphere Inscription Platform's frontend is designed for ease of use and accessibility, enabling users to interact with the blockchain efficiently.

Interface Overview

  • User-Friendly Design: A clear and intuitive interface for all user interactions.

  • Functionality Access: Easy access to key features like token deployment, minting, and transferring.

Navigating the Frontend

  • Detailed instructions on navigating the interface, accessing different functionalities, and performing key operations.

User Guide

  • Step-by-Step Instructions: Walkthroughs for common tasks such as connecting a wallet, deploying a token, minting, and transferring tokens.

  • Feedback and Notifications: Information on how the interface provides transaction feedback and status updates.

Hotfix1

Jan 19: Due to an error in the smart contract, we need to override the contract address of NUVOGENESIS by replacing "0x6c38B96C3417D46431906744B0D2D605dEA30fd3" with "0x213675a2BdF53F910972E43166165a08f1AD4489" when indexing block 11097263

Marketplace

Derivatives

Coming soon ......

Get Transaction History of a Token

Get Transaction History of a Token

Path

  • GET /transactions/:ticker/:txhash

Description

  • Retrieves the full transaction history for a given ticker and transaction hash.

Parameters

  • ticker: The ticker symbol of the token (path parameter).

  • txhash: The hash of the transaction (path parameter).

Request Example

Response Example

Error Responses

  • 404 Not Found: If no transaction history is found for the given ticker and transaction hash.

  • 500 Internal Server Error: For server-related issues.

Step 2 - Mint

  1. Search token name via search bar or through the list

  2. Click the selected token

  3. (On the right hand side) enter the amount you wish to mint. It can not be more than the amount limit per mint

  4. Make sure the recipient address is accurate

  5. Click Mint token. You will need to have sufficient Metis token as gas fee to proceed

  1. The following dialog will display in order to proceed, click "Accept"

CheckID Availability

Check ID Availability

Path

  • GET /:ticker/checkid

Description

  • Determines if a specific ID is available for minting under the given ticker.

Parameters

  • ticker: The ticker symbol of the token (path parameter).

  • id: The ID to check for availability (query parameter).

Request Example

Response Example

Error Responses

  • 400 Bad Request: If the ID is invalid or not provided.

  • 404 Not Found: If the specified ticker does not exist.

  • 500 Internal Server Error: For server-related issues.

Get Next ID for Minting

Endpoint Details: Get Next ID for Minting

Path

  • GET /:ticker/nextid

Description

  • Retrieves the next available ID for minting a new inscription for the specified ticker.

Parameters

  • ticker: The ticker symbol of the token (path parameter).

Request Example

Response Example

Error Responses

  • 404 Not Found: If the specified ticker does not exist.

  • 500 Internal Server Error: For server-related issues.

Step4 - Check my account

  1. When signed in, click wallet address

  2. Click “My account”

  3. You may now view your total asset, NuvoBadge status, RP, rebate, and more.

Get Status of an Transaction

Get Status of an Transaction

Path

Step-by-Step Instructions

Step-by-Step Instructions for Frontend Usage

Connecting a Wallet

  1. Access Wallet Connection: Click on the 'Connect Wallet' button.

  2. Select Wallet: Choose your wallet from the list provided by the Web3Modal.

  3. Authorize Access: Confirm the connection in your wallet.

Deploying a Token

  1. Navigate to Deploy Tab: Select the 'Deploy' tab in the interface.

  2. Enter Details: Fill in the token ticker, max amount, and mint limit.

  3. Deploy: Click the 'Deploy Token' button and confirm the transaction in your wallet.

Minting Tokens

  1. Select Mint Tab: Go to the 'Mint' tab.

  2. Input Details: Provide the ticker, amount, and recipient address.

  3. Mint Token: Click 'Mint Token' and confirm the transaction.

Transferring Tokens

  1. Access Owned Tokens: Switch to the 'Owned Tokens' tab.

  2. Initiate Transfer: For the chosen token, enter the recipient's address.

  3. Confirm Transfer: Click the 'Transfer' button and approve the transaction in your wallet.

Feedback and Notifications

Feedback and Notifications

Real-Time Transaction Feedback

  • Progress Indicators: When a transaction is initiated (deploy, mint, transfer), the interface displays a progress indicator.

  • Confirmation Messages: Upon successful completion of a transaction, a confirmation message is displayed.

Error Handling and Alerts

  • Error Notifications: The interface provides clear error messages for failed transactions or issues.

  • Guidance: Suggestions for corrective actions in case of errors are provided.

Status Updates

  • Transaction Status: Updates on transaction status (pending, confirmed, failed) are displayed.

  • Wallet Connectivity: Notifications regarding wallet connection status are shown.

Auction

Coming soon ......

GET /:tx_hash/status

Description

  • Return the status of an inscription transaction

Parameters

  • tx_hash: Transaction hash(path parameter).

Request Example

Response Example

GET /transactions/ETH/0x123456...
{
  "transactions": [
    {
      "tx_hash": "0x123456...",
      "sender": "0xSenderAddress...",
      "recipient": "0xRecipientAddress...",
      "amount": 100,
      "op": "tsf",
      "tick": "ETH",
      // ... other transaction details
    },
    // ... more transactions
  ]
}
GET /NUVOGENESIS/checkid?id=2000000
{
  "isAvailable": true
}
GET /NUVOGENESIS/nextid
{"nextId":1013465,"tokenType":"nip-20","contract":"0x213675a2BdF53F910972E43166165a08f1AD4489"}
GET /0xd8e6e275831070677851bef893f9203254a63a3d6852fe9d951d5c2966642a98/status
{"status":"success"}

Step 1 - Connect account

  1. Click "Connect Wallet"

  1. Select Connect Wallet through Nuvo or Metamask

    (You are recommended to connect via Nuvo as your referral and transaction activities will be tracked through your Nuvo account, and you may be eligible for fee rebates and other benefits)

  1. (Through Nuvo)Choose to login either through email, google account and more

  1. (Through Metamask)Enter credential of your Metamask plugin and approve metamask permissions to login through Metamask.

Get Mint Amount

Get Mint Amount

Path

  • GET /mint-amount/:ticker/:txhash

Description

  • Retrieves the amount of a token minted in a specific transaction for the given ticker.

Parameters

  • ticker: The ticker symbol of the token (path parameter).

  • txhash: The hash of the minting transaction (path parameter).

Request Example

Response Example

Error Responses

  • 404 Not Found: If the ticker or transaction hash does not exist.

  • 500 Internal Server Error: For server-related issues.

Get Balance of an Inscription for an address

Get Balance of an Inscription for an Address

Path

  • GET /:address/:ticker/balanceb

Description

  • Return the balance of an inscriptoion for an address.

Parameters

  • address: The wallet address of the user (path parameter).

  • ticker: Ticker symbol (path parameter).

Request Example

Response Example

Get Deployment Details

Get Deployment Details

Path

  • GET /deployment/:ticker

Description

  • Retrieves deployment details for a given ticker, such as contract address and deployment parameters.

Parameters

  • ticker: The ticker symbol of the token (path parameter).

Request Example

Response Example

Error Responses

  • 404 Not Found: If the ticker has not been deployed.

  • 500 Internal Server Error: For server-related issues.

Step 3 - Check owned tokens

If mint is successful, user will be automatically redirected to the "owned token" page. You can exam your owned tokens here.

Construct Deployment Message

Construct Deployment Message

Path

  • GET /message/deploy/:ticker

Description

  • Generates a deployment message for a given ticker.

Parameters

  • ticker: Ticker symbol of the token (path parameter).

Request Example

Response Example

Inscription Existence Verification (tx_hash)

Transaction Existence Verification

Path

Get Delegation Amount

Get Delegation amount information

Path

API

API Documentation

The REST API of the NuvoSphere Inscription Platform provides programmatic access to blockchain operations. This section documents each endpoint, detailing request formats, responses, and examples.

Overview

List All Minted Inscriptions

List All Minted Inscriptions

Path

Indexer

Indexer Logic

The Indexer in the NuvoSphere Inscription Platform is a sophisticated component designed to interact with EVM-compatible blockchains, processing direct operations and contract-emitted events.

Functionality

Get Tokens

Path

  • GET /token/gettokens

Inscription Existence Verification (id)

Inscription Existence Verification

Path

Overview

API Overview

Base URL

Describes the base URL, authentication methods (if any), and general usage guidelines.

Endpoint Details

Each endpoint is documented with:

  • Path: The URL path of the endpoint.

  • Method: HTTP method (GET, POST, etc.).

  • Parameters: Required and optional parameters.

  • Request Example: Sample request format.

  • Response Example: Example of the expected response.

  • Error Responses: Common error codes and their meanings.

Sample Endpoints

  • Get Next ID for Minting

    • Path: /:ticker/nextid

    • Method: GET

    • ...

  • Check ID Availability

    • Path: /:ticker/checkid

    • Method: GET

    • ...

  • Transfer Ownership

    • Path: /message/transfer/:ticker/:id

    • Method: GET

    • ...

Usage Examples

  • Code snippets or example requests to demonstrate how to interact with each endpoint.

Error Handling

  • Information on how the API communicates errors and how to interpret th

Event Listening: Continuously monitors blockchain events.

  • Data Indexing: Indexes data from events for efficient retrieval and processing.

  • Processing Operations

    • Deploy, Mint, and Transfer: Processes these operations based on predefined message formats.

    • Ownership Tracking: Maintains a record of token ownership from minting through subsequent transfers.

    Event Handling

    • Parses and processes events related to token deployment, minting, and transfer.

    • Contract Events: Additionally handles specific contract-emitted events that allow for token transfers, enhancing the platform's integration with smart contracts.

    Validation and Error Handling

    • Robust validation mechanisms ensure data integrity and correct operation.

    • Error handling manages parsing errors, invalid data, and communication issues with the blockchain.

    The API is accessible at https://nip-api.nuvosphere.io.

    Authentication

    • Currently, the API does not require authentication. This may change in future updates.

    Usage Guidelines

    • The API is designed for efficient interaction with blockchain data.

    • Users should respect rate limits to ensure service stability.

    • Requests should be properly formatted according to the specifications of each endpoint.

    GET /:ticker/:tx_hash/exist

    Description

    • Verifies the existence of a specific minted inscription for a given ticker.

    Parameters

    • ticker: The ticker symbol of the token (path parameter).

    • tx_hash: The hash of the transaction that minted the inscription to verify (path parameter).

    Request Example

    Response Example

    Error Responses

    • 404 Not Found: If the ticker or transaction hash does not exist.

    • 500 Internal Server Error: For server-related issues.

    GET /:address/:ticker/:target/delegation

    Description

    • Return delegation amount of a ticker from address to a target address before a maximum height.

    Parameters

    • address: The address to delegate from (path parameter).

    • ticker: Ticker symbol (path parameter).

    • target: The address to delegate to (path parameter)

    • height: Maximum revoke height (Optional query parameter)

    Request Example

    Response Example

    Error Responses

    • 500 Server Error: For server-related issues.

    GET /mints/:ticker

    Description

    • Retrieves all minted inscriptions (identified by transaction hash) for a specific ticker.

    Parameters

    • ticker: The ticker symbol of the token (path parameter).

    Request Example

    Response Example

    Error Responses

    • 404 Not Found: If no minted inscriptions are found for the given ticker.

    • 500 Internal Server Error: For server-related issues.

    Description
    • Get all the tokens deployed on the network.

    Parameters

    • page: Ticker symbol (path parameter). Optional, default=1

    • pageSize: Token ID (path parameter). Optional, default=5000

    Request Example

    Response Example

    GET /:ticker/:id/exist

    Description

    • Checks if a inscription with a given hash exists for a specific ticker.

    Parameters

    • ticker: The ticker symbol of the token (path parameter).

    • id: The hash of the transaction that minted the inscription (path parameter).

    Request Example

    Response Example

    Error Responses

    • 404 Not Found: If the id or ticker does not exist.

    • 500 Internal Server Error: For server-related issues.

    GET /mint-amount/ETH/0x987xyz...
    {
      "amount": 200
    }
    GET /0xf9a3020c71Ba4F62364c624242D54a1229f3125F/NUVOGENESIS/balanceb
    {"balance":0}
    GET /deployment/ETH
    {
      "deployment": {
        "contractAddress": "0x789ghi...",
        "maxAmount": 1000,
        "mintLimit": 100,
        // ... other deployment details
      }
    }
    GET /message/deploy/ETH
    {
      "message": "data:,{\"p\":\"nip-20\", \"op\":\"deploy\", \"tick\":\"ETH\"}"
    }
    GET /ETH/0x1234abcd.../exist
    {
      "exists": true
    }
    GET /0xf9a3020c71Ba4F62364c624242D54a1229f3125F/NUVOGENESIS/0x213675a2BdF53F910972E43166165a08f1AD4489/delegation
    {
        "delegation": null
    }
    GET /mints/ETH
    jsonCopy code{
      "mints": [
        {
          "tx_hash": "0x789abc...",
          "amount": 50,
          // ... other mint details
        },
        // ... more minted inscriptions
      ]
    }
    GET /token/gettokens?page=2&pageSize=1
    {
       "tokens":[
                    {
                    "ticker":"10",
                    "maxamount":"1000",
                    "mint_limit":"10",
                    "data":"data:,{
                                    \"p\":\"nip-20\",
                                    \"op\":\"deploy\",
                                    \"tick\":\"10\",
                                    \"max\":1000,
                                    \"lim\":10,
                                    \"contract\":\"0xDe1499B52DAF275F9DcE6630881c93A59Da0224b\",
                                    \"cmint\":1,
                                    \"dataurl\":\"\",
                                    \"of\":\"data:,{
                                                    \\\"p\\\":\\\"nip-20\\\",
                                                    \\\"op\\\":\\\"deploy\\\",
                                                    \\\"tick\\\":\\\"NUVO\\\",
                                                    \\\"max\\\":\\\"10000\\\",
                                                    \\\"lim\\\":\\\"50\\\"}\"}",
                    "block_number":"11128992"}
         ]
    }
    GET /NUVOGENESIS/0x123abc.../exist
    {
      "exists": true
    }

    Get Token Owner

    Get Token Owner

    Path

    • GET /owner/:ticker/:txhash

    Description

    • Determines the current owner of a specific token, identified by its ticker and transaction hash.

    Parameters

    • ticker: The ticker symbol of the token (path parameter).

    • txhash: The hash of the transaction to trace ownership (path parameter).

    Request Example

    Response Example

    Error Responses

    • 404 Not Found: If the ticker or transaction hash does not correspond to an existing token.

    • 500 Internal Server Error: For server-related issues.

    List Owned Tokens

    List Owned Tokens

    Path

    • GET /tokens/ownedBy

    Description

    • Retrieves a list of tokens owned by a specified wallet address.

    Parameters

    • address: The wallet address of the user (query parameter).

    Request Example

    Response Example

    Error Responses

    • 400 Bad Request: If the wallet address is not provided or invalid.

    • 500 Internal Server Error: For server-related issues.

    Construct Transfer Message

    Construct Transfer Message

    Path

    • GET /message/transfer/:ticker/:id

    Description

    • Generates a transfer message for a given ticker and ID.

    Parameters

    • ticker: Ticker symbol (path parameter).

    • id: Token ID (path parameter).

    Request Example

    Response Example

    GET /owner/ETH/0xabc123...
    {
      "owner": "0x123ownerAddress..."
    }
    GET /tokens/ownedBy?address=0x456def...
    {
      "ownedTokens": [
        {
          "tokenId": "0x123abc...",
          "ticker": "ETH",
          "amount": 100
        },
        // ... more tokens
      ]
    }
    GET /message/transfer/ETH/1
    {
      "message": "data:,{\"p\":\"nip-20\", \"op\":\"tsf\", \"tick\":\"ETH\", \"id\":\"1\"}"
    }

    Protocol

    Protocol-Level Operations

    Understanding protocol-level operations is key for interacting with the blockchain. This section explains how deploy, mint, and transfer messages function, including where they are sent.

    GENESIS BLOCK: 11097263

    General Rule:

    All operations, whether they are part of the tx.data or as emitted contract events, are processed based on the order of the blocknumber and tx_index within the block in a deterministic manner. Future operations will not ever change the outcome of the past events.

    Sending Messages

    • Messages are sent as transaction data to the blockchain.

    • Any data that conforms with the open dataURL format are recognized as an inscription. For example: 'data:,{"p":"nip-20", "op":"deploy", "tick":"<TICKER>" '

    • However, the validity of the message are determined according to the following rules

    Deploy Operation

    • Message: {"p":"nip-20", "op":"deploy", "tick":"<TICKER>", "max":<MAXAMOUNT>, "lim":<MINT_LIMIT>, "contract":<optional:ADDRESS>, "cmint":<optional:bool>}

    • Recipient: Can be sent to any address.

    • Validation:

    Mint Operation

    • Message: {"p":"nip-20", "op":"mint", "tick":"<TICKER>", "id":"<ID>", "amt":"<AMOUNT>"}

    • Recipient: The address receiving the newly minted token.

    • Validation:

    Transfer Operation

    • Message: {"p":"nip-20", "op":"tsf", "tick":"<TICKER>", "id":"<ID>"}

    • Recipient: The new owner of the token.

    • Validation:

    The following operations will be enabled in the future update:

    Split Operation - split one inscribed token into two smaller amounts

    • Message: {"p":"nip-20", "op":"split", "tick":<TICKER>, "id":<ID>, "amt1":<AMOUNT1>, "amt2":<AMOUNT2> }

    • Recipient: The owner of the two splited inscriptions.

    • Validation: Confirms TICKER and ID, the tx.hash where the inscription happened,existence, checks sender's ownership. Amount1 + Amount2 should equal to the original minted mount of this ID. two new inscriptions will be minted as a result. the original inscription will be burned.

    Burn Operation - destroy an inscription

    • Message: {"p":"nip-20", "op":"list", "tick":"<TICKER>", "id":"<ID>"}

    • Recipient: must be the owner itself

    • Validation:

    List Operation - list the inscription for a price

    • Message: {"p":"nip-20", "op":"list", "tick":"<TICKER>", "id":"<ID>", "price":<number>, "unit":<UNIT>}

    • Recipient: must be the owner itself

    • Validation:

    UnList Operation - unlist the inscription for a price

    • Message: {"p":"nip-20", "op":"ulist", "tick":"<TICKER>", "id":"<ID>"}

    • Recipient: must be the owner itself

    • Validation:

    Exchange Operation - exchange for the inscription by paying a price

    • Message: {"p":"nip-20", "op":"ex", "tick":"<TICKER>", "id":"<ID>"}

    • Recipient: must be the owner of the listed inscription.

    • Validation:

    Contract Events:

    'NIP20TokenEvent_transfer(address,address,bytes32,bytes32)' - transfer from sender to recipient with ticker and id

    'NIP20TokenEvent_mint(address,address,bytes32,uint256,uint256)' - mint from sender to recipient of ticker with mint id and amount. Note: require contract address set in the deployment of the token. events emitted from other contracts are ignored.

    'NIP20TokenEvent_bridgeIn(address,address,address,bytes32,uint256,uint256)' - bridge erc20 in to mint a inscription

    'NIP20TokenEvent_bridgeOut(address,address,address,bytes32,uint256,uint256)' - bridge inscription out for an erc20 token

    Ownership Determination

    • Ownership of a token is tracked from minting. Transfer operations update ownership, with the latest valid transfer indicating the current owner.

    Checks for the uniqueness of the TICKER. No duplicate is allowed.
  • The ticker has a maximum 10 character limit. and should only contain english characters and numbers. no special character allowed.

  • When contract address is provided, static nip20_allowMint() method of this contract address will be called when validating a mint operation.

  • When the contract address is provided, only this contract can mint the inscriptions through smart contract events. Regular mints may still be allowed depending on other configurations.

  • MINT_LIMIT must be greater than 0.

  • MAX_AMOUNT must be greater than MINT_LIMIT

  • Reserved ticker such as "METIS" or "NUVO" can only be deployed by the Nuvo Team to ensure smooth operation.

  • if cmint is set to true, mints can be done via the contract only. Regular mints in messages are disallowed.

  • Ensures TICKER exists and already deployed and ID is unique.
  • ID does not need to be sequential but must be globally unique.

  • The amount must obey the MAX_AMOUNT and MINT_LIMIT of the deployed token.

  • Confirms TICKER and ID, the tx.hash where the inscription happened,exists
  • Sender must be the owner of this inscription.

  • The inscription is currently not listed for sale.

  • Confirms TICKER and ID, the tx.hash where the inscription was minted,exists
  • Sender must be the owner.

  • Confirms TICKER and ID, the tx.hash where the inscription happened,exists
  • Sender must be the owner.

  • UNIT needs to be one of the accepted unit on the deployed network. Please refer to network's page for more info. Price must be a whole number.

  • Confirms TICKER and ID, the tx.hash where the inscription happened,exists
  • Sender has listed the inscription.

  • Confirms TICKER and ID, the tx.hash where the inscription happened,exists
  • Sender must own enough <UNIT> to pay the price. UNIT needs to be one of the accepted unit on the deployed network. Please refer to network's page for more info. Price must be a whole number.

  • The inscription was listed by the recipient.