v1.1 (現行バージョン)#

NFT Garden で提供するAPIはREST形式です。レスポンスは全てJSON形式で返され、HTTPのステータスコードはリクエストの成功または失敗を示します。

Note

このAPIは現在β版として提供されています。 今後NFT Gardenのサービスの向上と共にバグフィックス及び機能拡充が行われる予定です。


認証#

APIキーの発行#

APIキーはNFT Gardenのサイトにログインし、 APIキー のメニューから発行することが可能です。

APIキーによる認証#

APIリクエスト時のヘッダーの x-api-key にAPIキーを付与することで、認証することができます。

Info

APIキーを指定しない場合、リクエストは自動的に失敗します。 また、APIキー発行時に許可していない機能へのリクエストも失敗します。

リクエストの例(curl)#

curl -X POST -H "Content-Type: application/json" -H "x-api-key: <your-api-key>" -d '{"name": "NFT Garden", "description": "NFT Garden provides NFT backend"}'  https://api.nftgarden.app/api/v1/nft/

Info

上記コマンドはAPIキー指定の例のためそのままでは正常に動作しません。


リソース#


NFT#

NFTはNFT Gardenにおける最も基本的な単位の一つです。 任意のコレクションに対してNFTを生成することが可能です。

Info

NFTの各エンドポイントを呼び出す為には、コレクション生成時に、API機能を有効化しておく必要があります。


nft_gdn_id#

nft_gdn_idはNFT GardenでNFTを生成した際に付与されるIDです。nft_gdn_idを使ってNFTの詳細を取得することが可能です。


NFTを生成する#

createnft 【NFT生成】#

新規にNFTを生成する.

基本情報#

プロパティ 詳細
URL /api/v1/createnft
Method POST

リクエストパラメータ#

パラメータ 種類 必須 詳細
contract_address str Yes コレクション(コントラクト)のアドレス
blockchain str Yes 生成先のブロックチェーン
receiver_wallet_address str Yes 生成するNFTの所有者
metadata object Yes NFTのメタデータ(下記参照)

blockchainパラメータに指定できるブロックチェーン#

blockchain
polygon
polygon-mumbai
astar
astar-shiden
astar-shibuya
avalanche
avalanche-fuji
optimism
optimism-goerli
fantom
fantom-testnet
solana
solana-testnet
bnb-mainnet
bnb-testnet

Info

blockchainパラメータで指定するブロックチェーンとコレクション(contract_address)のブロックチェーンが一致する必要があります。

metadata#

NFTのメタデータを定義します。ファイルアップロードが必要な項目は、file_fieldsに指定します。

パラメータ 種類 必須 詳細
title str Yes NFTのタイトル
description str Yes NFTの説明
file_fields list Yes ファイルアップロードが必要なメタデータの項目。KeyとUrlのペアで登録(下記参考)。最大8件。
任意 str No その他メタデータ
  • メタデータの数は、title, description, 各file_fields, 任意のものを合計して10個。

file_fields#

  • file_fields は key-urlのペアの配列です。
パラメータ 種類 必須 詳細
key str Yes メタデータのkey
url str Yes アップロードするファイルのURL
  • URLに指定したファイルがIPFSなどのストレージにアップロードされます。

リクエストのサンプル#

{
  "contract_address": "0x0000000000000000000000000000000000000000",
  "blockchain": "polygon",
  "receiver_wallet_address": "0x1111111111111111111111111111111111111111",
  "metadata": [
    {
      "title": "NFT Name1",
      "description": "Description of NFT1",
      "extra_key": "extra_value1",
      "extra_key1": "extra_value1",
      "file_fields": [
        {
          "key": "image",
          "url": "https://my.nftgarden.app/image.png"
        }
    ]
    },
    {
      "title": "NFT Name2",
      "description": "Description of NFT2",
      "extra_key": "extra_value2",
      "extra_key1": "extra_value2",
      "file_fields": [
        {
          "key": "image",
          "url": "https://my.nftgarden.app/image.png"
        }
      ]
    }
  ]
}

成功した場合のレスポンス例#

