Token API
Token API는 FT(Fungible Token) 전송, 조회, 권한 부여 등의 기능들을 제공합니다.
토큰 정보 조회
컨트랙트 주소(contract)에 해당하는 토큰 컨트랙트 정보를 조회합니다.
Request URL
Path parameters
| 필드명 | 설명 | 타입 | 필수 여부 |
| contract | 토큰 컨트랙트 주소 | string | Y |
| 필드명 | 설명 | 타입 | 필수 여부 |
| x-network | 블록체인 네트워크{ploygon, xpla} | string | Y |
| Authorization | API를 호출하기 위한 인증 토큰 | string | Y |
Responses
| 필드명 | 설명 | 타입 |
| code | api 호출 결과 코드, 0:성공 | number |
| message | 결과 메시지 | string |
| data | API 응답 데이터 | json |
| data.name | 토큰 이름 | string |
| data.symbol | 토큰 심볼 | string |
| data.decimals | 토큰 소수점 최대 자리수 | number |
| data.totalSupply | 총 발행량 | string |
Request sample
curl -X 'GET'
'https://sandbox-bc-api.qpyou.cn/core/v1/ft/0x94853BdC9c6AdD50D7842D1A3117fab385457470'
-H 'accept: application/json'
-H 'x-network: polygon'
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJp...'
Response sample
{
"code": 0,
"message": "success",
"data": {
"name": "Simple Token",
"symbol": "ST",
"decimals": 18,
"totalSupply": "1000000000"
}
}
토큰 잔액 조회
토큰 소유자 계정(from)의 현재 토큰 잔고를 조회합니다.
Request URL
Path parameters
| 필드명 | 설명 | 타입 | 필수 여부 |
| contract | 토큰 컨트랙트 주소 | string | Y |
| from | 토큰 소유자 계정 | string | Y |
Query parameters
| 필드명 | 설명 | 타입 | 필수 여부 |
| details | 잔액 상세보기 여부 | boolean | N |
| 필드명 | 설명 | 타입 | 필수 여부 |
| x-network | 블록체인 네트워크{ploygon, xpla} | string | Y |
| Authorization | API를 호출하기 위한 인증 토큰 | string | Y |
Responses
| 필드명 | 설명 | 타입 |
| code | api 호출 결과 코드, 0:성공 | number |
| message | 결과 메시지 | string |
| data | API 응답 데이터 | json |
| data.value | 토큰 잔액 | string |
| data.rawValue | data.decimals을 적용하지 않은 토큰 잔액 | string |
| data.symbol | 토큰 심볼 | string |
| data.decimals | 토큰 소수점 최대 자리수 | number |
Request sample
curl -X 'GET'
'https://sandbox-bc-api.qpyou.cn/core/v1/ft/0x94853BdC9c6AdD50D7842D1A3117fab385457470/account/0x9428e6eF51FEb2201676deEc11B7E36F7c1F0765/balance?details=true'
-H 'accept: application/json'
-H 'x-network: polygon'
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJp...'
Response sample
{
"code": 0,
"message": "success",
"data": {
"value": "999998999",
"symbol": "ST",
"decimals": 18,
"rawValue": "999998999000000000000000000"
}
}
대리 전송 가능한 토큰 수량 조회
토큰 소유자 계정인 from이 spender 계정에게 자신 대신 토큰을 전송하도록 허용했을 때, 허용한 토큰 수량을 조회합니다.
Request URL
Path parameters
| 필드명 | 설명 | 타입 | 필수 여부 |
| contract | 토큰 컨트랙트 주소 | string | Y |
| from | 토큰 소유자 계정 | string | Y |
| spender | 토큰 전송 권한을 받은 계정 | string | Y |
| 필드명 | 설명 | 타입 | 필수 여부 |
| x-network | 블록체인 네트워크{ploygon, xpla} | string | Y |
| Authorization | API를 호출하기 위한 인증 토큰 | string | Y |
Responses
| 필드명 | 설명 | 타입 |
| code | api 호출 결과 코드, 0:성공 | number |
| message | 결과 메시지 | string |
| data | API 응답 데이터 | json |
| data.allowance | 전송 가능한 토큰 수량 | string |
Request sample
curl -X 'GET'
'https://sandbox-bc-api.qpyou.cn/core/v1/ft/0x94853BdC9c6AdD50D7842D1A3117fab385457470/account/0x9428e6eF51FEb2201676deEc11B7E36F7c1F0765/allowance/0xFBd488D1b00604d3b05124d80E35FeA9A39C3296'
-H 'accept: application/json'
-H 'x-network: polygon'
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJp...'
Response sample
{
"code": 0,
"message": "success",
"data": {
"allowance": "0"
}
}
토큰 전송
특정 주소로 토큰을 전송하는 트랜잭션을 생성합니다. from은 토큰의 소유자 계정이어야 합니다. 전송 받을 계정(to)이 컨트랙트이면 data를 사용해 전송 받는 컨트랙트에서 추가 작업을 할 수 있습니다.
Request URL
Path parameters
| 필드명 | 설명 | 타입 | 필수 여부 |
| contract | 토큰 컨트랙트 주소 | string | Y |
| 필드명 | 설명 | 타입 | 필수 여부 |
| x-network | 블록체인 네트워크{ploygon, xpla} | string | Y |
| Authorization | API를 호출하기 위한 인증 토큰 | string | Y |
Request body
| 필드명 | 설명 | 타입 | 필수 여부 |
| encoded | 반환받을 트랜잭션의 인코딩 여부 true: data.rawTx으로 인코딩된 Raw Transaction String을 받습니다. false: data.rawTx으로 인코딩을 디코딩한 JSON 결과값을 받습니다. | boolean | N |
| from | 토큰을 전송할 계정 주소 | string | Y |
| to | 토큰을 받을 계정 주소 | string | Y |
| amount | 전송할 토큰 수량 | string | Y |
Responses
| 필드명 | 설명 | 타입 |
| code | api 호출 결과 코드, 0:성공 | number |
| message | 결과 메시지 | string |
| data | API 응답 데이터 | json |
| data.rawTx | 트랜잭션 데이터 | string 또는 json |
| data.hashedTx | 해시한 data.rawTx입니다. API 헤더 x-network가 polygon이고 Request Body from이 다중 서명 지갑 주소일 때에만 이 값을 받습니다. | string |
| data.requestId | API 요청을 식별할 수 있는 고유값 | string |
Request sample
curl -X 'POST'
'https://sandbox-bc-api.qpyou.cn/core/v1/ft/0x94853BdC9c6AdD50D7842D1A3117fab385457470/transfer'
-H 'accept: */*'
-H 'x-network: polygon'
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJp...'
-H 'Content-Type: application/json'
-d '{
"encoded": true,
"from": "0x9428e6eF51FEb2201676deEc11B7E36F7c1F0765",
"to": "0xFBd488D1b00604d3b05124d80E35FeA9A39C3296",
"amount": "100.55"
}'
Response sample
// Polygon
{
"code": 0,
"message": "success",
"data": {
"rawTx": "02f8738301388181c2846fc23ac0846fc23ad882cdc49494853bdc9c6add50d7842d1a3117fab38545747080b8...",
"hashedTx": "0x53e8783e4da707daf58c96a8cea278e7b2a8a5f185af0913b518974556c79076...",
"requestId": "4d4aa1e5-2bfe-4080-b42f-03319810fe29"
}
}
// XPLA
{
"code": 0,
"message": "success",
"data": {
"rawTx": "0x53e8783e4da707daf58c96a8cea278e7b2a8a5f185af0913b518974556c79076.....",
"reqeustId": "4d4aa1e5-2bfe-4080-b42f-03319810fe29"
}
}
토큰 대리 전송
토큰 소유자를 대신해 특정 주소로 토큰을 대리 전송하는 트랜잭션을 생성합니다. from은 토큰 실제 소유자(owner)에게 전송 권한을 부여받은 계정이어야 합니다. 전송 받을 계정(to)이 컨트랙트이면 data를 사용해 전송 받는 컨트랙트에서 추가 작업을 할 수 있습니다.
Request URL
Path parameters
| 필드명 | 설명 | 타입 | 필수 여부 |
| contract | 컨트랙트 주소 | string | Y |
| 필드명 | 설명 | 타입 | 필수 여부 |
| x-network | 블록체인 네트워크{ploygon, xpla} | string | Y |
| Authorization | API를 호출하기 위한 인증 토큰 | string | Y |
Request body
| 필드명 | 설명 | 타입 | 필수 여부 |
| from | 토큰 전송 권한을 받은 계정의 지갑 주소 | string | Y |
| to | 토큰을 전송받을 지갑 주소 | string | Y |
| amount | 전송할 토큰 수량 | string | Y |
| data | 컨트랙트로 전송 시 전달할 데이터 | string | Y |
| owner | 토큰을 실제 소유한 계정의 지갑 주소 | string | Y |
| encoded | 반환받을 트랜잭션의 인코딩 여부 true: data.rawTx으로 인코딩된 Raw Transaction String을 받습니다. false: data.rawTx으로 인코딩을 디코딩한 JSON 결과값을 받습니다. | boolean | N |
Responses
| 필드명 | 설명 | 타입 |
| code | api 호출 결과 코드, 0:성공 | number |
| message | 결과 메시지 | string |
| data | API 응답 데이터 | json |
| data.rawTx | 트랜잭션 데이터 | string 또는 json |
| data.hashedTx | 해시한 data.rawTx입니다. API 헤더 x-network가 polygon이고 Request Body from이 다중 서명 지갑 주소일 때에만 이 값을 받습니다. | string |
| data.requestId | API 요청을 식별할 수 있는 고유값 | string |
Request sample
curl -X 'POST'
'https://sandbox-bc-api.qpyou.cn/core/v1/ft/0x5bd415aeb2b382c7fac9cc72c1f3994e33ff7b02/transfer-from'
-H 'accept: */*'
-H 'x-network: polygon'
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJp...'
-H 'Content-Type: application/json'
-d '{
"encoded": true,
"from": "0xA10078576Ca6f63dc6f78ff9a8ed8bd05B51f463",
"to": "0xdcd51770d06B54204abd8c30A25b4583D4cABa39",
"amount": "0.000001",
"owner": "0xD6e69da7f1be111394dfef4C48eaC9b52ddf2Fd0"
}'
Response sample
{
"code": 0,
"message": "success",
"data": {
"rawTx": "02f8738301388181c2846fc23ac0846fc23ad882cdc49494853bdc9c6add50d7842d1a3117fab38545747080b8...",
"hashedTx": "0x53e8783e4da707daf58c96a8cea278e7b2a8a5f185af0913b518974556c79076...",
"requestId": "4d4aa1e5-2bfe-4080-b42f-03319810fe29"
}
}
토큰을 전송할 권한 부여
from 계정이 to 계정에게 자신을 대리해서 amount 수량만큼의 토큰을 전송할 권한을 부여하는 트랜잭션을 생성합니다. from은 토큰의 소유자이어야 합니다.
Request URL
Path parameters
| 필드명 | 설명 | 타입 | 필수 여부 |
| contract | 토큰 컨트랙트 주소 | string | Y |
| 필드명 | 설명 | 타입 | 필수 여부 |
| x-network | 블록체인 네트워크{ploygon, xpla} | string | Y |
| Authorization | API를 호출하기 위한 인증 토큰 | string | Y |
Request body
| 필드명 | 설명 | 타입 | 필수 여부 |
| from | 토큰 소유자 계정 지갑 주소 | string | Y |
| to | 토큰 전송 권한을 부여받을 계정 지갑 주소 | string | Y |
| amount | 전송할 토큰 수량 | string | Y |
| encoded | 반환받을 트랜잭션의 인코딩 여부 true: data.rawTx으로 인코딩된 Raw Transaction String을 받습니다. false: data.rawTx으로 인코딩을 디코딩한 JSON 결과값을 받습니다. | boolean | N |
Responses
| 필드명 | 설명 | 타입 |
| code | api 호출 결과 코드, 0:성공 | number |
| message | 결과 메시지 | string |
| data | API 응답 데이터 | json |
| data.rawTx | 트랜잭션 데이터 | string 또는 json |
| data.hashedTx | 해시한 data.rawTx입니다. API 헤더 x-network가 polygon이고 Request Body from이 다중 서명 지갑 주소일 때에만 이 값을 받습니다. | string |
| data.requestId | API 요청을 식별할 수 있는 고유값 | string |
Request sample
curl -X 'POST'
'https://sandbox-bc-api.qpyou.cn/core/v1/ft/0x5bd415aeb2b382c7fac9cc72c1f3994e33ff7b02/approve'
-H 'accept: */*'
-H 'x-network: polygon'
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJp...'
-H 'Content-Type: application/json'
-d '{
"encoded": true,
"from": "0xD6e69da7f1be111394dfef4C48eaC9b52ddf2Fd0",
"to": "0xA10078576Ca6f63dc6f78ff9a8ed8bd05B51f463",
"amount": "100"
}'
Response sample
{
"code": 0,
"message": "success",
"data": {
"rawTx": "02f8738301388181c2846fc23ac0846fc23ad882cdc49494853bdc9c6add50d7842d1a3117fab38545747080b8...",
"hashedTx": "0x53e8783e4da707daf58c96a8cea278e7b2a8a5f185af0913b518974556c79076...",
"requestId": "4d4aa1e5-2bfe-4080-b42f-03319810fe29"
}
}
토큰 컨트랙트 배포
표준 토큰 컨트랙트를 배포하는 트랜잭션을 생성합니다.
Request URL
| 필드명 | 설명 | 타입 | 필수 여부 |
| x-network | 블록체인 네트워크{ploygon, xpla} | string | Y |
| Authorization | API를 호출하기 위한 인증 토큰 | string | Y |
Request body
| 필드명 | 설명 | 타입 | 필수 여부 |
| from | 토큰 컨트랙트를 배포할 지갑 주소 | string | Y |
| name | 토큰 이름 | string | Y |
| symbol | 토큰 심볼 | string | Y |
| decimals | 토큰 소수점 최대 자리수 | number | Y |
| initialSupply | 초기 토큰 발행량 | string | Y |
| encoded | 반환받을 트랜잭션의 인코딩 여부 true: data.rawTx으로 인코딩된 Raw Transaction String을 받습니다. false: data.rawTx으로 인코딩을 디코딩한 JSON 결과값을 받습니다. | boolean | N |
Responses
| 필드명 | 설명 | 타입 |
| code | api 호출 결과 코드, 0:성공 | number |
| message | 결과 메시지 | string |
| data | API 응답 데이터 | json |
| data.rawTx | 트랜잭션 데이터 | string 또는 json |
| data.hashedTx | 해시한 data.rawTx입니다. API 헤더 x-network가 polygon이고 Request Body from이 다중 서명 지갑 주소일 때에만 이 값을 받습니다. | string |
| data.requestId | API 요청을 식별할 수 있는 고유값 | string |
Request sample
curl -X 'POST'
'https://sandbox-bc-api.qpyou.cn/core/v1/ft/contract'
-H 'accept: */*'
-H 'x-network: polygon'
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJp...'
-H 'Content-Type: application/json'
-d '{
"encoded": true,
"from": "0x9428e6eF51FEb2201676deEc11B7E36F7c1F0765",
"name": "Simple Token",
"symbol": "ST",
"decimals": 18,
"initialSupply": "1000000000"
}'
Response sample
{
"code": 0,
"message": "success",
"data": {
"rawTx": "02f8738301388181c2846fc23ac0846fc23ad882cdc49494853bdc9c6add50d7842d1a3117fab38545747080b8...",
"hashedTx": "0x53e8783e4da707daf58c96a8cea278e7b2a8a5f185af0913b518974556c79076...",
"requestId": "4d4aa1e5-2bfe-4080-b42f-03319810fe29"
}
}