웹훅 개념

입금, 출금과 같이 옥텟 내 어떠한 이벤트를 실시간으로 추척할 수 있도록 웹훅을 제공합니다. 특정 이벤트의 데이터를 수신할 URL을 등록하면, 이벤트 발생 시 옥텟 측에서 해당 URL로 데이터를 전송합니다.

  • 프로토콜 : HTTP/1.1 POST
  • 요청 body : JSON Array
  • 허용 포트 : 443(https), 80(http)

웹훅 지원 이벤트

웹훅은 트랜잭션이 완료된 시점에 전송됩니다. 트랜잭션 실패 시에도 웹훅이 전송됩니다.

이벤트전송 시점
입금 진행 (UNFINALIZED_DEPOSIT)입금 트랜잭션 진행(UNFINALIZED) 시
입금 완료 (DEPOSIT)입금 트랜잭션 완료(FINALIZED) 시
집금 완료 (GATHERING)집금 트랜잭션 완료(FINALIZED) 시
출금 신청 성공 (SENT_WITHDRAWAL)출금 신청 성공(SENT) 시
출금 신청 실패 (FAILED_WITHDRAWAL)출금 신청 실패(FAILED) 시
출금 서명 대기 (AWAITING_SIGNING_WITHDRAWAL)출금 신청 빌드 성공(AWAITING_SIGNING) 시
출금 완료 (WITHDRAWAL)출금 트랜잭션 완료(FINALIZED) 시
NFT 컨트랙트 배포 완료 (NFT_DEPLOYMENT)NFT 컨트랙트 배포 트랜잭션 완료(FINALIZED) 시
NFT 아이템 발행 완료 (NFT_ITEM_CREATION)NFT 아이템 발행 트랜잭션 완료(FINALIZED) 시
NFT 입금 진행 (UNFINALIZED_NFT_DEPOSIT)NFT 입금 트랜잭션 진행(UNFINALIZED) 시
NFT 입금 완료 (NFT_DEPOSIT)NFT 입금 트랜잭션 완료(FINALIZED) 시
NFT 출금 완료 (NFT_WITHDRAWAL)NFT 출금 트랜잭션 완료(FINALIZED) 시
NFT 소각 완료 (NFT_BURN)NFT 소각 트랜잭션 완료(FINALIZED) 시
NFT 컨트랙트 함수 실행 완료 (NFT_CONTRACT_METHOD_EXECUTION)NFT 컨트랙트 함수 실행 트랜잭션 완료(FINALIZED) 시
트랜잭션 서명 완료 (SIGNING_TRANSACTION)트랜잭션 서명 성공(SUCCESS) 또는 실패(FAILED) 시
데이터 서명 완료 (SIGNING_DATA)데이터 서명 성공(SUCCESS) 또는 실패(FAILED) 시

데이터 형태

전송의 효율성을 위해, HTTP 요청의 body는 배열의 형태를 지닙니다. 짧은 시간동안 다량의 입금이 발생한 경우 배열 내 여러 건의 입금이 포함되어 전송됩니다.

👀

서로 다른 웹훅을 동일한 URL로 등록하였다면, 하나의 데이터에 여러 웹훅의 내용이 포함되어 전송됩니다.


데이터 예시

1. 입금, 출금, 집금