{
  "message": "Create NFT request accepted",
  "requests": {
    "contract_address": "0x0000000000000000000000000000000000000000",
    "receiver_wallet_address": "0x1111111111111111111111111111111111111111",
    "metadata": [
      {
        "title": "NFT Name1",
        "description": "Description of NFT1",
        "extra_key": "extra_value1",
        "extra_key1": "extra_value1",
        "file_fields": [
          {
            "key": "image",
            "url": "https://my.nftgarden.app/image.png"
          }
        ]
      },
      {
        "title": "NFT Name2",
        "description": "Description of NFT2",
        "extra_key": "extra_value2",
        "extra_key1": "extra_value2",
        "file_fields": [
          {
            "key": "image",
            "url": "https://my.nftgarden.app/image.png"
          }
        ]
      }
    ]
  },
  "nfts": [
    {
      "nft_gdn_ids": "cf7faf94-a5ec-462c-ad06-1bd772fefe21",
      "accepted_date": "2022-07-04 04:20:18"
    },
    {
      "nft_gdn_ids": "b27752b7-9803-4d28-b29f-9532ad0f0dbb",
      "accepted_date": "2022-07-04 04:20:18"
    }
  ]
}

失敗した場合のレスポンス例(ステータスコード400)#

{
  "error": {
    "title": "Bad Request",
    "message": "contract_address and blockchain are inconsistent"
  }
}

transfernft 【NFT転送】#

NFTを転送する.

基本情報#

プロパティ 詳細
URL /api/v1/transfernft
Method POST

リクエストパラメータ#

パラメータ 種類 必須 詳細
contract_address str Yes コレクション(コントラクト)のアドレス
token_id str Yes 対象NFTのトークンID
blockchain str Yes 対象NFTのブロックチェーン
nft_gdn_id str Yes 対象NFTのnft_gdn_id
sender_wallet_address str Yes 対象NFTの転送元
receiver_wallet_address str Yes 対象NFTの転送先

blockchainパラメータに指定できるブロックチェーン#

blockchain
polygon
polygon-mumbai
astar
astar-shiden
astar-shibuya
avalanche
avalanche-fuji
optimism
optimism-goerli
fantom
fantom-testnet
bnb-mainnet
bnb-testnet

※Solanaは転送に未対応です

Info

blockchainパラメータで指定するブロックチェーンとコレクション(contract_address)のブロックチェーンが一致する必要があります。またnft_gdn_idで指定したNFTとtoken_idが一致していて、所有者がsender_wallet_addressである必要があります。

リクエストのサンプル#

{
  "contract_address": "0x0000000000000000000000000000000000000000",
  "tokenid": "0",
  "blockchain": "polygon",
  "nft_gdn_id": "5967ee21-067e-4f89-87de-feb84307c6d9",
  "sender_wallet_address": "0x2222222222222222222222222222222222222222",
  "receiver_wallet_address": "0x1111111111111111111111111111111111111111"
}

成功した場合のレスポンス例#

{
  "requests": {
      "contract_address": "0x0000000000000000000000000000000000000000",
      "receiver_wallet_address": "0x1111111111111111111111111111111111111111",
      "blockchain": "polygon",
      "sender_wallet_address": "0x2222222222222222222222222222222222222222"
  },
  "response": {
      "transaction_gdn_id": "870f7312-55ec-4fdc-8dac-f555d8fbd225",
      "accepted_date": "2022-09-01 06:00:00"
  }
}

失敗した場合のレスポンス例(ステータスコード400)#

{
  "error": {
    "title": "Bad Request",
    "message": "contract_address and blockchain are inconsistent"
  }
}

createnfttrans 【NFT生成転送】#

新規にNFTを生成し、同時に転送する.

基本情報#

プロパティ 詳細
URL /api/v1/createnfttrans
Method POST

リクエストパラメータ#

パラメータ 種類 必須 詳細
contract_address str Yes コレクション(コントラクト)のアドレス
blockchain str Yes 生成先のブロックチェーン
sender_wallet_address str Yes 生成するNFTの最初の所有者
receiver_wallet_address str Yes 転送先の所有者
metadata object Yes NFTのメタデータ(下記参照)

blockchainパラメータに指定できるブロックチェーン#

blockchain
polygon
polygon-mumbai
astar
astar-shiden
astar-shibuya
avalanche
avalanche-fuji
optimism
optimism-goerli
fantom
fantom-testnet
bnb-mainnet
bnb-testnet

※Solanaは生成転送に未対応です

Info

blockchainパラメータで指定するブロックチェーンとコレクション(contract_address)のブロックチェーンが一致する必要があります。

metadata#

NFTのメタデータを定義します。ファイルアップロードが必要な項目は、file_fieldsに指定します。

パラメータ 種類 必須 詳細
title str Yes NFTのタイトル
description str Yes NFTの説明
file_fields list Yes ファイルアップロードが必要なメタデータの項目。KeyとUrlのペアで登録(下記参考)。最大8件。
任意 str No その他メタデータ
  • メタデータの数は、title, description, 各file_fields, 任意のものを合計して10個。

file_fields#

  • file_fields は key-urlのペアの配列です。
