Aptos Webhook Quickstart

Nodit์ด ์ƒˆ๋กญ๊ฒŒ ์ง€์›ํ•˜๋Š” Aptos Webhook์„ ํ™œ์šฉํ•˜์—ฌ ๋ชฉ์ ์— ๋งž๋Š” Webhook์„ ์ƒ์„ฑํ•˜๊ณ  ์‹ค์‹œ๊ฐ„ ์ด๋ฒคํŠธ๋ฅผ ๊ตฌ๋…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

๐ŸŽ‰

Nodit Aptos Webhook Beta Now Launched!

Aptos ์ƒํƒœ๊ณ„๋ฅผ ์œ„ํ•œ Nodit์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ, Webhook Beta ๋ฒ„์ „์ด ๋“œ๋””์–ด ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! Beta ๊ธฐ๊ฐ„๋™์•ˆ, Aptos Webhook ์‚ฌ์šฉ๋Ÿ‰์€ ํ”Œ๋žœ ์‚ฌ์šฉ๋Ÿ‰์— ํฌํ•จ๋˜์ง€ ์•Š์•„ ๋ฌด์ œํ•œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. (๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ๋“ค์— ๋Œ€ํ•œ Webhook ์‚ฌ์šฉ๋Ÿ‰์€ ๊ธฐ์กด๊ณผ ๋™์ผํ•˜๊ฒŒ ์ฐจ๊ฐ๋ฉ๋‹ˆ๋‹ค.)

์•„๋ž˜ ๊ฐ€์ด๋“œ๋ฅผ ๋”ฐ๋ผ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•  Event์™€ Transaction์„ ์ •์˜ํ•˜์—ฌ Webhook์„ ์ƒ์„ฑํ•˜๊ณ , ์‹ค์‹œ๊ฐ„ Notification ๊ธฐ๋Šฅ์„ App์— ์—ฐ๋™ํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ด๋ณด์„ธ์š”.

โš ๏ธ

Beta๋ฒ„์ „ ๊ธฐ๊ฐ„๋™์•ˆ Aptos Webhook ์‹œ์Šคํ…œ ๊ฐœ์„  ์ž‘์—…์œผ๋กœ ์ธํ•œ ์ผ์‹œ์  ๋ฉ”์‹œ์ง€ ์ง€์—ฐ์ด๋‚˜ ์„œ๋น„์Šค ์ค‘๋‹จ, ๋˜๋Š” ๊ธฐ๋Šฅ ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ ์ƒํ™ฉ ๋ฐ ์„ค์ •ํ•œ ์ด๋ฒคํŠธ ํƒ€์ž…์— ๋”ฐ๋ผ ์˜จ์ฒด์ธ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ์ด 10๋ถ„ ์ด์ƒ ์ง€์—ฐ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์„œ๋น„์Šค ์—ฐ๋™์‹œ ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. Message Spec ๋ณ€๊ฒฝ์ด๋‚˜ ์ •๊ธฐ ์ธํ”„๋ผ ์œ ์ง€๋ณด์ˆ˜๋กœ ์ธํ•œ ์„œ๋น„์Šค ์ค‘๋‹จ์ด ์˜ˆ์ƒ๋˜๋Š” ๊ฒฝ์šฐ, ๊ฐœ๋ฐœ์ž ๋ฌธ์„œ์˜ Notice ํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ด ๋ฏธ๋ฆฌ ๊ณต์ง€ ์˜ˆ์ •์ด๋‹ˆ Notice ํŽ˜์ด์ง€๋ฅผ ์ง€์†์ ์œผ๋กœ ํ™•์ธํ•ด์ฃผ์„ธ์š”. NoditํŒ€์€ ์›ํ™œํ•œ ์ •์‹ ์„œ๋น„์Šค ์ถœ์‹œ๋ฅผ ์œ„ํ•ด ์ตœ์„ ์„ ๋‹คํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


Why Aptos Webhook and How Can I Leverage It?

Aptos ๊ฐœ๋ฐœ์ž๋“ค์˜ ๊ณ ๋ฏผ, Real-time Event Handling

