콘텐츠로 이동

Transaction API

Transaction API는 트랜잭션 전송, 조회 기능을 제공합니다.

트랜잭션 생성

블록체인 네트워크에 전송할 트랜잭션을 생성합니다. 네이티브 토큰을 전송하거나 스마트 컨트랙트를 실행하는 트랜잭션을 생성할 수 있습니다.

Request URL

Live URL https://bc-api.qpyou.cn/core/v1/tx
Sandbox URL https://sandbox-bc-api.qpyou.cn/core/v1/tx
HTTP Method POST
Content-Type application/json

Header parameters

필드명 설명 타입 필수 여부
x-network 블록체인 네트워크 string Y
Authorization API를 호출하기 위한 인증 토큰 string Y

Request body

필드명 설명 타입 필수 여부
from 트랜잭션을 블록체인에 전송할 계정주소입니다. string Y
to 컨트랙트 함수를 호출하는 등 스마트 컨트랙트 관련 트랜잭션: 스마트 컨트랙트 주소 네이티브 토큰을 전송하는 트랜잭션: 토큰을 받을 계정 주소 string Y
amount 컨트랙트 함수를 호출하는 등 스마트 컨트랙트 관련 트랜잭션: 0을 입력 네이티브 토큰을 전송하는 트랜잭션: 전송할 토큰 수량을 입력 string Y
data 스마트 컨트랙트 관련 트랜잭션일 경우, 컨트랙트 함수명과 파라미터 정보입니다. Polygon: Web3js encodeABIdata값 생성 가능 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

Live URL https://bc-api.qpyou.cn/core/v1/tx/{txhash}
Sandbox URL https://sandbox-bc-api.qpyou.cn/core/v1/tx/{txhash}
HTTP Method GET
Content-Type application/json

Path parameters

필드명 설명 타입 필수 여부
txhash 트랜잭션 해시 string Y

Header parameters

필드명 설명 타입 필수 여부
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

Live URL https://bc-api.qpyou.cn/core/v1/send
Sandbox URL https://sandbox-bc-api.qpyou.cn/core/v1/send
HTTP Method POST
Content-Type application/json

Header parameters

필드명 설명 타입 필수 여부
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.statuspending일 수 있습니다. 트랜잭션이 블록에 담긴 후 상태가 변경됩니다.

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"
  }
}