パラメータ 種類 必須 詳細
key str Yes メタデータのkey
url str Yes アップロードするファイルのURL
  • URLに指定したファイルがIPFSなどのストレージにアップロードされます。

リクエストのサンプル#

{
  "contract_address": "0x0000000000000000000000000000000000000000",
  "blockchain": "polygon",
  "sender_wallet_address": "0x1111111111111111111111111111111111111111",
  "receiver_wallet_address": "0x2222222222222222222222222222222222222222",
  "metadata": [
    {
      "title": "NFT Name1",
      "description": "Description of NFT1",
      "extra_key": "extra_value1",
      "extra_key1": "extra_value1",
      "file_fields": [
        {
          "key": "image",
          "url": "https://my.nftgarden.app/image.png"
        }
    ]
    },
    {
      "title": "NFT Name2",
      "description": "Description of NFT2",
      "extra_key": "extra_value2",
      "extra_key1": "extra_value2",
      "file_fields": [
        {
          "key": "image",
          "url": "https://my.nftgarden.app/image.png"
        }
      ]
    }
  ]
}

成功した場合のレスポンス例#

{
  "message": "Create NFT request accepted",
  "requests": {
    "contract_address": "0x0000000000000000000000000000000000000000",
    "sender_wallet_address": "0x1111111111111111111111111111111111111111",
    "receiver_wallet_address": "0x2222222222222222222222222222222222222222",
    "metadata": [
      {
        "title": "NFT Name1",
        "description": "Description of NFT1",
        "extra_key": "extra_value1",
        "extra_key1": "extra_value1",
        "file_fields": [
          {
            "key": "image",
            "url": "https://my.nftgarden.app/image.png"
          }
        ]
      },
      {
        "title": "NFT Name2",
        "description": "Description of NFT2",
        "extra_key": "extra_value2",
        "extra_key1": "extra_value2",
        "file_fields": [
          {
            "key": "image",
            "url": "https://my.nftgarden.app/image.png"
          }
        ]
      }
    ]
  },
  "nfts": [
    {
      "nft_gdn_ids": "cf7faf94-a5ec-462c-ad06-1bd772fefe21",
      "accepted_date": "2022-07-04 04:20:18"
    },
    {
      "nft_gdn_ids": "b27752b7-9803-4d28-b29f-9532ad0f0dbb",
      "accepted_date": "2022-07-04 04:20:18"
    }
  ]
}

失敗した場合のレスポンス例(ステータスコード400)#

{
  "error": {
    "title": "Bad Request",
    "message": "contract_address and blockchain are inconsistent"
  }
}

NFT情報を取得する#

getnftgdnids 【NFT一覧取得】#

指定したコントラクトアドレスのNFT一覧を取得する.

基本情報#

プロパティ 詳細
URL /api/v1/getnftgdnids/
Method POST

リクエストパラメータ#

パラメータ 種類 必須 詳細
contract_addresses str Yes 対象コレクションのコントラクトアドレス
blockchain str Yes 生成先のブロックチェーン

リクエストのサンプル#

{
    "contract_addresses": "0x0000000000000000000000000000000000000000",
    "blockchain": "polygon"
}

成功した場合のレスポンス例#

{
  "requests": {
      "contract_address": "0x0000000000000000000000000000000000000000",
      "blockchain": "polygon"
  },
  "nft_gdn_ids": [
      "5967ee21-067e-4f89-87de-feb84307c6d9",
      "6d52fee5-1082-471a-8aa8-41570cdad7ec",
      "59d77871-2090-49bd-8666-b38b838c5732",
      "b27752b7-9803-4d28-b29f-9532ad0f0dbb",
      "cf7faf94-a5ec-462c-ad06-1bd772fefe21",
  ]
}

失敗した場合のレスポンス例(ステータスコード400)#

{
  "error": {
    "title": "Request Validation Error",
    "message": "request json is invalid"
  }
}

getnfts 【NFT詳細取得】#

指定したnft_gdn_idのNFT詳細を取得する.

基本情報#

プロパティ 詳細
URL /api/v1/getnfts/
Method POST

リクエストパラメータ#

パラメータ 種類 必須 詳細
nft_gdn_ids array[string] Yes 対象NFTのID

リクエストのサンプル#

{
    "nft_gdn_ids": ["cf7faf94-a5ec-462c-ad06-1bd772fefe21"]
}

成功した場合のレスポンス例#