Aptos ์ƒํƒœ๊ณ„์—๋Š” ์œ ๋… Stream, Webhook ๊ด€๋ จ ์„œ๋น„์Šค๊ฐ€ ๋ถ€์กฑํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋“ค์ด App ๊ฐœ๋ฐœ์— ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ๋ฅผ ํ†ตํ•ด ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ›๊ธฐ ์–ด๋ ค์›Œ, ์žฌ๋‹จ์ด ์ œ๊ณตํ•˜๋Š” gRPC Stream์„ ๊ตฌ๋…ํ•˜๋ฉด์„œ ํ•„์š”ํ•œ ์ด๋ฒคํŠธ๋งŒ ํ•„ํ„ฐ๋งํ•˜๋Š” ์‹œ์Šคํ…œ์„ ๋ณ„๋„๋กœ ๊ตฌ์ถ•ํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณ ๋ฏผ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, NoditํŒ€์—์„œ Aptos Webhook๊ณผ Stream ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.


์‹ค์‹œ๊ฐ„ ์ด๋ฒคํŠธ ๊ตฌ๋…์„ ์œ„ํ•œ ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•, Webhook

Webhook์€ ์ง€์ •ํ•œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ด๋ฒคํŠธ๋‚˜ ํŠธ๋žœ์žญ์…˜์ด ๋ฐœ์ƒํ•  ๋•Œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•œ Notification์„ ์ง€์ •ํ•œ Endpoint๋กœ ๋ฐ›์•„๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. Webhook์„ ํ™œ์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์‹ค์‹œ๊ฐ„ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํ”Œ๋กœ์šฐ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โค ์‚ฌ์šฉ์ž์—๊ฒŒ Push Notification์„ ๋ณด๋‚ด๊ฑฐ๋‚˜, ์ž์‚ฐ์„ ์ด๋™์‹œํ‚ค๊ฑฐ๋‚˜, ์‚ฌ์šฉ์ž ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ์Œ“์„ ์ˆ˜๋„ ์žˆ์ฃ . ์ง€์†์ ์œผ๋กœ ๊ตฌ๋… ์ฑ„๋„์„ ์œ ์ง€ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์œผ๋ฉด์„œ ํ•„ํ„ฐ๋งํ•ด์•ผ ํ•˜๋Š” Stream๊ณผ ๋‹ฌ๋ฆฌ, Webhook์€ ๋ณ„๋„์˜ ์ฑ„๋„์„ ์œ ์ง€ํ•  ํ•„์š” ์—†์ด ์ง€์ •ํ•œ ์กฐ๊ฑด์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋งŒ ๊ตฌ๋…ํ•  ์ˆ˜ ์žˆ์–ด ์‹œ์Šคํ…œ์˜ ๊ทœ๋ชจ๋‚˜ ํƒ€์ž…์— ์ƒ๊ด€์—†์ด ์‰ฝ๊ฒŒ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


Nodit Webhook API๋Š” ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

Nodit์€ Webhook์„ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์Œ API๋“ค์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ API Reference๋Š” ๊ฐ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Create Webhook API : Webhook์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ API์ž…๋‹ˆ๋‹ค. ์›ํ•˜๋Š” EventType ์กฐ๊ฑด์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ƒ์„ฑ๋œ Webhook์— ํ• ๋‹น๋˜๋Š” Subscription ID๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • Get Webhook List API : ํ˜„์žฌ ์ƒ์„ฑ๋˜์–ด์žˆ๋Š” Webhook ๋ชฉ๋ก์„ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•œ API์ž…๋‹ˆ๋‹ค.
  • Update Webhook API : ์‚ฌ์šฉ์ค‘์ธ Webhook์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ํ•„ํ„ฐ๋ง ์กฐ๊ฑด์„ ๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” API์ž…๋‹ˆ๋‹ค. Webhook์„ ๋น„ํ™œ์„ฑํ™” ํ•˜๊ฑฐ๋‚˜ ์žฌํ™œ์„ฑํ™” ํ•จ์œผ๋กœ์„œ ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ ์„ ์ผ์‹œ์ ์œผ๋กœ ์ค‘์ง€์‹œํ‚ค๊ฑฐ๋‚˜ ์žฌ๊ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํ•„ํ„ฐ๋ง ์กฐ๊ฑด์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Delete Webhook API : ๊ธฐ์กด์— ์‚ฌ์šฉ์ค‘์ธ Webhook์„ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•œ API์ž…๋‹ˆ๋‹ค.
  • Get Webhook History API : ํŠน์ • Webhook์„ ํ†ตํ•ด ์ „๋‹ฌ๋œ ๋ฉ”์‹œ์ง€ ์ด๋ ฅ์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” API์ž…๋‹ˆ๋‹ค.
    • ๋น„๋™๊ธฐ๋กœ ์ „๋‹ฌ๋˜๋Š” Webhook์˜ ํŠน์„ฑ์ƒ, ์ง€์ •ํ•œ Endpoint๊ฐ€ ์ผ์‹œ์ ์œผ๋กœ ์‚ฌ์šฉ ๋ถˆ๊ฐ€ ์ƒํƒœ๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ˆ„๋ฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ History API๋ฅผ ์กฐํšŒํ•˜์—ฌ ๋ˆ„๋ฝ๋œ ์ด๋ฒคํŠธ๊ฐ€ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋ชจ๋“  Aptos Webhook ๋ฉ”์„ธ์ง€๋Š” sequenceNumber ํ•„๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๊ฐ Webhook(subscription ID ๊ธฐ์ค€)๋ณ„๋กœ ์ „๋‹ฌ๋˜๋Š” ๋ชจ๋“  ๋ฉ”์‹œ์ง€๋Š” sequenceNumber ํ•„๋“œ๋ฅผ ํฌํ•จํ•˜๋ฉฐ, ์ „๋‹ฌ ์ˆœ์„œ์— ๋”ฐ๋ผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฐ’์„ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. Webhook Endpoint ์‹œ์Šคํ…œ์—์„œ๋Š” ํ•ด๋‹น ํ•„๋“œ์˜ ์ˆœ์ฐจ ์ฆ๊ฐ€๋ฅผ ๊ฒ€์ฆํ•จ์œผ๋กœ์จ ์ˆ˜์‹ ํ•˜์ง€ ๋ชปํ•œ ๋ฉ”์„ธ์ง€๊ฐ€ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๋ฝ๋œ ๊ฐ’์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ History API๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋ˆ„๋ฝ๋œ ๋ฉ”์„ธ์ง€๋ฅผ ์กฐํšŒํ•˜์„ธ์š”.

