폴리곤(Polygon)은 이더리움 네트워크의 확장성과 상호운용성을 강화하기 위해 설계된 Layer2 솔루션 및 멀티체인 플랫폼입니다. 플라즈마 체인(Plasma Chain)과 PoS(Proof of Stake) 기반 네트워크를 통해 빠르고 저렴한 트랜잭션을 제공하며, zk-Rollup과 Optimistic Rollup 등 다양한 확장 기술을 지원합니다.
↗ 공식사이트: Polygon Labs
↗ Explorer: Polygon Scan
↗ Faucet: Polygon Testnet Faucet
Feature | Mainnet Support | Testnet(Amoy) Support |
---|---|---|
Elastic Node | ✅ | ✅ |
Dedicated Node | ✅ | ✅ |
Web3 Data API | ✅ | ✅ |
Webhook | ✅ | ✅ |
Stream | ✅ | ✅ |
Datasquare | ❌ | ❌ |
Node API
Network | Endpoint |
---|---|
Mainnet | https://polygon-mainnet.nodit.io/{{API-KEY}} |
Testnet | https://polygon-amoy.nodit.io/{{API-KEY}} |
-
Example
-
Request (Node.js)
const axios = require('axios'); let data = JSON.stringify({ "id": 1, "jsonrpc": "2.0", "method": "eth_getTransactionCount", "params": [ "0x715b81007e19929Fb91764ac1EB8657A63d64d68", "latest" ] }); let config = { method: 'post', maxBodyLength: Infinity, url: 'https://polygon-mainnet.nodit.io/', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'X-API-KEY': '{{API-KEY}}' }, data : data }; axios.request(config) .then((response) => { console.log(JSON.stringify(response.data)); }) .catch((error) => { console.log(error); });
-
Response
{ "jsonrpc": "2.0", "id": 1, "result": "0x2" }
-
Web3 Data API
-
Statistics API (❗️ Polygon에서는 Get Account Stats API 만 제공됩니다.)
-
Example
-
Request (Node.js)
const axios = require('axios'); let data = JSON.stringify({ "accountAddress": "0x715b81007e19929Fb91764ac1EB8657A63d64d68", "contractAddresses": [ "0xc2132D05D31c914a87C6611C10748AEb04B58e8F" ], "relation": "both", "fromBlock": "earliest", "toBlock": "latest", "withZeroValue": true, "page": 1, "rpp": 50, "withCount": true }); let config = { method: 'post', maxBodyLength: Infinity, url: 'https://web3.nodit.io/v1/polygon/mainnet/token/getTokenTransfersByAccount', headers: { 'Content-Type': 'application/json', 'X-API-KEY': '{{API-KEY}}' }, data : data }; axios.request(config) .then((response) => { console.log(JSON.stringify(response.data)); }) .catch((error) => { console.log(error); });
-
Response
{ "rpp": 50, "page": 1, "count": 2, "items": [ { "from": "0x715b81007e19929Fb91764ac1EB8657A63d64d68", "to": "0xAB17d373D58E30fE67091C43eA5AF47Ed9ab9072", "value": "1000000", "timestamp": 1706855206, "blockNumber": 53027451, "transactionHash": "0x99a04992149c571571370ca78086ebd38c39d9091530108990b823f25deeb6b3", "logIndex": 410, "contract": { "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", "deployedTransactionHash": "0xa914744cbbf5b84af4ac19bf0b2cba86d961f52ce06ff65db62d89f450e00671", "deployedAt": "2020-09-07T21:07:27.000Z", "deployerAddress": "0xdcFAE11C70F1575faB9d6Bd389a6188aE5524A56", "logoUrl": null, "type": "ERC20", "name": "(PoS) Tether USD", "symbol": "USDT", "totalSupply": "697865613324734", "decimals": 6 } }, { "from": "0x43bF78a82Bbc334b42dC2f9708D667d6aDE79eC6", "to": "0x715b81007e19929Fb91764ac1EB8657A63d64d68", "value": "1000000", "timestamp": 1703862954, "blockNumber": 51702654, "transactionHash": "0xc303d993adb0b555dc6e602ce9e5ae6ad3bfca7d238dffdbad57821d7369532e", "logIndex": 416, "contract": { "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F", "deployedTransactionHash": "0xa914744cbbf5b84af4ac19bf0b2cba86d961f52ce06ff65db62d89f450e00671", "deployedAt": "2020-09-07T21:07:27.000Z", "deployerAddress": "0xdcFAE11C70F1575faB9d6Bd389a6188aE5524A56", "logoUrl": null, "type": "ERC20", "name": "(PoS) Tether USD", "symbol": "USDT", "totalSupply": "697865613324734", "decimals": 6 } } ] }
-
Webhook
Supported Webhook Types
Event Type | Description |
---|---|
ADDRESS_ACTIVITY | 사용자가 지정한 주소 배열에 포함된 계정들의 활동을 모니터링합니다. 이 이벤트는 해당 계정들이 트랜잭션의 발신자(from) 또는 수신자(to)로 포함되어 있는 경우, 즉 트랜잭션, 토큰 전송(ERC20), 또는 NFT 전송(ERC721, ERC1155)이 발생할 때마다 알림을 제공합니다. 이 서비스는 사용자가 다수의 주소에 대한 활동을 실시간으로 파악할 수 있게 해 주어, 자산의 이동과 거래를 효과적으로 추적할 수 있도록 돕습니다. |
MINED_TRANSACTION | 특정 주소가 발송한 트랜잭션이 블록체인 네트워크에 의해 성공적으로 채굴되고 최종적으로 확인되었을 때, 그 트랜잭션의 영수증(receipt) 정보를 알림으로 제공합니다. 이 이벤트는 트랜잭션이 성공적으로 처리된 경우, 그리고 실패한 경우 모두 알림을 받을 수 있습니다. 사용자는 이를 통해 자신이 발송한 트랜잭션의 최종 상태를 실시간으로 파악할 수 있으며, 트랜잭션의 성공 또는 실패 여부를 확인할 수 있습니다. |
SUCCESSFUL_TRANSACTION | 특정 주소가 발송한 트랜잭션이 성공적으로 처리되었을 때 알림을 제공합니다. 이 이벤트는 트랜잭션이 블록체인 네트워크에 의해 완전히 확인되고 유효한 것으로 판정될 때 발생합니다. 사용자는 이를 통해 자신의 트랜잭션이 예상대로 실행되어 결과적으로 원하는 작업이 성공적으로 완료되었음을 확인할 수 있습니다. |
FAILED_TRANSACTION | 특정 주소가 발송한 트랜잭션이 실패했을 때 알림을 제공합니다. 이 이벤트는 트랜잭션이 블록체인 네트워크에 의해 거부되거나, 실행 중 오류가 발생하여 완료되지 못했을 경우 발생합니다. 이를 통해 사용자는 트랜잭션 실패의 원인을 신속하게 파악하고, 필요한 조치를 취할 수 있습니다. 실패 이윤이 가스 부족, 계약 조건 불충족 등 다양한 기술적 문제로 인해 발생할 수 있으며, 이 이벤트는 블록체인 상의 트랜잭션 관리와 오류 추적을 보다 효과적으로 수행할 수 있게 도와줍니다. |
TOKEN_TRANSFER | 토큰(ERC20) 전송 또는 NFT(ERC721, ERC1155) 전송이 발생할 경우 알림을 제공합니다. 사용자는 특정 컨트랙트 주소를 지정하여 해당 컨트랙트에서 발생하는 토큰 이동을 모니터링할 수 있습니다. 또한, ERC721과 ERC1155 표준에 따른 NFT의 경우, 특정 토큰 ID를 조건으로 설정하여 해당 ID의 토큰 전송만을 추적하는 것이 가능합니다. |
BELOW_THRESHOLD_BALANCE | 지정된 계정의 잔고가 사용자가 설정한 특정 수치 이하로 떨어질 경우 알림을 제공합니다. 이 이벤트는 특히 재정 관리와 자산 보호에 중요한 역할을 합니다. 사용자는 이 기능을 통해 자신의 계정이 최소 잔고 아래로 떨어지지 않도록 예방 조치를 취할 수 있으며, 필요한 경우 적시에 추가 자금을 이체하거나 다른 금융 조치를 취할 수 있습니다. |
BLOCK_PERIOD | 네트워크에서 생성되는 블록의 주기에 따라 알림을 제공합니다. 사용자는 원하는 블록 주기(예: 매 블록, N개의 블록마다)를 설정하여 해당 주기에 맞춰 블록 정보를 받을 수 있습니다. 이 이벤트는 특정 수의 블록이 확인된 후에 정보를 제공함으로써, 더욱 안정적이고 확정된 데이터를 제공합니다. |
BLOCK_LIST_CALLER | 특정 주소 목록(block list)에 포함된 주소들이 대상 주소(target address)로 토큰을 전송할 때 알림을 제공합니다. 이 이벤트 타입은 주로 사전에 정의된 블록 리스트에 있는 주소들의 활동을 모니터링하고 싶을 때 활용됩니다. 예를 들어, 블랙리스트에 올라간 주소들이 특정 계정으로 자금을 이체하려고 시도할 때 즉시 경고를 받을 수 있습니다. 이를 통해 불법적이거나 의심스러운 자금 이동을 사전에 감지할 수 있는 유용한 도구입니다. |
ALLOW_LIST_CALLER | 허용 리스트(allow list)에 포함된 주소들이 대상 주소로 토큰을 전송할 때 알림을 제공합니다. 이 리스트에는 신뢰할 수 있는 주소들이 포함되어 있으며, 해당 주소들로부터의 자금 이동은 안전하거나 예상된 활동으로 간주됩니다. 이 이벤트 타입은 허용된 주소들의 활동을 추적하고, 허용 리스트에 포함된 주소로부터의 자금 이체를 확증하고자 할 때 사용됩니다. |
LOG | 지정한 스마트 컨트랙트 이벤트 로그가 포함된 트랜잭션이 생성될 때 알림을 제공합니다. 사용자는 하나 이상의 Event signature를 필터 조건으로 지정할 수 있습니다. 예를 들어, ERC20 표준의 토큰 전송 이벤트인 Transfer(address,address,uint256)를 모니터링하도록 설정하면, 해당 Event signature(0xddf252ad...)와 일치하는 모든 트랜잭션 로그가 캡처됩니다. LOG EventType을 활용하여 표준 토큰 전송 또는 특정 스마트 계약 이벤트와 같은 중요한 활동을 효율적으로 추적할 수 있습니다. |