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

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

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

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

Update administrator of contract, only work on conflux chain

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

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

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

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

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

Add contract sponsored whitelist, only work on conflux chain

Path parameters
addressstringRequired

contract address

Header parameters
AuthorizationstringRequired

Bearer Open_JWT

Bodystring[]
string[]Optional
Responses
200
Transaction id
application/json
post
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

Remove Contract Sponsor Users

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

Remove contract sponsored whitelist

delete

Remove contract sponsored whitelist, only work on conflux chain

Path parameters
addressstringRequired

contract address

Header parameters
AuthorizationstringRequired

Bearer Open_JWT

Bodystring[]
string[]Optional
Responses
200
Transaction id
application/json
delete
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

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

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

Query parameters
pageintegerOptional

page

limitintegerOptional

limit

Header parameters
AuthorizationstringRequired

Bearer Open_JWT

Responses
200
OK
application/json
get
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

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

Get Contract info

Path parameters
idintegerRequired

id

Header parameters
AuthorizationstringRequired

Bearer Open_JWT

Responses
200
OK
application/json
get
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

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

Get the sponsor of the specified contract according to address.

Path parameters
addressstringRequired

address

Query parameters
chainstringOptional

chain

Header parameters
AuthorizationstringRequired

Bearer Open_JWT

Responses
200
OK
application/json
get
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

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

Get Contract Admin

Path parameters
addressstringRequired

contract address

Header parameters
AuthorizationstringRequired

Bearer Open_JWT

Responses
200
Admin address
application/json
Responsestring
get
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

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

Get contract sponsored whitelist, only work on conflux chain

Path parameters
addressstringRequired

contract address

Header parameters
AuthorizationstringRequired

Bearer Open_JWT

Responses
200
Contract sponsored whitelist
application/json
Responsestring[]
get
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

Last updated