웹훅 개념
입금, 출금과 같이 옥텟 내 어떠한 이벤트를 실시간으로 추척할 수 있도록 웹훅을 제공합니다. 특정 이벤트의 데이터를 수신할 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
}
},
......
]
웹훅 등록하기
- 콘솔 - 지갑 선택 - [지갑 설정] - [웹훅]에 접속합니다.
- 웹훅을 받을 이벤트를 선택하고, 웹훅의 이름과 URL을 입력하세요.
- 특정 이벤트(입금, 출금 등) 발생 시, 등록한 URL로 데이터가 전송됩니다.
웹훅 재전송하기
웹훅 수신에 실패할 경우 콘솔에서 웹훅을 다시 전송할 수 있습니다.
- 콘솔 - 지갑 선택 - [웹훅 전송 내역]에 접속합니다.
- 다시 보낼 웹훅을 선택한 뒤, [재전송하기] 버튼을 클릭합니다.
- 등록한 URL로 데이터가 다시 전송됩니다.
Updated 2 months ago