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 |