[
  {
    "webhookIdx": 75,
    "webhookTargetIdx": 214224,
    "webhookTargetDataScheme": "TRANSACTION_1",
    "data": {
      "memo": null,
      "txid": "0x670d0c04ec2c11d6bc5800197e028b9196d256e132fcaee5b54fe20c55fa1c34",
      "type": "DEPOSIT",
      "uuid": "8d62e40a-6315-410b-a42e-a6b3061c661b",
      "nonce": 53198,
      "amount": "0.25000000000000000000",
      "status": "FINALIZED",
      "symbol": "ETH",
      "usedFee": "0.00000424649261400000",
      "toAddress": "0x71b5De2970A32eEf6362AE7Bc3B73103b4392bB0",
      "failedDate": null,
      "blockHeight": "7496435",
      "createdDate": "2022-08-30T16:21:10",
      "fromAddress": "0x2031832e54a2200bF678286f560F49A950DB2Ad5",
      "outputIndex": 0,
      "toAddresses": [
        "0x71b5De2970A32eEf6362AE7Bc3B73103b4392bB0"
      ],
      "modifiedDate": "2022-08-30T16:24:01",
      "finalizedDate": "2022-08-30T16:24:02",
      "fromAddresses": [
        "0x2031832e54a2200bF678286f560F49A950DB2Ad5"
      ],
      "contractAddress": null,
      "feePayerAddress": null,
      "unfinalizedDate": "2022-08-30T16:21:11",
      "useFeeDelegation": false,
      "transactionCurrency": {
        "krw": null,
        "usd": null
      }
    }
  },
    {
    "webhookIdx": 77,
    "webhookTargetIdx": 214743,
    "webhookTargetDataScheme": "TRANSACTION_1",
    "data": {
      "memo": null,
      "txid": "0xa582377ad2bf7ab8dd87d42ca71fe9632398c47fad967ee360c9c599147c0612",
      "type": "WITHDRAWAL",
      "uuid": "ce777d55-feb8-4f51-a092-278d67dea0fa",
      "nonce": 113,
      "amount": "0.00010000000000000000",
      "status": "FINALIZED",
      "symbol": "ETH",
      "usedFee": "0.000021000133917",
      "toAddress": "0x1D31aB94201b3a25557fdC6dc2E4c860199E32Da",
      "failedDate": null,
      "blockHeight": "8034466",
      "createdDate": "2022-11-28T15:42:50",
      "fromAddress": "0x71b5De2970A32eEf6362AE7Bc3B73103b4392bB0",
      "outputIndex": 0,
      "toAddresses": [
        "0x1D31aB94201b3a25557fdC6dc2E4c860199E32Da"
      ],
      "modifiedDate": "2022-11-28T15:42:50",
      "finalizedDate": "2022-11-28T15:43:20",
      "fromAddresses": [
        "0x71b5De2970A32eEf6362AE7Bc3B73103b4392bB0"
      ],
      "contractAddress": null,
      "feePayerAddress": null,
      "unfinalizedDate": "2022-11-28T15:43:20",
      "useFeeDelegation": false,
      "transactionCurrency": {
        "krw": "1.00000000",
        "usd": "1.00000000"
      }
    }
  },
    {
    "webhookIdx": 637,
    "webhookTargetIdx": 219563,
    "webhookTargetDataScheme": "TRANSACTION_1",
    "data": {
      "memo": null,
      "txid": "0xf4e7dbfc5a4a6082d81272d7b0d1c743f5dd9e88801a0c4018eed4c789066cfa",
      "type": "GATHERING",
      "uuid": "d50a18d4-31e6-4dc2-805c-df8c04232af1",
      "nonce": 0,
      "amount": "0.19995800000000000000",
      "status": "FINALIZED",
      "symbol": "ETH",
      "usedFee": "0.00002100000021000000",
      "toAddress": "0xD9a22a2627D5c1FfA0067A01f0333b18C697281b",
      "failedDate": null,
      "blockHeight": "8076445",
      "createdDate": "2022-12-05T11:11:01",
      "fromAddress": "0xe0b7103cba658BB3130577DE838C60F721ABA5d3",
      "outputIndex": 0,
      "toAddresses": [
        "0xD9a22a2627D5c1FfA0067A01f0333b18C697281b"
      ],
      "modifiedDate": "2022-12-05T11:12:01",
      "finalizedDate": "2022-12-05T11:12:02",
      "fromAddresses": [
        "0xe0b7103cba658BB3130577DE838C60F721ABA5d3"
      ],
      "contractAddress": null,
      "feePayerAddress": null,
      "unfinalizedDate": "2022-12-05T11:12:02",
      "useFeeDelegation": false,
      "transactionCurrency": {
        "krw": null,
        "usd": null
      }
    }
  }
]