{
  "requests": {
    "nft_gdn_ids": [
      "cf7faf94-a5ec-462c-ad06-1bd772fefe21"
    ]
  },
  "nfts": [
    {
      "nft_gdn_id": "cf7faf94-a5ec-462c-ad06-1bd772fefe21",
      "token_id": "1",
      "contract_address": "0x0000000000000000000000000000000000000000",
      "receiver_wallet_address": "0x1111111111111111111111111111111111111111",
      "status": "deployed",
      "request_metadata": {
        "title": "NFT Name",
        "description": "Description of NFT",
        "file_fields": [
          {
            "key": "image",
            "url": "https://my.nftgarden.app/image.png"
          }
        ]
      },
      "metadata_url": "ipfs://Q7NGFbQXgUbN7mTTmwhN9nPcdkrgYqkR6xvMkhoX5Faken"
    }
  ]
}

失敗した場合のレスポンス例(ステータスコード422)#

{
  "error": {
    "title": "Request Validation Error",
    "message": "Invalid request body"
  }
}

getisgdnnft 【NFT存在確認】#

指定したnft_gdn_idのNFTがNFT Gardenで作成されたものか確認する.

基本情報#

プロパティ 詳細
URL /api/v1/getisgdnnft/
Method POST

リクエストパラメータ#

パラメータ 種類 必須 詳細
receiver_wallet_address str Yes 対象NFTの所有者
blockchain str Yes 生成先のブロックチェーン
nft_gdn_ids str Yes 対象NFTのID

リクエストのサンプル#

{
    "nft_gdn_ids": ["cf7faf94-a5ec-462c-ad06-1bd772fefe21"],
    "blockchain": "polygon",
    "receiver_wallet_address": "0x1111111111111111111111111111111111111111"
}

成功した場合のレスポンス例#

  {
    "requests": {
        "receiver_wallet_address": "0x1111111111111111111111111111111111111111",
        "blockchain": "polygon",
        "nft_gdn_id": "cf7faf94-a5ec-462c-ad06-1bd772fefe21"
    },
    "response": {
        "isgdnnft": true,
        "nft": {
            "nft_gdn_id": "cf7faf94-a5ec-462c-ad06-1bd772fefe21",
            "token_id": "0",
            "contract_address": "0x0000000000000000000000000000000000000000",
            "receiver_wallet_address": "0x1111111111111111111111111111111111111111",
            "status": "deployed"
        }
    }
}

失敗した場合のレスポンス例(ステータスコード422)#

{
  "error": {
    "title": "Request Validation Error",
    "message": "Invalid request body"
  }
}

コレクションを生成する#

createcollection 【コレクション生成】#

新規にコレクションを生成する.

基本情報#

プロパティ 詳細
URL /api/v1/createcollection
Method POST

リクエストパラメータ#

パラメータ 種類 必須 詳細
wallet_address str Yes 生成するコレクションの所有者
name str Yes 生成するコレクションの名称
blockchain str Yes 生成先のブロックチェーン
description str Solana, Solana-testnetのみ必須
image str Solana, Solana-testnetのみ必須
enable_api boolean No trueを指定するとAPI経由でNFT作成が可能。未指定の場合true
enable_transfer boolean No trueを指定するとAPI経由でNFTの転送が可能。未指定の場合false

blockchainパラメータに指定できるブロックチェーン#

blockchain
polygon
polygon-mumbai
astar
astar-shiden
astar-shibuya
avalanche
avalanche-fuji
optimism
optimism-goerli
fantom
fantom-testnet
solana
solana-testnet
bnb-mainnet
bnb-testnet

リクエストのサンプル#

{
  "wallet_address": "111111111111111111111111111111111111111111",
  "blockchain": "solana",
  "name": "contract name 1",
  "description": "description of contract name 1",
  "image": "https://my.nftgarden.app/image.png"
}

成功した場合のレスポンス例#

{
  "request": {
      "name": "contract name 1",
      "blockchain": "solana",
      "enable_api": true,
      "enable_transfer": false,
      "wallet_address": "111111111111111111111111111111111111111111",
      "description": "description of contract name 1",
      "image": "https://my.nftgarden.app/image.png"
  },
  "response": {
      "transaction_gdn_id": "1bd77cf7-a5ec-462c-ad06-faf942fefe21",
      "accepted_date": "2022-12-09 17:59:16"
  }
}

失敗した場合のレスポンス例#

{
    "error": {
        "title": "Request Validation Error",
        "message": "blockchain field required"
    }
}

レート制限#

各種リソースへのアクセスはレートの制限が設けられています。

API エンドポイント レート制限(req/sec)
NFT生成 POST /api/v1/createnft 2
NFT一覧取得 POST /api/v1/getnftgdnids 2
NFT詳細取得 POST /api/v1/getnfts 2