Contract
The contract API provide users the entries to interact with the ERC721 contracts, including deploying the contracts, setting the sponsors and so on.
Contract Actions
Deploy Contract
The Deploy contract API helps users to deploy a ERC721 or a ERC1155 contract.
Deploy a ERC721 or ERC1155 contract. Deploy a ERC721 or ERC1155 contract.
Bearer Open_JWT
default: true
default: true
default: true
default: true
default: 0
OK
Invalid request
Internal Server error
POST /v1/contracts/ HTTP/1.1
Host: api.nftrainbow.cn
Authorization: text
Content-Type: application/json
Accept: */*
Content-Length: 300
{
"auto_sponsor": true,
"base_uri": "text",
"chain": "conflux",
"is_sponsor_for_all_user": true,
"name": "text",
"owner_address": "text",
"royalties_address": "text",
"royalties_bps": 1,
"symbol": "text",
"tokens_transferable_by_admin": true,
"tokens_transferable_by_user": true,
"transfer_cooldown_time": 1,
"type": "erc721"
}{
"address": "text",
"app_id": 1,
"auto_sponsor": true,
"base_uri": "text",
"block_reason": 1,
"chain_id": 1,
"chain_type": 1,
"created_at": "text",
"deleted_at": {
"time": "text",
"valid": true
},
"error": "text",
"hash": "text",
"id": 1,
"name": "text",
"owner_address": "text",
"royalties_address": "text",
"royalties_bps": 1,
"status": 1,
"symbol": "text",
"tokens_transferable_by_admin": true,
"tokens_transferable_by_user": true,
"transfer_cooldown_time": 1,
"tx_id": 1,
"type": 1,
"updated_at": "text"
}Authorization
Bearer Token
Header
string
name
The name of the NFT
body
string
symbol
The symbol of the NFT
body
string
owner_address
The creater of the contract
body
string
type
The type of the contract, e.g., erc721, erc1155
body
string
base_uri
The uri of the NFT. For ERC721 contract, the token_uri is the base_uri. For ERC1155 contract, the token_uri is the base_uri/ token_id. During minting, if the metadata_uri is not null, the base_uri will be ignored.
body
string
null string
chain
The chain type, which can be conflux or conflux_test
body
string
royalties_bps
The price
of the royalties. When a transferring happens, the projector or creator of the NFT can obtain from the transaction.
body
integer
0
royalties_address
The address of the beneficiary. When a transaferring happens, this address can obtain from the transaction.
body
string
The owner of the contract
tokens_burnable
Whether the function of burning tokens by the token owner is supported
body
bool
false
tokens_transferable_by_admin
Whether the function of transferring tokens by the contract admin is supported
body
bool
false
tokens_transferable_by_user
Whether the function of transferring tokens by contract user is supported
body
bool
false
transfer_cooldown_time
The cooldown time of transfering tokens. Once a transfer transaction is confirmed, the cooldown time must pass before the transfer transaction can be proposed again.
body
integer
false
is_sponsor_for_all_user
Whether the contract can be called by all users free. If the function opens, all uesrs can call the contract free.
body
bool
auto_sponsor
Whether auto set sponsor for new created contract
body
bool
true
{
"chain": "conflux_test",
"name": "NFT-name",
"symbol": "ENFT",
"owner_address": "cfxtest:aatk708nbb7573bkwumsu00h0r1rtkcdz2chwhttzk",
"type": "erc721",
"base_uri": "",
"royalties_bps": 0,
"royalties_address": "",
"tokens_burnable": false,
"tokens_transferable_by_admin": false,
"tokens_transferable_by_user": false,
"transfer_cooldown_time": 0,
"is_sponsor_for_all_user": false
}created_at
The time of creating the item in the database
string
updated_at
The time of updating the item in the database
string
deleted_at
The time of deleting the item in the database
string
app_id
The id of the app
integer
chain_id
The id of the chain. 1029-mainnet, 1-testnet
integer
chain_type
The type of the chain. 1-CFX, 2-ETH
integer
name
The name of the NFT
string
symbol
The symbol of the NFT
string
owner_address
The admin of the contract
string
type
The type of the contract, e.g., erc721, erc1155
string
base_uri
The uri of the NFT. For ERC721 contract, the token_uri is the base_uri. For ERC1155 contract, the token_uri is the base_uri/ token_id. During minting, if the metadata_uri is not null, the base_uri will be ignored.
string
address
The address of the contract. The response will be null after calling this interface. After several seconds, it can call query contract according to the id.
string
royalties_bps
The price
of the royalties. When a transferring happens, the projector or creator of the NFT can obtain from the transaction.
integer
royalties_address
The address of the beneficiary. When a transaferring happens, this address can obtain from the transaction.
string
tokens_burnable
Whether the function of burning tokens by the token owner is supported
bool
tokens_transferable_by_admin
Whether the function of transferring tokens by the contract admin is supported
bool
tokens_transferable_by_user
Whether the function of transferring tokens by contract user is supported
bool
transfer_cooldown_time
The cooldown time of transfering tokens. Once a transfer transaction is confirmed, the cooldown time must pass before the transfer transaction can be proposed again.
integer
status
The status of the transaction. 0-pending, 1-success, 2-failed. The response will be 0 after calling this interface. After several seconds, it can call query contract according to the id.
integer
tx_id
The id of the transaction
integer
hash
The hash of the transaction. The response will be null after calling this interface. After several seconds, it can call query contract according to the id.
string
{
"id": 20,
"created_at": "2022-08-22T15:49:42.46+08:00",
"updated_at": "2022-08-22T15:49:42.46+08:00",
"deleted_at": null,
"app_id": 4,
"chain_type": 1,
"chain_id": 1,
"address": "",
"owner_address": "cfxtest:aajb342mw5kzad6pjjkdz0wxx0tr54nfwpbu6yaj49",
"type": 1,
"base_uri": "",
"name": "NFT-name",
"symbol": "ENFT",
"royalties_bps": 0,
"royalties_address": "cfxtest:aajb342mw5kzad6pjjkdz0wxx0tr54nfwpbu6yaj49",
"tokens_burnable": false,
"tokens_transferable_by_admin": false,
"tokens_transferable_by_user": false,
"transfer_cooldown_time": 0,
"hash": "",
"tx_id": 64,
"status": 0
}curl --request POST \
--url https://api.nftrainbow.cn/v1/contracts/ \
--header 'Authorization: Bearer {JWT}' \
--header 'Content-Type: application/json' \
--data-raw ' {
"chain": "conflux_test",
"name": "NFT-name",
"symbol": "ENFT",
"owner_address": "cfxtest:aatk708nbb7573bkwumsu00h0r1rtkcdz2chwhttzk",
"type": "erc721",
"base_uri": "",
"royalties_bps": 0,
"royalties_address": "",
"tokens_burnable": false,
"tokens_transferable_by_admin": false,
"tokens_transferable_by_user": false,
"transfer_cooldown_time": 0
}'Update contract admin
The Update contract admin API provides users the entry to update the admin of the specific contract.
Update administrator of contract, only work on conflux chain
contract address
Bearer Open_JWT
Chain string form:"chain" json:"chain" binding:"required,oneof=conflux conflux_test"
ContractAddress string form:"contract_address" json:"contract_address" binding:"required"
Transaction id
Invalid request
Internal Server error
Businesss error
PUT /v1/contracts/{address}/admin HTTP/1.1
Host: api.nftrainbow.cn
Authorization: text
Content-Type: application/json
Accept: */*
Content-Length: 24
{
"admin_address": "text"
}{
"tx_id": 1
}Authorization
Bearer Token
Header
string
address
The address of the contract
Path
string
admin_address
The address of the admin
body
string
tx_id
The id of the transaction
integer
{
"tx_id": 421312
}curl --request PUT \
--url https://api.nftrainbow.cn/v1/contracts/{address}/admin \
--header 'Authorization: Bearer {JWT}' \
--header 'Content-Type: application/json'Set Sponsor
The Set sponsor API provides users to set a sponser for a specific contract according to the sponsor' address.
Set the sponsor for a contract according to the address with specified value(gas-1, storage-50)
Contract address
chain
Open auto sponsor or not, for mainnet contract keep user account have enough balance
Bearer Open_JWT
Transaction id" "success
Invalid address
Internal Server error
POST /v1/contracts/{address}/sponsor HTTP/1.1
Host: api.nftrainbow.cn
Authorization: text
Accept: */*
{
"sponsor_collateral_tx_id": 1,
"sponsor_gas_tx_id": 1
}Authorization
Bearer Token
Header
string
address
The address of the contract
Path
string
chain
The blockchain name: conflux, conflux_test(default)
query
string
auto_sponsor
Whether auto recharge sponsor balance when not enough
query
bool
sponsor_gas_tx_id
The id of the sponsor gas setting transaction. gas is used for contract running.
integer
sponsor_collateral_tx_i
The id of the sponsor storage setting transaction. collateral is presented for storage.
integer
{
"sponsor_gas_tx_id": 8475,
"sponsor_collateral_tx_id": 8476
}curl --request POST \
--url https://api.nftrainbow.cn/v1/contracts/{address}/sponsor \
--header 'Authorization: Bearer {JWT}' \
--header 'Content-Type: application/json'Add Contract Sponsor Users
The Add Contract Sponsor Users API provides users to add the address in the whitelist.
Add contract sponsored whitelist, only work on conflux chain
contract address
Bearer Open_JWT
Transaction id
Invalid request
Internal Server error
Businesss error
POST /v1/contracts/{address}/sponsor/whitelist HTTP/1.1
Host: api.nftrainbow.cn
Authorization: text
Content-Type: application/json
Accept: */*
Content-Length: 8
[
"text"
]{
"tx_id": 1
}Authorization
Bearer Token
Header
string
address
The address of the contract
Path
string
tx_id
The id of the transaction
integer
{
"tx_id": 421312
}curl --request POST \
--url https://api.nftrainbow.cn/v1/contracts/{address}/sponsor/whitelist/ \
--header 'Authorization: Bearer {JWT}' \
--header 'Content-Type: application/json' \
--data-raw `["cfxtest:aam1eawbm9pzp0dnwv96tts5shnbdfv9nuwu7zgzz8"]`Remove Contract Sponsor Users
The Remove Contract Sponsor Users API provides users to remove the address from the whitelist.
Remove contract sponsored whitelist, only work on conflux chain
contract address
Bearer Open_JWT
Transaction id
Invalid request
Internal Server error
Businesss error
DELETE /v1/contracts/{address}/sponsor/whitelist HTTP/1.1
Host: api.nftrainbow.cn
Authorization: text
Content-Type: application/json
Accept: */*
Content-Length: 8
[
"text"
]{
"tx_id": 1
}Authorization
Bearer Token
Header
string
address
The address of the contract
Path
string
tx_id
The id of the transaction
integer
{
"tx_id": 421312
}curl --request DELETE \
--url https://api.nftrainbow.cn/v1/contracts/{address}/sponsor/whitelist/ \
--header 'Authorization: Bearer {JWT}' \
--header 'Content-Type: application/json' \
--data-raw `["cfxtest:aam1eawbm9pzp0dnwv96tts5shnbdfv9nuwu7zgzz8"]`
Query Informations
Obtain Contract List
The Obtain contarct list API provides users the entry to get the inforamtion of the contracts deployed in a specified app. The parameter page and size are optional parameters.
Get the contract list containing the contracts deployed through the specified app.
page
limit
Bearer Open_JWT
OK
Internal Server error
GET /v1/contracts/ HTTP/1.1
Host: api.nftrainbow.cn
Authorization: text
Accept: */*
{
"count": 1,
"items": [
{
"address": "text",
"app_id": 1,
"auto_sponsor": true,
"base_uri": "text",
"block_reason": 1,
"chain_id": 1,
"chain_type": 1,
"created_at": "text",
"deleted_at": {
"time": "text",
"valid": true
},
"error": "text",
"hash": "text",
"id": 1,
"name": "text",
"owner_address": "text",
"royalties_address": "text",
"royalties_bps": 1,
"status": 1,
"symbol": "text",
"tokens_transferable_by_admin": true,
"tokens_transferable_by_user": true,
"transfer_cooldown_time": 1,
"tx_id": 1,
"type": 1,
"updated_at": "text"
}
]
}Authorization
Bearer Token
Header
string
page
Page Query
query
integer
1
limit
Page Query
query
integer
10
count
The number of the deployed contracts
integer
items
The contract information
[]Contract
The Contract Struct is listed as follow:
created_at
The time of creating the item in the database
string
updated_at
The time of updating the item in the database
string
deleted_at
The time of deleting the item in the database
string
id
The id of the item in the database
integer
app_id
The id of the app
integer
chain_id
The id of the chain. 1029-mainnet, 1-testnet
integer
chain_type
The type of the chain. 1-CFX, 2-ETH
integer
name
The name of the NFT
string
symbol
The symbol of the NFT
string
owner_address
The admin of the contract
string
type
The type of the contract, e.g., erc721, erc1155
string
base_uri
The uri of the NFT. For ERC721 contract, the token_uri is the base_uri. For ERC1155 contract, the token_uri is the base_uri/ token_id. During minting, if the metadata_uri is not null, the base_uri will be ignored.
string
address
The address of the contract
string
royalties_bps
The price
of the royalties. When a transferring happens, the projector or creator of the NFT can obtain from the transaction.
integer
royalties_address
The address of the beneficiary. When a transaferring happens, this address can obtain from the transaction.
string
tokens_burnable
Whether the function of burning tokens by the token owner is supported
bool
tokens_transferable_by_admin
Whether the function of transferring tokens by the contract admin is supported
bool
tokens_transferable_by_user
Whether the function of transferring tokens by contract user is supported
bool
transfer_cooldown_time
The cooldown time of transfering tokens. Once a transfer transaction is confirmed, the cooldown time must pass before the transfer transaction can be proposed again.
integer
status
The status of the transaction. 0-pending, 1-success, 2-failed
integer
tx_id
The id of the transaction
integer
hash
The hash of the transaction
string
{
"count": 1,
"items": [
{
"id": 1,
"created_at": "2022-08-19T10:48:13.049+08:00",
"updated_at": "2022-08-19T10:49:15.853+08:00",
"deleted_at": null,
"app_id": 4,
"chain_type": 1,
"chain_id": 1,
"address": "cfxtest:acdzrjc92rds9tuta8rdkx3mn10yzf0jny1z3s0s8e",
"owner_address": "cfxtest:aajb342mw5kzad6pjjkdz0wxx0tr54nfwpbu6yaj49",
"type": 1,
"base_uri": "",
"name": "ttt",
"symbol": "test",
"royalties_bps": 0,
"royalties_address": "",
"tokens_burnable": false,
"tokens_transferable_by_admin": false,
"tokens_transferable_by_user": false,
"transfer_cooldown_time": 0,
"hash": "0xcbcedb27eb941a9a4fb6008d343055d98d9fe1ccdba65268680f46af6bf3fa0a",
"tx_id": 49,
"status": 1
}
]
}curl --request GET \
--url https://api.nftrainbow.cn/v1/contracts/ \
--header 'Authorization: Bearer {JWT}' \
--header 'Content-Type: application/json'Query detail contract
The Query detail contract API provides users the entry to get the detail contract information of a specific contract according to the contract's id. The parameter chain is optional, which can be used to choose the test or main network of conflux.
Get Contract info
id
Bearer Open_JWT
OK
Invalid request
Internal Server error
GET /v1/contracts/detail/{id} HTTP/1.1
Host: api.nftrainbow.cn
Authorization: text
Accept: */*
{
"address": "text",
"app_id": 1,
"auto_sponsor": true,
"base_uri": "text",
"block_reason": 1,
"chain_id": 1,
"chain_type": 1,
"created_at": "text",
"deleted_at": {
"time": "text",
"valid": true
},
"error": "text",
"hash": "text",
"id": 1,
"name": "text",
"owner_address": "text",
"royalties_address": "text",
"royalties_bps": 1,
"status": 1,
"symbol": "text",
"tokens_transferable_by_admin": true,
"tokens_transferable_by_user": true,
"transfer_cooldown_time": 1,
"tx_id": 1,
"type": 1,
"updated_at": "text"
}Authorization
Bearer Token
Header
string
id
The id of the contract
Path
integer
created_at
The time of creating the item in the database
string
updated_at
The time of updating the item in the database
string
deleted_at
The time of deleting the item in the database
string
id
The id of the item in the database
integer
app_id
The id of the app
integer
chain_id
The id of the chain. 1029-mainnet, 1-testnet
integer
chain_type
The type of the chain. 1-CFX, 2-ETH
integer
name
The name of the NFT
string
symbol
The symbol of the NFT
string
owner_address
The admin of the contract
string
type
The type of the contract, e.g., erc721, erc1155
string
base_uri
The uri of the NFT. For ERC721 contract, the token_uri is the base_uri. For ERC1155 contract, the token_uri is the base_uri/ token_id. During minting, if the metadata_uri is not null, the base_uri will be ignored.
string
address
The address of the contract.
string
royalties_bps
The price
of the royalties. When a transferring happens, the projector or creator of the NFT can obtain from the transaction.
integer
royalties_address
The address of the beneficiary. When a transaferring happens, this address can obtain from the transaction.
string
tokens_burnable
Whether the function of burning tokens by the token owner is supported
bool
tokens_transferable_by_admin
Whether the function of transferring tokens by the contract admin is supported
bool
tokens_transferable_by_user
Whether the function of transferring tokens by contract user is supported
bool
transfer_cooldown_time
The cooldown time of transfering tokens. Once a transfer transaction is confirmed, the cooldown time must pass before the transfer transaction can be proposed again.
integer
status
The status of the transaction. 0-pending, 1-success, 2-failed
integer
tx_id
The id of the transaction
integer
hash
The hash of the transaction
string
{
"id": 10,
"created_at": "2022-08-19T10:48:13.049+08:00",
"updated_at": "2022-08-19T10:49:15.853+08:00",
"deleted_at": null,
"app_id": 4,
"chain_type": 1,
"chain_id": 1,
"address": "cfxtest:acdzrjc92rds9tuta8rdkx3mn10yzf0jny1z3s0s8e",
"owner_address": "cfxtest:aajb342mw5kzad6pjjkdz0wxx0tr54nfwpbu6yaj49",
"type": 1,
"base_uri": "",
"name": "ttt",
"symbol": "test",
"royalties_bps": 0,
"royalties_address": "",
"tokens_burnable": false,
"tokens_transferable_by_admin": false,
"tokens_transferable_by_user": false,
"transfer_cooldown_time": 0,
"hash": "0xcbcedb27eb941a9a4fb6008d343055d98d9fe1ccdba65268680f46af6bf3fa0a",
"tx_id": 49,
"status": 1
}curl --request GET \
--url https://api.nftrainbow.cn/v1/contracts/detail/{id} \
--header 'Authorization: Bearer {JWT}' \
--header 'Content-Type: application/json'Query Sponsor
The Query sponsor API provides users the entry to get the sponsors of a specific contract according to the contract's address. The parameter chain is optional, which can be used to choose the test or main network of conflux.
Get the sponsor of the specified contract according to address.
address
chain
Bearer Open_JWT
OK
Invalid address
Internal Server error
GET /v1/contracts/{address}/sponsor HTTP/1.1
Host: api.nftrainbow.cn
Authorization: text
Accept: */*
{
"collateral_sponsor": "text",
"collateral_sponsor_balance": "text",
"gas_sponsor": "text",
"gas_sponsor_balance": "text",
"gas_upper_bound": "text",
"is_all_white_listed": true
}Authorization
Bearer Token
Header
string
address
The address of the sponsor
Path
string
chain
The chain type, which can be conflux or conflux_test
query
string
collateral_sponsor
The address of the collateral sponsor
string
collateral_sponsor_balance
The balance of the collateral sponsor
integer
gas_sponsor
The address of the gas sponsor
string
gas_sponsor_balance
The balance of the gas sponsor
integer
gas_upper_bound
The upper bound of using gas
integer
is_all_white_listed
wheter the sponsor in the all white list
bool
{
"gas_sponsor": "cfxtest:aasr1hmezez1wepvh8ew8sk9p40khhhj1ymxwmpaf0",
"gas_sponsor_balance": 10000000000000000000,
"collateral_sponsor": "cfxtest:aasr1hmezez1wepvh8ew8sk9p40khhhj1ymxwmpaf0",
"collateral_sponsor_balance": 100000000000000000000,
"is_all_white_listed": true,
"gas_upper_bound": 5000000000000000
}curl --request GET \
--url https://api.nftrainbow.cn/v1/contracts/{address}/sponsor \
--header 'Authorization: Bearer {JWT}' \
--header 'Content-Type: application/json'Query contract admin
The Query contract admin API provides users the entry to get the admin of the specific contract.
Get Contract Admin
contract address
Bearer Open_JWT
Admin address
Invalid request
Internal Server error
Businesss error
GET /v1/contracts/{address}/admin HTTP/1.1
Host: api.nftrainbow.cn
Authorization: text
Accept: */*
textAuthorization
Bearer Token
Header
string
address
The address of the contract
Path
string
{
"cfxtest:aasr1hmezez1wepvh8ew8sk9p40khhhj1ymxwmpaf0"
}curl --request GET \
--url https://api.nftrainbow.cn/v1/contracts/{address}/admin \
--header 'Authorization: Bearer {JWT}' \
--header 'Content-Type: application/json'Query Contract Whitelist
The Query Contract Whitelist API provides users to get the whitelist of the specific contract. Only the addresses in the whitelist can call the contract free.
Get contract sponsored whitelist, only work on conflux chain
contract address
Bearer Open_JWT
Contract sponsored whitelist
Invalid request
Internal Server error
Businesss error
GET /v1/contracts/{address}/sponsor/whitelist HTTP/1.1
Host: api.nftrainbow.cn
Authorization: text
Accept: */*
[
"text"
]Authorization
Bearer Token
Header
string
address
The address of the contract
Path
string
Return the slices of the addresses in the whiltelist.["cfxtest:acexyjf36ddwcct171wr1k5srd289zp9te70p67zc1"]curl --request GET \
--url https://api.nftrainbow.cn/v1/contracts/{address}/sponsor/whitelist/ \
--header 'Authorization: Bearer {JWT}' \
--header 'Content-Type: application/json'Last updated