2. NFT 배포, 발행, 입금, 출금

[
  {
    "webhookIdx": 161,
    "webhookTargetIdx": 189585,
    "webhookTargetDataScheme": "NFT_TRANSACTION_1",
    "data": {
      "memo": null,
      "txid": "0x0e4f2d9962ba557ab2c02154c06f5fe2ef2801d503994c1671040cae1f044174",
      "type": "NFT_ITEM_CREATION",
      "uuid": "80c7de5d-86f1-4bb7-8de4-4690008a2f31",
      "nonce": 15,
      "amount": "0",
      "status": "FINALIZED",
      "symbol": "WBHK",
      "tokenId": null,
      "usedFee": null,
      "tokenUri": null,
      "toAddress": "0x98Dd58da2a23f333Ab515e59217eDD1A78617360",
      "failedDate": null,
      "blockHeight": null,
      "createdDate": "2022-06-23T10:18:50",
      "fromAddress": "0xE291f46cC312c930a63f75F59341345551262821",
      "outputIndex": null,
      "toAddresses": [
        "0xE291f46cC312c930a63f75F59341345551262821"
      ],
      "modifiedDate": "2022-06-23T10:18:50",
      "finalizedDate": "2022-06-23T10:18:50",
      "fromAddresses": [
        "0xE291f46cC312c930a63f75F59341345551262821"
      ],
      "contractAddress": "0x98Dd58da2a23f333Ab515e59217eDD1A78617360",
      "feePayerAddress": null,
      "unfinalizedDate": "2022-06-23T10:18:50",
      "useFeeDelegation": false
    }
  },
  {
    "webhookIdx": 164,
    "webhookTargetIdx": 189586,
    "webhookTargetDataScheme": "NFT_TRANSACTION_1",
    "data": {
      "memo": null,
      "txid": "0x0e4f2d9962ba557ab2c02154c06f5fe2ef2801d503994c1671040cae1f044174",
      "type": "DEPOSIT",
      "uuid": "92ca7afd-4477-4e55-9c3b-83c8b61fda05",
      "nonce": 15,
      "amount": "1",
      "status": "FINALIZED",
      "symbol": null,
      "tokenId": null,
      "usedFee": "0.00026079300182555100",
      "tokenUri": null,
      "toAddress": "0xE291f46cC312c930a63f75F59341345551262821",
      "failedDate": null,
      "blockHeight": "7105992",
      "createdDate": "2022-06-23T10:19:20",
      "fromAddress": "0x0000000000000000000000000000000000000000",
      "outputIndex": null,
      "toAddresses": [
        "0x0000000000000000000000000000000000000000"
      ],
      "modifiedDate": "2022-06-23T10:19:20",
      "finalizedDate": "2022-06-23T10:19:21",
      "fromAddresses": [
        "0x0000000000000000000000000000000000000000"
      ],
      "contractAddress": null,
      "feePayerAddress": null,
      "unfinalizedDate": "2022-06-23T10:19:21",
      "useFeeDelegation": false
    }
  },
  ......
]




웹훅 등록하기

  1. 콘솔 - 지갑 선택 - [지갑 설정] - [웹훅]에 접속합니다.
  2. 웹훅을 받을 이벤트를 선택하고, 웹훅의 이름과 URL을 입력하세요.
  3. 특정 이벤트(입금, 출금 등) 발생 시, 등록한 URL로 데이터가 전송됩니다.




웹훅 재전송하기

웹훅 수신에 실패할 경우 콘솔에서 웹훅을 다시 전송할 수 있습니다.

  1. 콘솔 - 지갑 선택 - [웹훅 전송 내역]에 접속합니다.
  2. 다시 보낼 웹훅을 선택한 뒤, [재전송하기] 버튼을 클릭합니다.
  3. 등록한 URL로 데이터가 다시 전송됩니다.