๐Ÿ’ช

Nodit Console์„ ํ™œ์šฉํ•œ Aptos Webhook ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์€ ์ •์‹ ๋ฒ„์ „์—์„œ ์ง€์›๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

Aptos Webhook์€ Beta ์„œ๋น„์Šค ๊ธฐ๊ฐ„ ๋™์•ˆ API๋ฅผ ํ†ตํ•œ ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ๋งŒ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Beta ๊ธฐ๊ฐ„ ๋™์•ˆ ์ˆ˜์ง‘๋˜๋Š” ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ˜์˜ํ•˜์—ฌ ๋”์šฑ ํŽธ๋ฆฌํ•œ Aptos Webhook ์ •์‹ ๋ฒ„์ „์„ ์ถœ์‹œ ์˜ˆ์ •์ด๋ฉฐ, ์ฝ˜์†”์˜ Webhook ๋ฉ”๋‰ด๋ฅผ ํ†ตํ•œ Aptos Webhook ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์€ ์ •์‹ ๋ฒ„์ „์—์„œ ์ฐจํ›„ ์ง€์› ์˜ˆ์ •์ด์˜ค๋‹ˆ ๋งŽ์€ ํ”ผ๋“œ๋ฐฑ์„ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.


Aptos Webhook - Event Types

Aptos Webhook์€ EVENT์™€ TRANSACTION์˜ ๋‘๊ฐ€์ง€ Event Type์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ Event Type์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐ ์ œ๋ชฉ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ API Reference๋ฅผ ํ™•์ธํ•ด์ฃผ์„ธ์š”.


์ง€์ •ํ•œ Event๋ฅผ ํฌํ•จํ•œ ํŠธ๋žœ์žญ์…˜์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ Event์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ Notification์œผ๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Aptos Explorer ์˜ Events ํƒญ์—์„œ ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ํ™•์ธ๋˜๋Š” Account Address์™€ Type ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ง€์ •ํ•œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” Transaction์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํŠธ๋žœ์žญ์…˜ ์ฃผ์š” ๋ฐ์ดํ„ฐ๊ฐ€ Notification์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. Event ํƒ€์ž…๊ณผ ๋™์ผํ•˜๊ฒŒ Event์˜ Account Address์™€ Event Type์„ ํ•„ํ„ฐ๋ง ์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ์ „๋‹ฌ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ•ด๋‹น ์ด๋ฒคํŠธ๋ฅผ ํฌํ•จํ•œ Transaction ๋ฐ์ดํ„ฐ๋ผ๋Š” ์ ์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋กœ, ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด Payload์— ํฌํ•จ๋œ Function ํ•„๋“œ๋ฅผ ํ•„ํ„ฐ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐํฌํ•œ ๋ชจ๋“ˆ์—์„œ ํŠน์ • Function์ด ํ˜ธ์ถœ๋  ๋•Œ ๋งˆ๋‹ค Notification์„ ๋ฐ›๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ ์œ ์šฉํ•˜๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


