Transaction API
Transaction API는 트랜잭션 전송, 조회 기능을 제공합니다.
트랜잭션 생성
블록체인 네트워크에 전송할 트랜잭션을 생성합니다. 네이티브 토큰을 전송하거나 스마트 컨트랙트를 실행하는 트랜잭션을 생성할 수 있습니다.
Request URL
필드명 | 설명 | 타입 | 필수 여부 |
x-network | 블록체인 네트워크 | string | Y |
Authorization | API를 호출하기 위한 인증 토큰 | string | Y |
Request body
필드명 | 설명 | 타입 | 필수 여부 |
from | 트랜잭션을 블록체인에 전송할 계정주소입니다. | string | Y |
to | 컨트랙트 함수를 호출하는 등 스마트 컨트랙트 관련 트랜잭션: 스마트 컨트랙트 주소 네이티브 토큰을 전송하는 트랜잭션: 토큰을 받을 계정 주소 | string | Y |
amount | 컨트랙트 함수를 호출하는 등 스마트 컨트랙트 관련 트랜잭션: 0 을 입력 네이티브 토큰을 전송하는 트랜잭션: 전송할 토큰 수량을 입력 | string | Y |
data | 스마트 컨트랙트 관련 트랜잭션일 경우, 컨트랙트 함수명과 파라미터 정보입니다. Polygon: Web3js encodeABI 로 data 값 생성 가능 XPLA: XPLAjs 메세지 생성으로 data 값 생성 가능 | json | 스마트 컨트랙트 관련 트랜잭션: Y 네이티브 토큰 전송 트랜잭션: N |
encoded | 반환받을 트랜잭션의 인코딩 여부 (true : 인코딩된 Raw Transaction String, false : 디코딩된 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/tx'
-H 'accept: application/json'
-H 'x-network: polygon'
-H 'Content-Type: application/json'
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNvbS5jb20yd...'
-d '{
"from": "0x9428e6eF51FEb2201676deEc11B7E36F7c1F0765",
"to": "0xFBd488D1b00604d3b05124d80E35FeA9A39C3296",
"amount": "0.001",
"data": "",
"encoded": true
}'
Response sample
{
"code": 0,
"message": "success",
"data": {
"rawTx": "02f68301388182013484618b021e84618b0235827b0c94fbd488d1b00604d3b05124d80e35fea9a39c329687038d7ea4c6800080c0808080",
"requestId": "93ff43f7-3e19-42e1-a7d0-bbff40be1361"
}
}
트랜잭션 조회
트랜잭션 해시(txhash)를 지정하여 트랜잭션 정보를 조회합니다. 블록체인에 전송되어 블록에 기록된 트랜잭션만 조회할 수 있습니다.
Request URL
Path parameters
필드명 | 설명 | 타입 | 필수 여부 |
txhash | 트랜잭션 해시 | string | Y |
필드명 | 설명 | 타입 | 필수 여부 |
x-network | 블록체인 네트워크{ploygon, xpla} | string | Y |
Authorization | API를 호출하기 위한 인증 토큰 | string | Y |
Responses
필드명 | 설명 | 타입 |
code | api 호출 결과 코드, 0:성공 | number |
message | 결과 메시지 | string |
data | API 응답 데이터 | json |
data.txhash | 트랜잭션 해시 | string |
data.blockNumber | 트랜잭션이 담긴 블록 넘버 | number |
data.contractAddress | 컨트랙트를 배포하는 트랜잭션인 경우 컨트랙트 주소 | string |
data.status | 트랜잭션 상태이며, 블록체인 블록에 트랜잭션이 성공적으로 기록 완료되면 success | string |
data.fee | 사용된 수수료 | json |
data.data | 트랜잭션 데이터 Polygon XPLA | json |
data.logs | 트랜잭션 로그 | json[] |
Request sample
curl -X 'GET'
'https://sandbox-bc-api.qpyou.cn/core/v1/tx/0x5a0ca3a7eebbafa946da6ed0160930fc4f334887dbf11a9b38937ab8831fd125'
-H 'accept: application/json'
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJp...'
-H 'x-network: polygon'
Response sample
// Polygon Transaction
{
"code": 0,
"message": "success",
"data": {
"txhash": "0x5a0ca3a7eebbafa946da6ed0160930fc4f334887dbf11a9b38937ab8831fd125",
"blockNumber": 33457511,
"contractAddress": "0x4377C1bE43Db73561f1179e2637CFf0bbD617eFC",
"status": "success",
"fee": {
"gas": 151232,
...
},
"data": {
"from": "0x9428e6eF51FEb2201676deEc11B7E36F7c1F0765",
..
},
"logs": [
{
"transactionHash": "0x5a0ca3a7eebbafa946da6ed0160930fc4f334887dbf11a9b38937ab8831fd125",
....
}
]
}
}
// Xpla Transaction
{
"code": 0,
"message": "success",
"data": {
"txhash": "E21E0CC37CD1BCACADFDEBD4C7AF2F68257EA4591D670F4AA0A725B21422C29F",
"blockNumber": 4818400,
"contractAddress": "0x4377C1bE43Db73561f1179e2637CFf0bbD617eFC",
"status": "success",
"fee": {
"gasUsed": 21000,
...
},
"data": {
"memo": "",
...
},
"logs": [
{
"msg_index": 0,
...
}
]
}}
트랜잭션 전송
서명한 트랜잭션을 블록체인에 전송합니다.
Important
트랜잭션 서명은 게임 유저가 개인 지갑에서 직접 수행하거나 게임사에서 직접 구현하여 진행해야 합니다.
Note
트랜잭션 해시(txhash)를 응답으로 받았더라도 전송이 실패할 수 있습니다. 트랜잭션 조회 API data.status
로 전송 성공 여부를 확인해야 합니다.
Request URL
필드명 | 설명 | 타입 | 필수 여부 |
x-network | 블록체인 네트워크{ploygon, xpla} | string | Y |
Authorization | API를 호출하기 위한 인증 토큰 | string | Y |
Request body
Note
트랜잭션 전송 성공/실패 여부를 알려주는 기능(callbackUrl
)은 Hive 블록체인 API에서만 지원합니다.
필드명 | 설명 | 타입 | 필수 여부 |
signedTx | 서명한 트랜잭션 | string | Y |
sync | 트랜잭션 동기/비동기 처리 여부 true : 동기식 처리로 트랜잭션이 블록에 담길 때까지 대기합니다. API를 호출한 상태로 응답값(txHash )을 받을 때까지 대기합니다. false : 비동기식 처리로 트랜잭션 전송 성공/실패를 바로 확인할 수 없습니다. 트랜잭션 조회 API를 호출해 트랜잭션 전송 성공 여부를 확인해야 합니다. | boolean | Y |
Responses
필드명 | 설명 | 타입 |
code | api 호출 결과 코드, 0:성공 | number |
message | 결과 메시지 | string |
data | API 응답 데이터 | json |
data.txhash | 트랜잭션 해시 | string |
data.status | 트랜잭션 상태 | string |
Note
비동기식 처리 시 응답값을 조회할 수 없거나 data.status
가 pending
일 수 있습니다. 트랜잭션이 블록에 담긴 후 상태가 변경됩니다.
Request sample
curl -X 'POST'
'https://sandbox-bc-api.qpyou.cn/core/v1/send'
-H 'accept: application/json'
-H 'x-network: polygon'
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJp...'
-H 'Content-Type: application/json'
-d '{
"signedTx": "0x02f8b58301388181b985016d14154585016d1415578289219494853bdc9c...",
"sync": false
}'
Response sample
// Polygon
{
"code": 0,
"message": "success",
"data": {
"txhash": "0x53e8783e4da707daf58c96a8cea278e7b2a8a5f185af0913b518974556c79076",
"status": "pending"
}
}
// Xpla
{
"code": 0,
"message": "success",
"data": {
"txhash": "84655BB965D709A4AAD4104C7FFBD8E42F52F0BB313493FFDCA02B01FE983A8F",
"status": "pending"
}
}