For the complete documentation index, see llms.txt. This page is also available as Markdown.

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 contract

post
/v1/contracts/

Deploy a ERC721 or ERC1155 contract. Deploy a ERC721 or ERC1155 contract.

Authorizations
Header parameters
AuthorizationstringRequired

Bearer Open_JWT

Body
auto_sponsorbooleanOptional

default: true

base_uristringOptional
chainstring · enumRequiredPossible values:
is_sponsor_for_all_userbooleanOptional

default: true

namestringRequired
owner_addressstringOptional
royalties_addressstringOptional
royalties_bpsintegerOptional
symbolstringRequired
tokens_transferable_by_adminbooleanOptional

default: true

tokens_transferable_by_userbooleanOptional

default: true

transfer_cooldown_timeintegerOptional

default: 0

typestring · enumRequiredPossible values:
Responses
200

OK

application/json
addressstringOptional
app_idintegerOptional
auto_sponsorbooleanOptional
base_uristringOptional
block_reasoninteger · enumOptionalPossible values:
chain_idintegerOptional
chain_typeintegerOptional
created_atstringOptional
errorstringOptional
hashstringOptional
idintegerOptional
namestringOptional
owner_addressstringOptional
royalties_addressstringOptional
royalties_bpsintegerOptional
statusintegerOptional

0-pending, 1-success, 2-failed

symbolstringOptional
tokens_transferable_by_adminbooleanOptional
tokens_transferable_by_userbooleanOptional
transfer_cooldown_timeintegerOptional
tx_idintegerOptional
typeintegerOptional

1-ERC721, 2-ERC1155

updated_atstringOptional
post/v1/contracts/
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"
}
Name
Meaning
Param Type
Data Type

Authorization

Bearer Token

Header

string

Name
Meaning
Param Type
Type
Required
Default

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

Name
Meaning
Type

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, which can be used to query detail contract

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. 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

When the API is called successfully, we need to use the id in response to call Query contract detail API to get the contract address. It takes several seconds that the contract address can be obtained from Query contract detail API.

Update contract admin

The Update contract admin API provides users the entry to update the admin of the specific contract.

Update administrator of contract

put
/v1/contracts/{address}/admin

Update administrator of contract, only work on conflux chain

Authorizations
Path parameters
addressstringRequired

contract address

Header parameters
AuthorizationstringRequired

Bearer Open_JWT

Body
admin_addressstringRequired

Chain string form:"chain" json:"chain" binding:"required,oneof=conflux conflux_test" ContractAddress string form:"contract_address" json:"contract_address" binding:"required"

Responses
200

Transaction id

application/json
tx_idintegerOptional
put/v1/contracts/{address}/admin
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
}
Name
Meaning
Param Type
Data Type

Authorization

Bearer Token

Header

string

Name
Meaning
Param Type
Data Type
Required

address

The address of the contract

Path

string

admin_address

The address of the admin

body

string

Name
Meaning
Type

tx_id

The id of the transaction

integer

Set Sponsor

Good to know: Conflux provides users the sponsor function. Once a contract is sponsored by an account, the accounts in the contract white list can call this contracts for free.

The Set sponsor API provides users to set a sponser for a specific contract according to the sponsor' address.

Set sponsor

post
/v1/contracts/{address}/sponsor

Set the sponsor for a contract according to the address with specified value(gas-1, storage-50)

Authorizations
Path parameters
addressstringRequired

Contract address

Query parameters
chainstringOptional

chain

auto_sponsorbooleanOptional

Open auto sponsor or not, for mainnet contract keep user account have enough balance

Header parameters
AuthorizationstringRequired

Bearer Open_JWT

Responses
200

Transaction id" "success

application/json
sponsor_collateral_tx_idintegerOptional
sponsor_gas_tx_idintegerOptional
post/v1/contracts/{address}/sponsor
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
}
Name
Meaning
Param Type
Data Type

Authorization

Bearer Token

Header

string

Name
Meaning
Param Type
Data Type
Required

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

Name
Meaning
Type

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

Note: UP to now, Set sponsor API can only be called by users free in testnet. In mainnet, Users need to recharge their own wallet.

Add Contract Sponsor Users

The Add Contract Sponsor Users API provides users to add the address in the whitelist.

Add contract sponsored whitelist

post
/v1/contracts/{address}/sponsor/whitelist

Add contract sponsored whitelist, only work on conflux chain

Authorizations
Path parameters
addressstringRequired

contract address

Header parameters
AuthorizationstringRequired

Bearer Open_JWT

Bodystring[]
string[]Optional
Responses
200

Transaction id

application/json
tx_idintegerOptional
post/v1/contracts/{address}/sponsor/whitelist
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
}
Name
Meaning
Param Type
Data Type

Authorization

Bearer Token

Header

string

Name
Meaning
Param Type
Data Type
Required

users

The addresses being added into the whitelist

body

[]string

address

The address of the contract

Path

string

Name
Meaning
Type

tx_id

The id of the transaction

integer

Remove Contract Sponsor Users

The Remove Contract Sponsor Users API provides users to remove the address from the whitelist.

Remove contract sponsored whitelist

delete
/v1/contracts/{address}/sponsor/whitelist