[Use-case 1] Get Event Notification + Module Event Filtering

Webhook ์ƒ์„ฑํ•˜๊ธฐ

Aptos Explorer์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์กฐํšŒ๋˜๋Š” Transaction Event์— ๋Œ€ํ•ด, ํ•ด๋‹น Event๊ฐ€ ๋ฐœ์ƒํ• ๋•Œ๋งˆ๋‹ค Event Notification์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” Webhook์„ ์ƒ์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

curl --location 'https://web3.nodit.io/v1/aptos/mainnet/webhooks' \
--header 'X-API-KEY: {YOUR_API_KEY}' \
--header 'Content-Type: application/json' \
--data '{
  "eventType": "EVENT",
   "description": "Event Webhook Example",
  "notification": {
    "webhookUrl": "{YOUR_WEBHOOK_ENDPOINT}"
  },
  "condition": {
    "eventType": "0x6d138096fb880d1c16b48f10686b98a96000c0ac18501425378f784c6b81c34d::eragon_lucky_wheel::EragonLuckyWheelEvent",
    "eventAccountAddress": "0x0" //Set eventAccountAddress as '0x0' for Module Event
  }
}'

์š”์ฒญ์ด ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋œ ๊ฒฝ์šฐ, ์•„๋ž˜์™€ ๊ฐ™์€ ์‘๋‹ต์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

{
    "subscriptionId": "5116",
    "description": "Event Webhook Example",
    "protocol": "aptos",
    "network": "mainnet",
    "eventType": "EVENT",
    "notification": {
        "webhookUrl": "{YOUR_WEBHOOK_ENDPOINT}"
    },
    "signingKey": "{MESSAGE_SIGNING_KEY}", //signingKey field is returned only once in creation time.
    "condition": {
        "eventType": "0x6d138096fb880d1c16b48f10686b98a96000c0ac18501425378f784c6b81c34d::eragon_lucky_wheel::EragonLuckyWheelEvent",
        "eventAccountAddress": "0x0"
    },
    "createdAt": "2025-01-08T01:33:24.344Z"
}

Webhook Event ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ 

์ •์˜ํ•œ Event ๋ฐœ์ƒ์‹œ, ์•„๋ž˜์™€ ๊ฐ™์€ EVENT Webhook ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

{
  "subscriptionId": "5116",
  "sequenceNumber": "5",
  "description": "Event Webhook Example",
  "protocol": "APTOS",
  "network": "MAINNET",
  "subscriptionType": "WEBHOOK",
  "notification": {
    "webhookUrl": "{YOUR_WEBHOOK_ENDPOINT}"
  },
  "signingKey": "{MESSAGE_SIGNING_KEY}",
  "eventType": "EVENT",
  "event": {
    "eventType": "0x6d138096fb880d1c16b48f10686b98a96000c0ac18501425378f784c6b81c34d::eragon_lucky_wheel::EragonLuckyWheelEvent",
    "eventAccountAddress": "0x0",
    "payloadFunction": null,
    "messages": [
      {
        "guid": {
          "creation_number": "0",
          "account_address": "0x0"
        },
        "sequence_number": "0",
        "type": "0x6d138096fb880d1c16b48f10686b98a96000c0ac18501425378f784c6b81c34d::eragon_lucky_wheel::EragonLuckyWheelEvent",
        "data": {
          "fee_type": "2",
          "player_addr": "0xff805a23fff95f10712afe3153088138918de280479b3cbe50893b6d855b4716",
          "roll_result": {
            "pool_id": "1805",
            "reward_results": [
              {
                "amount": "187500000",
                "rand": "1",
                "reward_type": {
                  "coin_name": {
                    "vec": []
                  },
                  "name": "EGON",
                  "type_id": "1"
                }
              }
            ],
            "season_id": "8"
          },
          "ts": "1736299947"
        },
        "event_index": 3,
        "version": "2169419008"
      }
    ]
  },
  "createdAt": "2025-01-08T01:41:47.994681028Z"
}

[Use-case 2] Get Transaction Notification + Module Event Filtering

Webhook ์ƒ์„ฑํ•˜๊ธฐ

์œ„์˜ Use-case 1๊ณผ ๋™์ผํ•œ Event ํ•„ํ„ฐ๋ง์„ ์‚ฌ์šฉํ•˜์—ฌ, Transaction ํƒ€์ž…์˜ Webhook์„ ์ƒ์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. eventType์„ TRANSACTION์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Module Event์˜ ํŠน์„ฑ์— ๋”ฐ๋ผ eventAccountAddress ๊ฐ’์€ ํ•ญ์ƒ 0x0์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

curl --location 'https://web3.nodit.io/v1/aptos/mainnet/webhooks' \
--header 'X-API-KEY: {YOUR_API_KEY}' \
--header 'Content-Type: application/json' \
--data '{
  "eventType": "TRANSACTION",
   "description": "Event Webhook Example",
  "notification": {
    "webhookUrl": "{YOUR_WEBHOOK_ENDPOINT}"
  },
  "condition": {
    "eventType": "0x6d138096fb880d1c16b48f10686b98a96000c0ac18501425378f784c6b81c34d::eragon_lucky_wheel::EragonLuckyWheelEvent",
    "eventAccountAddress": "0x0" 
  }
}'

Webhook Event ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ 

์ •์˜ํ•œ Event ๋ฐœ์ƒ์‹œ, ์•„๋ž˜์™€ ๊ฐ™์€ TRANSACTION Webhook ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

{
  "subscriptionId": "5118",
  "sequenceNumber": "10",
  "description": "Event Webhook Example",
  "protocol": "APTOS",
  "network": "MAINNET",
  "subscriptionType": "WEBHOOK",
  "notification": {
    "webhookUrl": "{YOUR_WEBHOOK_ENDPOINT}"
  },
  "signingKey": "{MESSAGE_SIGNING_KEY}",
  "eventType": "EVENT",
  "event": {
    "eventType": "0x6d138096fb880d1c16b48f10686b98a96000c0ac18501425378f784c6b81c34d::eragon_lucky_wheel::EragonLuckyWheelEvent",
    "eventAccountAddress": "0x0",
    "payloadFunction": null,
    "messages": [
      {
        "guid": {
          "creation_number": "0",
          "account_address": "0x0"
        },
        "sequence_number": "0",
        "type": "0x6d138096fb880d1c16b48f10686b98a96000c0ac18501425378f784c6b81c34d::eragon_lucky_wheel::EragonLuckyWheelEvent",
        "data": {
          "fee_type": "2",
          "player_addr": "0xff805a23fff95f10712afe3153088138918de280479b3cbe50893b6d855b4716",
          "roll_result": {
            "pool_id": "1802",
            "reward_results": [
              {
                "amount": "250000000",
                "rand": "0",
                "reward_type": {
                  "coin_name": {
                    "vec": []
                  },
                  "name": "EGON",
                  "type_id": "1"
                }
              }
            ],
            "season_id": "4"
          },
          "ts": "1736300016"
        },
        "event_index": 3,
        "version": "2169423135"
      }
    ]
  },
  "createdAt": "2025-01-08T01:41:53.302093184Z"
}

[Use-case 3] Get Transaction Notification + Function Filtering

Webhook ์ƒ์„ฑํ•˜๊ธฐ

Aptos Explorer์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์กฐํšŒ๋˜๋Š” Transaction์— ๋Œ€ํ•ด, ํ•ด๋‹น Function์„ ์‹คํ–‰ํ•˜๋Š” Transaction์ด ๋ฐœ์ƒํ• ๋•Œ๋งˆ๋‹ค Transaction Notification์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” Webhook์„ ์ƒ์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. condition ์˜์—ญ์— payloadFunction์„ ์‚ฌ์šฉํ•œ ์กฐ๊ฑด์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

curl --location 'https://web3.nodit.io/v1/aptos/mainnet/webhooks' \
--header 'X-API-KEY: {YOUR_API_KEY}' \
--header 'Content-Type: application/json' \
--data '{
  "eventType": "TRANSACTION",
   "description": "Transaction Monitoring Example",
  "notification": {
    "webhookUrl": "{YOUR_WEBHOOK_ENDPOINT}"
  },
  "condition": {
    "payloadFunction":"0x6d138096fb880d1c16b48f10686b98a96000c0ac18501425378f784c6b81c34d::eragon_lucky_wheel::roll_premium"
  }
}'

Webhook Event ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ 