Remove contract sponsored whitelist, only work on conflux chain

Authorizations
Path parameters
addressstringRequired

contract address

Header parameters
AuthorizationstringRequired

Bearer Open_JWT

Bodystring[]
string[]Optional
Responses
200

Transaction id

application/json
tx_idintegerOptional
delete/v1/contracts/{address}/sponsor/whitelist
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
}
Name
Meaning
Param Type
Data Type

Authorization

Bearer Token

Header

string

Name
Meaning
Param Type
Data Type
Required

address

The address of the contract

Path

string

Name
Meaning
Type

tx_id

The id of the transaction

integer

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.

Obtain contract list

get
/v1/contracts/

Get the contract list containing the contracts deployed through the specified app.

Authorizations
Query parameters
pageintegerOptional

page

limitintegerOptional

limit

Header parameters
AuthorizationstringRequired

Bearer Open_JWT

Responses
200

OK

application/json
countintegerOptional
get/v1/contracts/
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"
    }
  ]
}
Name
Meaning
Param Type
Data Type

Authorization

Bearer Token

Header

string

Name
Meaning
Param Type
Data Type
Required
Default

page

Page Query

query

integer

1

limit

Page Query

query

integer

10

Name
Meaning
Type

count

The number of the deployed contracts

integer

items

The contract information

[]Contract

The Contract Struct is listed as follow:

Name
Meaning
Type

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

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.

Contract detail

get
/v1/contracts/detail/{id}

Get Contract info

Authorizations
Path parameters
idintegerRequired

id

Header parameters
AuthorizationstringRequired

Bearer Open_JWT

Responses
200

OK

application/json
addressstringOptional
app_idintegerOptional
auto_sponsorbooleanOptional
base_uristringOptional
block_reasoninteger · enumOptionalPossible values:
chain_idintegerOptional
chain_typeintegerOptional
created_atstringOptional
errorstringOptional
hashstringOptional
idintegerOptional
namestringOptional
owner_addressstringOptional
royalties_addressstringOptional
royalties_bpsintegerOptional
statusintegerOptional

0-pending, 1-success, 2-failed

symbolstringOptional
tokens_transferable_by_adminbooleanOptional
tokens_transferable_by_userbooleanOptional
transfer_cooldown_timeintegerOptional
tx_idintegerOptional
typeintegerOptional

1-ERC721, 2-ERC1155

updated_atstringOptional
get/v1/contracts/detail/{id}
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"
}
Name
Meaning
Param Type
Data Type

Authorization

Bearer Token

Header

string

Name
Meaning
Param Type
Data Type
Required

id

The id of the contract

Path

integer

Name
Meaning
Type

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

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.

Good to know: Conflux Network can be divided into the main network and the test network. The later is used to test the developed functions for developers.

Query sponsor

get
/v1/contracts/{address}/sponsor

Get the sponsor of the specified contract according to address.

Authorizations
Path parameters
addressstringRequired

address

Query parameters
chainstringOptional

chain

Header parameters
AuthorizationstringRequired

Bearer Open_JWT

Responses
200

OK

application/json
collateral_sponsorstringOptional
collateral_sponsor_balancestringOptional
gas_sponsorstringOptional
gas_sponsor_balancestringOptional
gas_upper_boundstringOptional
is_all_white_listedbooleanOptional
get/v1/contracts/{address}/sponsor
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
}
Name
Meaning
Param Type
Data Type

Authorization

Bearer Token

Header

string

Name
Meaning
Param Type
Data Type
Required

address

The address of the sponsor

Path

string

chain

The chain type, which can be conflux or conflux_test

query

string

Name
Meaning
Type

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

Good to know: For more detailed information, please refer to the following link.

SponsorWhitelistControl Contract

Query contract admin

The Query contract admin API provides users the entry to get the admin of the specific contract.

Get administrator of contract, only work on conflux chain

get
/v1/contracts/{address}/admin

Get Contract Admin

Authorizations
Path parameters
addressstringRequired

contract address

Header parameters
AuthorizationstringRequired

Bearer Open_JWT

Responses
200

Admin address

application/json
stringOptional
get/v1/contracts/{address}/admin
GET /v1/contracts/{address}/admin HTTP/1.1
Host: api.nftrainbow.cn
Authorization: text
Accept: */*
text
Name
Meaning
Param Type
Data Type

Authorization

Bearer Token

Header

string

Name
Meaning
Param Type
Data Type
Required

address

The address of the contract

Path

string

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

get
/v1/contracts/{address}/sponsor/whitelist

Get contract sponsored whitelist, only work on conflux chain

Authorizations
Path parameters
addressstringRequired

contract address

Header parameters
AuthorizationstringRequired

Bearer Open_JWT

Responses
200

Contract sponsored whitelist

application/json
string[]Optional
get/v1/contracts/{address}/sponsor/whitelist
GET /v1/contracts/{address}/sponsor/whitelist HTTP/1.1
Host: api.nftrainbow.cn
Authorization: text
Accept: */*
[
  "text"
]
Name
Meaning
Param Type
Data Type

Authorization

Bearer Token

Header

string

Name
Meaning
Param Type
Data Type
Required

address

The address of the contract

Path

string

Last updated