์ •์˜ํ•œ Transaction ๋ฐœ์ƒ์‹œ, ์•„๋ž˜์™€ ๊ฐ™์€ TRANSACTION Webhook ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

{
  "subscriptionId": "5118",
  "sequenceNumber": "1",
  "description": "Transaction Monitoring Example",
  "protocol": "APTOS",
  "network": "MAINNET",
  "subscriptionType": "WEBHOOK",
  "notification": {
    "webhookUrl": "{YOUR_WEBHOOK_ENDPOINT}"
  },
  "signingKey": "{MESSAGE_SIGNING_KEY}",
  "eventType": "TRANSACTION",
  "event": {
    "eventType": null,
    "eventAccountAddress": null,
    "payloadFunction": "0x6d138096fb880d1c16b48f10686b98a96000c0ac18501425378f784c6b81c34d::eragon_lucky_wheel::roll_premium",
    "messages": [
      {
        "version": "2169481647",
        "hash": "0xa4800cb8dc47dd17dc0109978b6a3535fa81c4b7108ed7378f84d7303c86ec65",
        "state_change_hash": "0xc92c3b36a2f8c71adf03548f6337523bbf778ebe4c327727500d6103abffb45f",
        "event_root_hash": "0x81baf5f07f652226e71fe1db9626514c40c4cf09d169418fe343ebe35a3bd450",
        "state_checkpoint_hash": null,
        "gas_used": "100",
        "success": true,
        "vm_status": "Executed successfully",
        "accumulator_root_hash": "0xb24d09e8a7bcf5d3aa5190a9244d52f7e825f2c2817df71346fcf1ae2d18891f",
        "timestamp": "1736300997734354",
        "type": "user_transaction",
        "events": [
          {
            "guid": {
              "creation_number": "3",
              "account_address": "0x51d80258f923cb3e9ac7246f73d54f4855aa973300d57d4b4423b7ba4545494f"
            },
            "sequence_number": "4",
            "type": "0x1::coin::WithdrawEvent",
            "data": {
              "amount": "20000"
            }
          },
          {
            "guid": {
              "creation_number": "2",
              "account_address": "0xda1cf5a5dacb3e8902be6ba8a17366edee2bb0316239e39c82bb9cfefa407bdd"
            },
            "sequence_number": "789050",
            "type": "0x1::coin::DepositEvent",
            "data": {
              "amount": "20000"
            }
          },
          {
            "guid": {
              "creation_number": "0",
              "account_address": "0x0"
            },
            "sequence_number": "0",
            "type": "0x1::randomness::RandomnessGeneratedEvent",
            "data": {
              "dummy_field": false
            }
          },
          {
            "guid": {
              "creation_number": "0",
              "account_address": "0x0"
            },
            "sequence_number": "0",
            "type": "0x6d138096fb880d1c16b48f10686b98a96000c0ac18501425378f784c6b81c34d::eragon_lucky_wheel::EragonLuckyWheelEvent",
            "data": {
              "fee_type": "2",
              "player_addr": "0x51d80258f923cb3e9ac7246f73d54f4855aa973300d57d4b4423b7ba4545494f",
              "roll_result": {
                "pool_id": "1800",
                "reward_results": [
                  {
                    "amount": "15625000",
                    "rand": "0",
                    "reward_type": {
                      "coin_name": {
                        "vec": []
                      },
                      "name": "EGON",
                      "type_id": "1"
                    }
                  }
                ],
                "season_id": "2"
              },
              "ts": "1736300994"
            }
          },
          {
            "guid": {
              "creation_number": "0",
              "account_address": "0x0"
            },
            "sequence_number": "0",
            "type": "0x1::transaction_fee::FeeStatement",
            "data": {
              "execution_gas_units": "55",
              "io_gas_units": "18",
              "storage_fee_octas": "2840",
              "storage_fee_refund_octas": "0",
              "total_charge_gas_units": "100"
            }
          }
        ],
        "sender": "0x51d80258f923cb3e9ac7246f73d54f4855aa973300d57d4b4423b7ba4545494f",
        "sequence_number": "82",
        "max_gas_amount": "8000",
        "gas_unit_price": "100",
        "expiration_timestamp_secs": "1736301025",
        "payload": {
          "type": "entry_function_payload",
          "function": "0x6d138096fb880d1c16b48f10686b98a96000c0ac18501425378f784c6b81c34d::eragon_lucky_wheel::roll_premium",
          "type_arguments": [],
          "arguments": [
            "2",
            "1800",
            "1736294400",
            "1736300994",
            0,
            "0xe64b1cd1b716e7712a8f72b328d35b0e315a2b2b6a97e4b83976f41722ff1a110e1c38ccc85efb088e84656a1a1698a64f65cf8bafda7bbcce9bb53fdf42c555"
          ]
        },
        "signature": {
          "public_key": "0x1b68747470733a2f2f6163636f756e74732e676f6f676c652e636f6d2094e0fc7cc768ec27131cc5aff5761661f9319724682f4d67de2fc40804fdc00d",
          "signature": "0x00000c093c9f86290b057b8879cbde3115f7128937dd4b7d61daf5ec677322c8060c03707a56557ccc4585df61a9223e2cbf906054f7a77046448b436a3c2abb932b80b3ed46ea422b5074496741daf8f90fcc40af218bdd105c3ae6393cfb83e6af9c6ce2d501dfaabf32e0feb381ef6d4c122ddfb7c1652dce093d42fccd793f9e80969800000000000000010040069e136e81568113840f8964098399359af6250b8b5ca3fe85252fc70741742fefee5eebd2ff68cdd577c9ead8c999680368e7a22d512d0f6b6df7c8c0a0240c4c7b22616c67223a225253323536222c226b6964223a2238396365333539386334373361663162646134626666393565366338373336343530323036666261222c22747970223a224a5754227d1043906700000000002005349470e9e605ccb999c8ce168cb88534d0a504b1209b8df1efabfb3cbe738c00404879c3f371d42303a7e7e9666bb1245a3867bc035ff8e362b560bd35faf27b55fc6976279fa7695c6d34a6b413e8a4144919c8da6fb5ec412b0cb6ddce512203",
          "type": "single_sender_keyless_signature"
        }
      }
    ]
  },
  "createdAt": "2025-01-08T01:57:29.036855468Z"
}

[Use-case 4] Get Event Notification + Event-Handle Event Filtering

Webhook ์ƒ์„ฑํ•˜๊ธฐ

Aptos Webhook์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ Event ํ•„ํ„ฐ๋ง์€ Module Event๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Deprecated ๋œ Aptos Event-Handle Event์—๋„ ๋™์ผํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Module-Event ์ด์ „์— ๊ฐœ๋ฐœ๋œ App์˜ ๊ฒฝ์šฐ Event-Handle Event์— ์ ์ ˆํ•œ ํ˜•์‹์˜ ํ•„ํ„ฐ๋ง ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€, eventAccountAddressํ•„๋“œ๊ฐ€ 0x0๊ฐ€ ์•„๋‹Œ ์‹ค์ œ ์ฃผ์†Œ๊ฐ’์œผ๋กœ ์„ค์ •๋œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ์˜ˆ์‹œ๋กœ, Explorer์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์กฐํšŒ๋˜๋Š” ํŠธ๋žœ์žญ์…˜์˜ Event๋ฅผ ํ•„ํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•œ Webhook์„ ์ƒ์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

curl --location 'https://web3.nodit.io/v1/aptos/mainnet/webhooks' \
--header 'X-API-KEY: {YOUR_API_KEY}' \
--header 'Content-Type: application/json' \
--data '{
  "eventType": "EVENT",
   "description": "Pyth Event Monitoring",
  "notification": {
    "webhookUrl": "{YOUR_WEBHOOK_ENDPOINT}"
  },
  "condition": {
    "eventType":"0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
    "eventAccountAddress": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387" 
  }
}'

Webhook Event ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ 

์„ค์ •ํ•œ Event ๋ฐœ์ƒ์‹œ, ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

{
  "subscriptionId": "5119",
  "sequenceNumber": "75",
  "description": "Pyth Event Monitoring",
  "protocol": "APTOS",
  "network": "MAINNET",
  "subscriptionType": "WEBHOOK",
  "notification": {
    "webhookUrl": "{YOUR_WEBHOOK_ENDPOINT}"
  },
  "signingKey": "{MESSAGE_SIGNING_KEY}",
  "eventType": "EVENT",
  "event": {
    "eventType": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
    "eventAccountAddress": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387",
    "payloadFunction": null,
    "messages": [
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468836",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "234838",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "99971586",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "195547",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "99971886",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0x9a2a116d85a31d6f1bed19771105557276457094e31791a892758148aa54023d"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 0,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468837",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "3352335500",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "350752580000",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "2902657137",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "350291158371",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0x4dcc2fb96fb89a802ef9712f6bd2246d3607cf95ca5540cb24490d37003f8c46"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 1,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468838",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "180362",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "99942946",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "304341",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "99939341",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0xa6a0dfa49b6b3a93510658245618099f5e842514970f596cf64fad9e0d658193"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 2,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468839",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "15895071200",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "357641870000",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "15055248528",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "356845435582",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0x9ee4e7c60b940440a261eb54b6d8149c23b580ed7da3139f7f08f4ea29dad395"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 3,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468840",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "1346457000",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "350258670000",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "1746848039",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "349583919730",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0x06c217a791f5c4f988b36629af4cb88fad827b2485400a358f3b02886b54de92"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 4,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468841",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "6127373",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "956626530",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "6691499",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "946516066",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0xb29276972267db5d64ae718fb7f107ad9e72a79cabf9992f0e9bc75ad451a7f6"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 5,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468842",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "1014955470",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "339437600000",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "1104490110",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "338804385920",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0x9d4294bbcd1174d6f2003ec365831e64cc31d9f6f15a2b85399db8d5000960f6"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 6,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468843",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "204016",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "107334051",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "157431",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "107313761",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0xe393449f6aff8a4b6d3e1165a7c9ebec103685f3b41e60db4277b5b6d10e7326"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 7,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468844",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "153836",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "39214667",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "130837",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "39039382",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0x74e3fbb0d33e0ed8c0078b56134dcebdae38852f0858a8ea4de4c5ea7474bd42"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 8,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468845",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "10362685400",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "9680309200000",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "10501211278",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "9675466206597",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0xc9d8b075a5c69303365ae23633d4e085199bf5c520a3b90fed1322a0342ffc33"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 9,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468846",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "46260381",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "70121339000",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "47452530",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "69981697027",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0x2f95862b045670cd22bee3114c39763a4a08beeb663b145d283c31d7d1101c4f"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 10,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468847",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "44693",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "36001855",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "39789",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "35635472",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0xe5b274b2611143df055d6e7cd8d93fe1961716bcd4dca1cad87a83bc1e78c1ef"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 11,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468848",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "297104",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "481114450",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "271123",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "477899855",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0x23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 12,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468849",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "324560",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "251324548",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "301939",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "249981828",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0x2356af9529a1064d41e32d617e2ce1dca5733afa901daba9e2b68dee5d53ecf9"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 13,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468850",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "100433",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "99979020",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "87934",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "99974580",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0x2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 14,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468851",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "61199",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "99999499",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "56108",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "99999200",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 15,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468852",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "16159704",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "20152610000",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "14913673",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "20124366687",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0xef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 16,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468853",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "172690023",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "339442400000",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "178628430",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "339085582666",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 17,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468854",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "4611122100",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "9692660800000",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "4578141305",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "9689752951397",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 18,
        "version": "2169519450"
      },
      {
        "guid": {
          "creation_number": "2",
          "account_address": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"
        },
        "sequence_number": "518468855",
        "type": "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387::event::PriceFeedUpdate",
        "data": {
          "price_feed": {
            "ema_price": {
              "conf": "1177942",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "957660260",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price": {
              "conf": "1030021",
              "expo": {
                "magnitude": "8",
                "negative": true
              },
              "price": {
                "magnitude": "948805100",
                "negative": false
              },
              "timestamp": "1736301594"
            },
            "price_identifier": {
              "bytes": "0x03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5"
            }
          },
          "timestamp": "1736301596189355"
        },
        "event_index": 19,
        "version": "2169519450"
      }
    ]
  },
  "createdAt": "2025-01-08T02:05:39.068952231Z"
}

Aptos Webhook ์‚ฌ์šฉ์‹œ ์–ด๋ ค์›€์ด ์žˆ์œผ์‹ ๊ฐ€์š”?

์ด ํŽ˜์ด์ง€์˜ ๊ฐ€์ด๋“œ๋ฅผ ํ†ตํ•ด Aptos Webhook์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์–ด๋ ค์›€์ด ์žˆ์œผ์‹œ๋‹ค๋ฉด, ์ƒ๋‹จ ๋ฉ”๋‰ด์˜ Q&A ์ฑ„๋„์„ ํ†ตํ•ด ๋ฌธ์˜๋ฅผ ๋‚จ๊ฒจ์ฃผ์„ธ์š”. Aptos Webhook์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ๋„ ์–ธ์ œ๋‚˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!