Pangea Docs

Pangea provides two key features: Real-time and Historical data.

Our data is fine-grained, open and shows every swap and position on Uniswap V2 and Uniswap V3 based DEXs.

Client Access

For early access you can apply here.

Credentials setup

You will have received a username and password. The examples in these docs export the following environment variables.

export PANGEA_USERNAME=<username>
export PANGEA_PASSWORD=<password>
export PANGEA_AUTH=$(echo -n "$PANGEA_USERNAME:$PANGEA_PASSWORD" | base64 -w 0)

Get started with our API

Currently, clients consume data from the API over HTTP or WebSockets with common data formats CSV, JSON and Arrow-IPC.

Ready to get started?

API

All API examples use curl. A WebSocket client will be released soon, please get in touch for early access.

For real-time use WebSockets API and for historical use HTTP or WebSockets API.

Make a request

curl -s --location --request GET \
    "https://app.pangea.foundation/v1/api/status" \
    --header "Accept: application/jsonstream" \
    --header "Authorization: Basic $PANGEA_AUTH" | jq -s

Status is the health endpoint for chains and toolboxes that contain availability, syncing and block height.

Response

[
    {
        "type": "Chain",
        "chain": 1,
        "chain_code": "ETH",
        "chain_name": "Ethereum",
        "service": "chain",
        "entity": "block",
        "latest_block_height": 17572170,
        "timestamp": 1687886916,
        "status": "Ok"
    },
    ...
]

Query Parameters

All available chains and endpoints can be found by making a request to our /status endpoint, which should be called without any query parameters.

A chain parameter (?chain=ETH for example) is required for all other endpoints.
chain can also accept the EIP-155 chain ID 1 or our name Ethereum.

Support for multiple chains per request will be announced soon.

All requests default block filters on the latest block ?from_block=latest&to_block=latest. Set from_block to 0 to filter the whole chain ?from_block=0.

Filtering on other fields can be done directly on the field or by using a few conventions, using token0 as the example:

  • Filter directly by token0=0x....
  • Filter on a list by affixing __in comma separated by token0__in=0x1..,0x2...
  • Filter on a value greater than or equal to by affixing __gte
  • Filter on a value less than or equal to by affixing __lte

Response Format

Supported formats are JSON, JSON-LINES, CSV, Arrow-IPC

JSON is limited by block range, use JSON-LINES, CSV or Arrow-IPC for larger block ranges

Format can be specifed in two ways, by query parameter or Accept header. The query parameter takes precedence over Accept header.

?format=json_stream

--header "Accept: application/jsonstream"

Query parameter values

json, json_stream, csv, arrow

Accept headers

--header "Accept: text/csv"
--header "Accept: application/json"
--header "Accept: application/jsonstream"
--header "Accept: application/vnd.apache.arrow.stream"

Early Access

These datasets are currently in our Beta environment. If you would like early access you can apply here

Blocks

Fetch Ethereum block data for blocks 17000000 to 17000010.

curl -s --location --request GET \
 "https://app.pangea.foundation/v1/api/blocks?chains=ETH&from_block=17000000&to_block=17000010" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 1,
    "block_number": "0x103664a",
    "hash": "0x5bad63a542b4deebf2d8ba93bf83b98a96ac4693640dfc3c2ccec38c3adc2bf2",
    "parent_hash": "0xe284afd9d7793371fefa661de0cfe9e7eafd47c9634834d384dac97dfefc3cbf",
    "uncles_hash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
    "miner": "0x6d2e03b7effeae98bd302a9f836d0d6ab0002766",
    "state_root": "0x61e2f2ee1df07942e84f94fafb826fddff381e1a82a8652d01999cdfd1894be9",
    "transactions_root": "0xcdfc28cae2dc1b46abca4a4da51c31e98af2e570ee42b2ad5926074162157ec3",
    "receipts_root": "0xb9efc1da0504fce1cb5149a678088563fcd16cf82b29df0e5568f39820d53460",
    "gas_used": "0xe27ff1",
    "gas_limit": "0x1c9c380",
    "base_fee_per_gas": "0x56767072e",
    "extra_data": "0x6279206275696c64657230783639",
    "logs_bloom": "0x09259370d316ab0c5c8406758195932900a878131598e3646645ada6b6e01bb656a5137a926a980feddb3b036a860b9e163b34adabd0ea97675173c995fe2081d712c0004fb028beabb3f74f4832b57ed30747b1906d3a61d01064cdc8f90c41b7bb0ec9be5aa23a0e8dd9c01b84a86b9137b54e0678f6a01e1a5b7213af81ce734a5453e665785015d369088586913bb70785b7f9ac25a8437983d80313bccb8aed91c33785795e0607ceffdb5aee541e006a9560a6a973c3400b1ac121c95f7618f08ad96082d1a0c0e8ab762b9cd2d74ce376848a7e11026478a288bcec8132fcabbf8d10c084768c909d8d92688147128009392a4dfa00def95b80979c90",
    "timestamp": 1680912011,
    "difficulty": "0x0",
    "total_difficulty": "0xc70d815d562d3cfa955",
    "size": "0x195ea",
    "mix_hash": "0xe59ae8bea3febedcfb6c7cadcefe9b21d562951988b114a87f710702c3a004fc",
    "nonce": "0x0000000000000000"
  }
]

Query Parameters

v1/api/blocks

  • chains: Filters the data by specific blockchain networks.
  • from_block: Filters the data by a starting block number.
  • to_block: Filters the data by an ending block number.

Transactions

Fetch Ethereum transactions for blocks 17000000 to 17000010.

curl -s --location --request GET \
 "https://app.pangea.foundation/v1/api/transactions?chains=ETH&from_block=17000000&to_block=17000010" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 1,
    "block_number": "0x103664a",
    "block_hash": "0x5bad63a542b4deebf2d8ba93bf83b98a96ac4693640dfc3c2ccec38c3adc2bf2",
    "transaction_index": 253,
    "hash": "0xae76e4d852d8a9d9ebba99787c1ba5859b68bb90a2712cb3e5ce7505a1f8898a",
    "nonce": "0x280",
    "from": "0xe340b00b6b622c136ffa5cff130ec8edcddcb39d",
    "to": "0xb748952c7bc638f31775245964707bcc5ddfabfc",
    "value": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "gas_price": "0x56becd566",
    "gas": "0x169c83",
    "input": "0x3698d492000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000d533a949740bb3306d119cc777fa900ba034cd5200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bcca60bb61934080951369a648fb03df4f96263c00000000000000000000000000000000000000000000000000000000b93ece4b000000000000000000000000000000000000000000000000000000006430bc4d000000000000000000000000000000000000000000000000000000000000001cb1819b65f3127b333e8e523a33a2ed33dc6e306315355683401e30b269cee64b678fa450b4ec53337a16288cb635c686b21715f1b35daed5a4df84f699cb647c0000000000000000000000008dae6cb04688c62d939ed9b68d32bc62e49970b100000000000000000000000000000000000000000000000923b5b069ec4a7bb9000000000000000000000000000000000000000000000000000000006430bc4d000000000000000000000000000000000000000000000000000000000000001cb99e4c3b29e2d597ba5cf77946153591894c0db52824f04a2312e72c9db2ee3a3b9bf6adcfe3510257081616aed6e6e817f0fc7f04ec0ebf122d20bef3c74e060000000000000000000000000000000000000000000000000000000000000000",
    "v": 1,
    "r": "0xb66573801fa159c720731add5f636675f8c3e821c0023f109ade366923cc4052",
    "s": "0xeed3f6f6011e3c6329a6600b11cb176fa0ef48f06ddacc3c1a002c3026113cc",
    "raw": null,
    "type": 2,
    "max_fee_per_gas": "0x716de1b5d",
    "max_priority_fee_per_gas": "0x485ce38"
  }
]

Filter on contract deployments

We can identify contract deployments by filtering for transactions where the to address is null. To filter on null, use %00 as the query parameter value.

curl -s --location --request GET \
 "https://app.pangea.foundation/v1/api/transactions?chains=ETH&from_block=17000000&to_block=17000010&to__in=%00" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 1,
    "block_number": "0x1036647",
    "block_hash": "0x011171c400214cf066898c6bc3ba528609d9734a597c2ea18092cc81261fcc26",
    "transaction_index": 19,
    "hash": "0xda527025054f0efb770c34b7e8b3c355aaa94ed2d52e37839df935e69805209a",
    "nonce": "0x0",
    "from": "0x4064f32e38f3884fca72529df0790512cd7300ca",
    "to": null,
    "value": "0x00000000000000000000000000000000000000000000000000f8b0a10e470000",
    "gas_price": "0x54361c859",
    "gas": "0xd220b",
    "input": "0x60a060405260405162000e5838038062000e5883398101604081905262000026916200030f565b60408051808201909152600d81526c05374616e64617264455243323609c1b602082015281908333878a8a60036200005f838262000464565b5060046200006e828262000464565b50505060ff1660805260405163346386e160e01b81526001600160a01b0385169063346386e1903490620000ab908790879087906004016200055e565b6000604051808303818588803b158015620000c557600080fd5b505af1158015620000da573d6000803e3d6000fd5b50505050505050505060008311620001455760405162461bcd60e51b8152602060048201526024808201527f5374616e6461726445524332303a20737570706c792063616e6e6f74206265206044820152637a65726f60e01b60648201526084015b60405180910390fd5b6200015133846200015d565b505050505050620005c8565b6001600160a01b038216620001b55760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200013c565b8060026000828254620001c99190620005a0565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620002585781810151838201526020016200023e565b50506000910152565b600082601f8301126200027357600080fd5b81516001600160401b038082111562000290576200029062000225565b604051601f8301601f19908116603f01168101908282118183101715620002bb57620002bb62000225565b81604052838152866020858801011115620002d557600080fd5b620002e88460208301602089016200023b565b9695505050505050565b80516001600160a01b03811681146200030a57600080fd5b919050565b60008060008060008060c087890312156200032957600080fd5b86516001600160401b03808211156200034157600080fd5b6200034f8a838b0162000261565b975060208901519150808211156200036657600080fd5b620003748a838b0162000261565b96506040890151915060ff821682146200038d57600080fd5b606089015160808a0151929650945080821115620003aa57600080fd5b50620003b989828a0162000261565b925050620003ca60a08801620002f2565b90509295509295509295565b600181811c90821680620003eb57607f821691505b6020821081036200040c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200022057600081815260208120601f850160051c810160208610156200043b5750805b601f850160051c820191505b818110156200045c5782815560010162000447565b505050505050565b81516001600160401b0381111562000480576200048062000225565b6200049881620004918454620003d6565b8462000412565b602080601f831160018114620004d05760008415620004b75750858301515b600019600386901b1c1916600185901b1785556200045c565b600085815260208120601f198616915b828110156200050157888601518255948401946001909101908401620004e0565b5085821015620005205787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600081518084526200054a8160208601602086016200023b565b601f01601f19169290920160200192915050565b60608152600062000573606083018662000530565b828103602084015262000587818662000530565b91505060018060a01b0383166040830152949350505050565b80820180821115620005c257634e487b7160e01b600052601160045260246000fd5b92915050565b608051610874620005e4600039600061011b01526108746000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461014557806370a082311461015857806395d89b4114610181578063a457c2d714610189578063a9059cbb1461019c578063dd62ed3e146101af57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101c2565b6040516100c391906106be565b60405180910390f35b6100df6100da366004610728565b610254565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610752565b61026e565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016100c3565b6100df610153366004610728565b610292565b6100f361016636600461078e565b6001600160a01b031660009081526020819052604090205490565b6100b66102b4565b6100df610197366004610728565b6102c3565b6100df6101aa366004610728565b610343565b6100f36101bd3660046107b0565b610351565b6060600380546101d1906107e3565b80601f01602080910402602001604051908101604052809291908181526020018280546101fd906107e3565b801561024a5780601f1061021f5761010080835404028352916020019161024a565b820191906000526020600020905b81548152906001019060200180831161022d57829003601f168201915b5050505050905090565b60003361026281858561037c565b60019150505b92915050565b60003361027c8582856104a0565b61028785858561051a565b506001949350505050565b6000336102628185856102a58383610351565b6102af919061081d565b61037c565b6060600480546101d1906107e3565b600033816102d18286610351565b9050838110156103365760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b610287828686840361037c565b60003361026281858561051a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103de5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161032d565b6001600160a01b03821661043f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161032d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104ac8484610351565b9050600019811461051457818110156105075760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161032d565b610514848484840361037c565b50505050565b6001600160a01b03831661057e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161032d565b6001600160a01b0382166105e05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161032d565b6001600160a01b038316600090815260208190526040902054818110156106585760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161032d565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610514565b600060208083528351808285015260005b818110156106eb578581018301518582016040015282016106cf565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461072357600080fd5b919050565b6000806040838503121561073b57600080fd5b6107448361070c565b946020939093013593505050565b60008060006060848603121561076757600080fd5b6107708461070c565b925061077e6020850161070c565b9150604084013590509250925092565b6000602082840312156107a057600080fd5b6107a98261070c565b9392505050565b600080604083850312156107c357600080fd5b6107cc8361070c565b91506107da6020840161070c565b90509250929050565b600181811c908216806107f757607f821691505b60208210810361081757634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561026857634e487b7160e01b600052601160045260246000fdfea2646970667358221220dd98fa0122fbfe07b3e1abd203bf90a2bb9b2c4d716fc868b283e96b54cca9b864736f6c6343000813003300000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000314dc6448d9338c15b0a00000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000075eee167d2e5cc675f5b07f95d6a93e7088d6c34000000000000000000000000000000000000000000000000000000000000000b53686962204d617374657200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055348494d4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412e662eddf6b336a0fd7b86337efec63db3bbee39e4337cae0705bf280ae50460573b7f2cdceec7944e09d828aee51fdefafbf03da92d241b602aad425ce676741b00000000000000000000000000000000000000000000000000000000000000",
    "v": 0,
    "r": "0xf3c5c41ca4ef6a3281af77dd45e42f49849c828c090792d9133ce747d057ef03",
    "s": "0x62dca7e9cb9cc1e5a48e0262d214e4e7ab25acd3aad4684a3872a509ac98d433",
    "raw": null,
    "type": 2,
    "max_fee_per_gas": "0xa0fdf3a76",
    "max_priority_fee_per_gas": "0x9502f900"
  }
]

Query Parameters

v1/api/transactions

  • chains: Filters the data by specific blockchain networks.
  • from_block: Filters the data by a starting block number.
  • to_block: Filters the data by an ending block number.
  • to__in: Filters the data by a list of to addresses.
  • from__in: Filters the data by a list of from addresses.
  • value__gte: Filters the data by value using the greater than or equal to operator.
  • value__lte: Filters the data by value using the less than or equal to operator.

Logs

Fetch Ethereum logs for blocks 17000000 to 17000010.

curl -s --location --request GET \
 "https://app.pangea.foundation/v1/api/logs?chains=ETH&from_block=17000000&to_block=17000010" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
  "chain": 1,
  "block_number": "0x103664a",
  "block_hash": "0x5bad63a542b4deebf2d8ba93bf83b98a96ac4693640dfc3c2ccec38c3adc2bf2",
  "transaction_index": 253,
  "transaction_hash": "0xae76e4d852d8a9d9ebba99787c1ba5859b68bb90a2712cb3e5ce7505a1f8898a",
  "log_index": "0x15c",
  "address": "0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2",
  "topic0": "0x2b627736bca15cd5381dcf80b0bf11fd197d01a037c52b927a881a10fb73ba61",
  "topic1": "0x000000000000000000000000d533a949740bb3306d119cc777fa900ba034cd52",
  "topic2": "0x000000000000000000000000e340b00b6b622c136ffa5cff130ec8edcddcb39d",
  "topic3": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "data": "0x000000000000000000000000b748952c7bc638f31775245964707bcc5ddfabfc000000000000000000000000000000000000000000000009215f570e12dcdd93",
  "removed": false
  }
]

Filter on events and addresses

The topic0__in filter can be used to filter on specific log events.

We can obtain the topic0 for the event by hashing the event signature:

cast keccak "Transfer(address,address,uint256)"
0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

We can also use address__in to filter the data by a specific contract.

In this example, we get all Transfer events emitted by the USDT contract for blocks 17000000 to 17000010.

curl -s --location --request GET \
 "https://app.pangea.foundation/v1/api/logs?chains=ETH&from_block=17000000&to_block=17000010&address__in=0xdac17f958d2ee523a2206206994597c13d831ec7&topic0__in=0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 1,
    "block_number": "0x103664a",
    "block_hash": "0x5bad63a542b4deebf2d8ba93bf83b98a96ac4693640dfc3c2ccec38c3adc2bf2",
    "transaction_index": 251,
    "transaction_hash": "0x3bfa6f89f21a88c03168ca50a9dcf03c9c1b2880c1cb851bc619bbc31dfcfb91",
    "log_index": "0x131",
    "address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
    "topic0": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
    "topic1": "0x0000000000000000000000005564ebafeb07df35ed90191593d5c243fb793bd8",
    "topic2": "0x000000000000000000000000887bead710f7604e2a8fd9a2fba643065d5e4735",
    "topic3": null,
    "data": "0x00000000000000000000000000000000000000000000000000000000000f4240",
    "removed": false
  }
]

Query Parameters

v1/api/logs

  • chains: Filters the data by specific blockchain networks.
  • from_block: Filters the data by a starting block number.
  • to_block: Filters the data by an ending block number.
  • address__in: Filters the data by a list of contract addresses.
  • topic0__in: Filters the data by a list of topic0 values
  • topic1__in: Filters the data by a list of topic1 values
  • topic2__in: Filters the data by a list of topic2 values
  • topic3__in: Filters the data by a list of topic3 values

Movement

Movement is Movement Labs’ general-purpose chain. It is the first sidechain atop Ethereum that integrates Celestia for data availability, decentralized shared sequencing, optimistic rollup with option for dual-settlement with FFS, and the Move Virtual Machine (MoveVM) for execution, which offers unparalleled transaction throughput.

Currently, Pangea supports Movement Mainnet and Bardock Testnet.

Queries for Movement Mainnet data must use the movement.app.pangea.foundation URL and the ?chains=MOVEMENT query parameter. Queries for Movement Bardock Testnet data must use the movement.bardock.beta.pangea.foundation URL and the ?chains=MOVEMENTBARDOCK query parameter.

As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.

If you need access to Movement data please apply here.

Movement Transactions

Fetch Movement transaction data for versions 10000 to 10100.

curl -s --location --request GET \
 "https://movement.app.pangea.foundation/v1/api/transactions?chains=MOVEMENT&from_block=10000&to_block=10100" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 2147483643,
    "block_number": "0x2774",
    "block_hash": "0x0cc4026a4c6090bb60ac721708a60c5b33803722a91fbd95420c863d248eeabf",
    "transaction_index": 10100,
    "hash": "0x0cc4026a4c6090bb60ac721708a60c5b33803722a91fbd95420c863d248eeabf",
    "version": 10100,
    "parent_transaction_hash": "0x12babaf74cb84a5bef81a2d83c0ce38f6b5bf38db66867850a6c548940322a51",
    "timestamp": 1734332778265919,
    "kind": "UserTransaction",
    "gas_used": 90271,
    "status": "Success",
    "event_root_hash": "0xe41abe9de76fa4431abad7a6e1e071d3eb2eed64bd049ad46ce822a939fb1eec",
    "state_change_hash": "0xcfa77ea93feec98f054b0ab23a0ae387df2a80899f0324e705b10d7529e49624",
    "accumulator_root_hash": "0x332a3785d5146426062d86ce8cd5b81df958d27092dd6ffef107b23afd7e62dd",
    "authenticator": "0x5472616e73616374696f6e41757468656e74696361746f725b736368656d653a20456432353531392c2073656e6465723a204163636f756e7441757468656e74696361746f725b736368656d652069643a20456432353531392c207075626c6963206b65793a20616666653637623839306233393133636333616536656161363830333539303031366536346561626462356266376266343861396666666565313164333130622c207369676e61747572653a2038613463313633303636616563326164313934633362616362393930343364376665663264356262656532333933383835666131306339613831396631633039306461656661663735326134396136353830373032323538303337356235363966316664356332373665343966353234326464353736343334313535633230635d5d",
    "sender": "0x000000000000000000000000000000000000000000000000000000000a550c18",
    "sequence_number": 6401,
    "max_gas_amount": 200000,
    "gas_unit_price": 150,
    "expiration_timestamp_secs": 1734332793,
    "tx_chain_id": 126,
    "block_metadata_failed_proposer_indices": [],
    "block_metadata_timestamp_usecs": null,
    "payload": {
      "kind": "EntryFunction",
      "script": null,
      "module_bundle": null,
      "entry_function": {
        "module": {
          "address": "0x000000000000000000000000000000000000000000000000000000000a550c18",
          "name": "soulbound_nft"
        },
        "function": "create_accounts_and_mint_nfts",
        "ty_args": "0x00",
        "args": [
          "0x78f710a93760f5eb9c0d27d7a913bb6145c1a16b72c74b5b86109c972b7ac4e73c9016d0faef8ce770d52253cf53fcba14bf4df58e90eca68adb756128421d210e1bf898484af4b7dbb1187d218c533b720903841a10cc4ab8341f8694ae796645b06c1a51e75c9eda92a657420748f02ec93ebd6ef2e85ea7a77339e45727efb9fbba1a200cf8257e39205fac0ddbb7bb4313edf0f006d3f4649a70e60092671456a76ab1b9dcd12195729d621dbd97774bb46c6e5e724f711e0bbe0e702ac408e60dcf445f4b312f9f64b4a04e14da8d339c26f9614fc28e4ace06e7cc4d19f962eba3413fd4c8026be2616c8e16a91747e2a360d6e1f7b257748c6d8470cabc96b1b33002a54859399acd4bc3a148c451a0636a616bb55c5c100e09921146db86d42997b8eaa68d629a1ba89de451680fe5594a709b1ae1180a146c2348203c5e6a6e5c906b30a3808b61d73b3dfc8e59febdbc51931272550059d7f2a4e6d46903227ee0d29671281a704b684ad33d8acf4ebc44d50827ec3ba61604a763cce39db56f9983519efb6f20596b2f101094a00efb8d93668a9d03ef6d854e73910bce1f7c67b8ff70c742610f7928e00d8560b7a4d06bd8bb4ff0478c3a7c2b89aaf9641206a9514243172ef8b5e9ad3ced4345f5e7ff646919b9c4a89f0d3a38f0e349554e073594232a12972b5512a68ad084fbb5d98f5dca2a39c110ff36ff0e8cb933b48d9fd39126da449167c1493323bf26816604fff7b17638fc21d8a5a420b569546e8e17dea1c0b27a4747a1af82e2fc4b63129594fd3a515573384b8f740d861ed2e205aa9750ac21066929a57a48df391973241b5ba1f6ea902f34f4aa850c3db4e2700895f8a41c95de00811063d0ffc5e5257807827423a833cc0ca59c065c7a958b3100952ec7416ae888b671a1b978f821a5c12233cd10003bb918103ff389035ce75c9a981e166137176703582e97e6c6a67e6235ebfdca92487efca894ea3a516a094067e2d002c2ab17919bb800d800d17f59cafd6c594cbbb34aed677035ba52934c833c7e755472d09415c8d25754d2c203886fb05b6098e76f870a0dabefad48984f392ff5a8e3e01aaadc92ec60f2afe84121771f03e1a73d6821a4c3391daa749e7e5ff377d1c5576b41954e746e920d39a5453b086bf7cfdfe580708673e5f5273d734a7eb52618b4f694185f3285c36663b69642cb765f1a312c5f7a424fe14afcfd1dda1172b9be3da2d9601e00d6ff159573121a3a64357433b03cf64da370a219d19548ed0e65d82a523e6618fcdd76ccdb25b54301a2cd6c856a62e4c93f009c417fe43c8c9969e4954aede5d91bfb3e2df22f38279d876f9f3e6daf7bec6da4d66e6d7f57a1bf1af000aa152562b2d639ac7e54465ff889e872f6cf5f6459d328bcba119f5aab7d3b91157f9c371242d81294f856b315c71a71f8d72b4bb216ae5649af28e5d65cd4e179bf0df70795c1fefb4a7137ca6f0c551277fc8a9fe1c77b6480bac13c55b511d9b1083a850e515439a02c5b9a216d3f882b65a52ef4e13373cc617a14e50fe99da0be05610e2faeb56328cd602172f1a8bcf76dea1c9d90cf0671701ba16694641b680c4a02cb4f9f653e4d06b75cb305c1fc1c0c10a93d0a37ecff71eb0ba2f6c915314ed5cc436f715e444526a2faf8dd2295573b4d548e5af69df0535051f3da1ebdb4edfe32b3525edc9d691eb9aa91787f50e6036001bf25d3a09751958208b580519f90d419d241573e1123d5c37871a64230cf438fe5beaee962f1fe215773039b27e17c4f8a5b758912e4f24e2fa7738f015f48df6e69a64b6e54f1bd819aeec1c4e5ad838732852683a4958534e290572b43244c76d92b81915d212705b84b6b488a08f58c736d7f546a70d077a54d9ac0cf71a5dbc4809a0b82326701186f3d2df9b735be18a3fe8b2f9bd9debab7607b27240f89534a80f7f37fb4d36e312b08b8358ff2611c74d99eca30cc69f9acc63dae803264a47f67a79f6358dcd515be268d2afb7f407658c558fde8c39e2cbded0b3d0c3791f986962fbcad6a22bf9cb3159c50710cd577a973cb9e74f74b205e4f22755f44be01c0b729812d9c10ce2465a78be801e95464dbde802c3e6d17952cf5e3812bf2a18e094dc07e08133b2a89df795214a91591a412eded30260d2ed99d3cfe734c72746c012ec9b8222077126c47635a74f8b64ef695dbddcb4c70a8f1527e03a75017c7e2ff92a23c4203ba2c0c0cd0ef722101bc5971a98027549341e8e34e22a11a74f0fbeeb5a5b4d9e672468a8dea834880d4b4daf148e384ce745f594bbeeab691aaac8f8a29ff767dc51eb2b12985976ba09db861724d134fbd8e2811f109ea24a537590099f62545fff1c50894a724ccb2f0342a067f9baefee3fed2b9c0c8ce1eba5ff0cdc4500d4f9646d7b6da9fb04a26e938835a8d4868485190a3fc2417e24ac62aaf29787d6ee65acf50ab2031d30011edf37321f4460719529760e484d35ee45434b02f7254acae175540ad266a128a7e75d08aea9a6714670ff7771a434070f40d02f93d4195c0720b9d6927e7c9aa15073b01d4939cb7ba185df1a7ac3bd6222a8fd14e0fc5458e28f51e50a60398923f61d9cbd492ac1f074ff6dd0ee7756c5dcd0f406f9cf95e8c162e59b88edb0dad6995982111f7ca4be3a433007253895d89aec8a2dd4b56663e6183e2aebb93a6fa833e7054a30698767926aaa3d36ccfd2c47cd3e5bd2838b87179ca6ede5f552fa84311e506f7d69079e19082638e629604ea24e5f89290bb249b3e8647fcea204df8846b67b509d93534adac42e4f8dd84016910afe1aa1e8f330b48f319d88ab22a1d546b0d4abdb7520c76c259d29a7c6f486479fbba108d89f99ab9ea08ee830729d88f39fb76696009a5048ed7fed85e10e26d84b54eba195fa580835c0f2fa0ea77b170ef9af3eb0c08d2182ef8f2e8fd790ee30343fe19de4136f3c39a3a7a9048441f70a16364daaad550ff4ef32c3398b6014adc8a3931e03a984e9d08a9730560a31c13185afb8bb9b0f3e6d517a6bad56512c69f0e912b50d9240d5ac361682a4c6552ea2fefc249952caa446a05c7dc52483bc7002b513191fe965e4af90313aa6fffc22c0a1b126abd06e32ab62371936fd6f61f778b1d0d3c071e0a806047dacc9c3e36f916bdc825c6f0982fc0058366031c91acd443c57bf80ee2a96f40fb5e946e4b6e24bb6a799667545ac0f1d3f633c30c5c6061ce9aa300b4cee24d5a88a0acb4c8e5b9e844ad988a5db8d13ede48b663f6a1ddceeaaaabaa7d2784e370e242ca9ca8aa5e02681b71605ce8244a66fed0cba739be1c3ef29509709e5a79f0f5ca5e10ceaa6e8ca9eba2d68dd0cd5f6c2dfddcb2c4d13bf34d866a56ad5406ee54fa17367e7c645dcae0a24f1d5cf66c9cb7042b1b10c136d1392351e755f11567691707bb94ebbc958693b0d11db6e522f2085a4dbf1174b2141bdff6db61913070e9f4691bc7adceeba2596a058b9b89a0f5de01bbc4dcbeaf3b4b65b78cfae83ae19b59a3c3ab732e8d7dc4a1de3a718b4885ac16b76a69b6b3704395265087ed585ded275d1a59d71383176326b9d5eb4b679ca8892b71c6f7137b8add31d959e84880c7b4c0f0721ff983ef6f40a27fbe9e1c9a6e513dfc1bb299d4cdc195ef080a94ee05bc1bc38fa2e0fa0c4c839eb937cdd99eb6dbb8e957590c96ce5ac6c57e0cd157d5a3b5161a73f17baae0e4731dfa5cd1085ae99b95578621ceed208e904d82ec3e792ad4d3502746deeeea01f31c10e5768389b214f34ba6b957e51cac83c91c25e37d68b8f062620d44edf0bc634245508db2bc477fe10da7e1b22e31c0db2e6e5311b8aa3037ab5ccc487ffd4cbca67d4e1e6b294ea67807665b1d3474983e48997cd7c10e8394b21b3721f2f3a9833f1343d56de6684c8c9d60d3706fd808047977ac9624fd503f06d2fc26704662797894285c4e17f759b57ef3370a4a18581637a7d950a123b83f306e91838b5468c07fd8a8b26a4a854fcd654cf9adc2eb37ac9a362b99b249ef122f2349589f2b39454a852dcb2c14cd1a086ff213730b2263fccbc5db9267899d2493024227634783aa967e0b47601f0702fdd0ca2e545efd6f127a1e7ff5eae71e750d137e21917dc2caa50826fb03ba52a29b75a05c63506cf7714ac359224b63b203ab4cfca05731162d7c5db03edfaf6a27d278e335441b225c5c208c5bb27f7e82b383e0d2568719a0db6b026fbb95d13e988b8bfb60b6ca4523c07ea517eaa7120ab9504f17aedd8e076cda48221e60ce82a38e7d6cd7bfa2ae0b65c8698aba7c758f5ada49889d6d00be6ce7d83937961fe1c5c70d16ccd1c911f88353cc3cea7fa2e8c87adc0cceeca9d1423dfab68150d8cd76f90ff14b24196f166eb10e2fd1ef0d06cb523ce20d0cde07e70244895a1290599ff8a286a3256511a48bf2afd024172f93437a77972822e5cc6f75af6e5192d9a51d507f9ff97d94c1a1867a9c4cc65085ac00259ee943334de75c2dbbb86bc2be6dcaf462914c2e23485aea88e1091cfec5952fd71522ff59c6b761bc9b2a5251980ab04724c7a680140a0b2b41251d9f4b6531e6edeb41d927accfaae0e81181f957ffc7371f5254bf6ab468481fb3c8cab1fa4a8358fb02f93efcbc0959adbf614bc5942de08a303b7f5623180566cc068be2addd4afc883dd7f99a6b554b6f9c3f4fb51f76a6c7024587a1e9cb018a5f2a63a95deb5848a520a2d43e6fcb1772b450d9c20126f781e6d0554fe48581dd2cec8f271e9e8392a27799f07fefc93415a268bfe8f1de313bfcd0fb38e6df515020e653240da3531ef8095b864841b6651dafcf7c991df89b35591e686eba915b8ffe0bab1ea8de2b817db9bc0ce871faf1bbe4cbf0cef11e4a6b48d314a0bcc4db57e775850ffd13da633dff0ffca5939cdb9d2d8af1b36d47d8f92b75874db39bc60332e26dbbe62c5529af70e168006b01fc6598222c6e1d0d8a0781dad3e50545c7b06097582095da561642d6f08b0fce02147f26815a0bc7b9082b7c192fc32c964e4b48f8e50b97e817e3c6338e39da2a5e4a4bddb29ce87260fd082757f96a054d851d30e41cbebb7ef2765aee24e766f1773f84e826ff6180ac686046ba783b3535abf88f7a8c2c69e3a2281fd00882511e2393becaed4bd1ce38e9f8d6241dbfea85dfc35d9021e10a2919c1231b640d0f8061dcb486a97a7232f97c759ab75593486e67fd50aced061e56e797b39fd748bbf7d90c4f0727ef91c13aa096bb83ddb2e1531ba5a75527a9553c412436be0a90ed26170f5addb3adfe35605830a6b6a81eabe498a3f67ffb5137b6b2db59cfe227944bb301306897b03b5191f9cee5a7260ec227412fa6"
        ]
      },
      "multisig": null
    }
  }
]

Query Parameters

movement.app.pangea.foundation/v1/api/transactions?chains=MOVEMENT

  • chains: Filters the data by chain.
  • from_block / from_version: Filters the data by a starting version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • to_block / to_version: Filters the data by an ending version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • kind__in / transaction_type__in / type__in: Filters the data by kind.

Movement Decoded Transactions

Fetch Movement decoded transaction data for versions 10000 to 10100.

curl -s --location --request GET \
 "https://movement.app.pangea.foundation/v1/api/transactions/decoded?chains=MOVEMENT&from_block=10000&to_block=10100" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 2147483643,
    "block_number": "0x2774",
    "block_hash": "0x0cc4026a4c6090bb60ac721708a60c5b33803722a91fbd95420c863d248eeabf",
    "transaction_index": "0x2774",
    "hash": "0x0cc4026a4c6090bb60ac721708a60c5b33803722a91fbd95420c863d248eeabf",
    "version": "0x2774",
    "parent_transaction_hash": "0x12babaf74cb84a5bef81a2d83c0ce38f6b5bf38db66867850a6c548940322a51",
    "timestamp": 1734332778265919,
    "kind": "UserTransaction",
    "gas_used": "0x1609f",
    "status": "Success",
    "event_root_hash": "0xe41abe9de76fa4431abad7a6e1e071d3eb2eed64bd049ad46ce822a939fb1eec",
    "state_change_hash": "0xcfa77ea93feec98f054b0ab23a0ae387df2a80899f0324e705b10d7529e49624",
    "state_checkpoint_hash": null,
    "state_cemetery_hash": null,
    "accumulator_root_hash": "0x332a3785d5146426062d86ce8cd5b81df958d27092dd6ffef107b23afd7e62dd",
    "authenticator": "0x5472616e73616374696f6e41757468656e74696361746f725b736368656d653a20456432353531392c2073656e6465723a204163636f756e7441757468656e74696361746f725b736368656d652069643a20456432353531392c207075626c6963206b65793a20616666653637623839306233393133636333616536656161363830333539303031366536346561626462356266376266343861396666666565313164333130622c207369676e61747572653a2038613463313633303636616563326164313934633362616362393930343364376665663264356262656532333933383835666131306339613831396631633039306461656661663735326134396136353830373032323538303337356235363966316664356332373665343966353234326464353736343334313535633230635d5d",
    "sender": "0x000000000000000000000000000000000000000000000000000000000a550c18",
    "sequence_number": "0x1901",
    "payload": {
      "kind": "EntryFunction",
      "script": null,
      "module_bundle": null,
      "entry_function": {
        "module": {
          "address": "0x000000000000000000000000000000000000000000000000000000000a550c18",
          "name": "soulbound_nft"
        },
        "function": "create_accounts_and_mint_nfts",
        "ty_args": "0x00",
        "args": [
          "0x78f710a93760f5eb9c0d27d7a913bb6145c1a16b72c74b5b86109c972b7ac4e73c9016d0faef8ce770d52253cf53fcba14bf4df58e90eca68adb756128421d210e1bf898484af4b7dbb1187d218c533b720903841a10cc4ab8341f8694ae796645b06c1a51e75c9eda92a657420748f02ec93ebd6ef2e85ea7a77339e45727efb9fbba1a200cf8257e39205fac0ddbb7bb4313edf0f006d3f4649a70e60092671456a76ab1b9dcd12195729d621dbd97774bb46c6e5e724f711e0bbe0e702ac408e60dcf445f4b312f9f64b4a04e14da8d339c26f9614fc28e4ace06e7cc4d19f962eba3413fd4c8026be2616c8e16a91747e2a360d6e1f7b257748c6d8470cabc96b1b33002a54859399acd4bc3a148c451a0636a616bb55c5c100e09921146db86d42997b8eaa68d629a1ba89de451680fe5594a709b1ae1180a146c2348203c5e6a6e5c906b30a3808b61d73b3dfc8e59febdbc51931272550059d7f2a4e6d46903227ee0d29671281a704b684ad33d8acf4ebc44d50827ec3ba61604a763cce39db56f9983519efb6f20596b2f101094a00efb8d93668a9d03ef6d854e73910bce1f7c67b8ff70c742610f7928e00d8560b7a4d06bd8bb4ff0478c3a7c2b89aaf9641206a9514243172ef8b5e9ad3ced4345f5e7ff646919b9c4a89f0d3a38f0e349554e073594232a12972b5512a68ad084fbb5d98f5dca2a39c110ff36ff0e8cb933b48d9fd39126da449167c1493323bf26816604fff7b17638fc21d8a5a420b569546e8e17dea1c0b27a4747a1af82e2fc4b63129594fd3a515573384b8f740d861ed2e205aa9750ac21066929a57a48df391973241b5ba1f6ea902f34f4aa850c3db4e2700895f8a41c95de00811063d0ffc5e5257807827423a833cc0ca59c065c7a958b3100952ec7416ae888b671a1b978f821a5c12233cd10003bb918103ff389035ce75c9a981e166137176703582e97e6c6a67e6235ebfdca92487efca894ea3a516a094067e2d002c2ab17919bb800d800d17f59cafd6c594cbbb34aed677035ba52934c833c7e755472d09415c8d25754d2c203886fb05b6098e76f870a0dabefad48984f392ff5a8e3e01aaadc92ec60f2afe84121771f03e1a73d6821a4c3391daa749e7e5ff377d1c5576b41954e746e920d39a5453b086bf7cfdfe580708673e5f5273d734a7eb52618b4f694185f3285c36663b69642cb765f1a312c5f7a424fe14afcfd1dda1172b9be3da2d9601e00d6ff159573121a3a64357433b03cf64da370a219d19548ed0e65d82a523e6618fcdd76ccdb25b54301a2cd6c856a62e4c93f009c417fe43c8c9969e4954aede5d91bfb3e2df22f38279d876f9f3e6daf7bec6da4d66e6d7f57a1bf1af000aa152562b2d639ac7e54465ff889e872f6cf5f6459d328bcba119f5aab7d3b91157f9c371242d81294f856b315c71a71f8d72b4bb216ae5649af28e5d65cd4e179bf0df70795c1fefb4a7137ca6f0c551277fc8a9fe1c77b6480bac13c55b511d9b1083a850e515439a02c5b9a216d3f882b65a52ef4e13373cc617a14e50fe99da0be05610e2faeb56328cd602172f1a8bcf76dea1c9d90cf0671701ba16694641b680c4a02cb4f9f653e4d06b75cb305c1fc1c0c10a93d0a37ecff71eb0ba2f6c915314ed5cc436f715e444526a2faf8dd2295573b4d548e5af69df0535051f3da1ebdb4edfe32b3525edc9d691eb9aa91787f50e6036001bf25d3a09751958208b580519f90d419d241573e1123d5c37871a64230cf438fe5beaee962f1fe215773039b27e17c4f8a5b758912e4f24e2fa7738f015f48df6e69a64b6e54f1bd819aeec1c4e5ad838732852683a4958534e290572b43244c76d92b81915d212705b84b6b488a08f58c736d7f546a70d077a54d9ac0cf71a5dbc4809a0b82326701186f3d2df9b735be18a3fe8b2f9bd9debab7607b27240f89534a80f7f37fb4d36e312b08b8358ff2611c74d99eca30cc69f9acc63dae803264a47f67a79f6358dcd515be268d2afb7f407658c558fde8c39e2cbded0b3d0c3791f986962fbcad6a22bf9cb3159c50710cd577a973cb9e74f74b205e4f22755f44be01c0b729812d9c10ce2465a78be801e95464dbde802c3e6d17952cf5e3812bf2a18e094dc07e08133b2a89df795214a91591a412eded30260d2ed99d3cfe734c72746c012ec9b8222077126c47635a74f8b64ef695dbddcb4c70a8f1527e03a75017c7e2ff92a23c4203ba2c0c0cd0ef722101bc5971a98027549341e8e34e22a11a74f0fbeeb5a5b4d9e672468a8dea834880d4b4daf148e384ce745f594bbeeab691aaac8f8a29ff767dc51eb2b12985976ba09db861724d134fbd8e2811f109ea24a537590099f62545fff1c50894a724ccb2f0342a067f9baefee3fed2b9c0c8ce1eba5ff0cdc4500d4f9646d7b6da9fb04a26e938835a8d4868485190a3fc2417e24ac62aaf29787d6ee65acf50ab2031d30011edf37321f4460719529760e484d35ee45434b02f7254acae175540ad266a128a7e75d08aea9a6714670ff7771a434070f40d02f93d4195c0720b9d6927e7c9aa15073b01d4939cb7ba185df1a7ac3bd6222a8fd14e0fc5458e28f51e50a60398923f61d9cbd492ac1f074ff6dd0ee7756c5dcd0f406f9cf95e8c162e59b88edb0dad6995982111f7ca4be3a433007253895d89aec8a2dd4b56663e6183e2aebb93a6fa833e7054a30698767926aaa3d36ccfd2c47cd3e5bd2838b87179ca6ede5f552fa84311e506f7d69079e19082638e629604ea24e5f89290bb249b3e8647fcea204df8846b67b509d93534adac42e4f8dd84016910afe1aa1e8f330b48f319d88ab22a1d546b0d4abdb7520c76c259d29a7c6f486479fbba108d89f99ab9ea08ee830729d88f39fb76696009a5048ed7fed85e10e26d84b54eba195fa580835c0f2fa0ea77b170ef9af3eb0c08d2182ef8f2e8fd790ee30343fe19de4136f3c39a3a7a9048441f70a16364daaad550ff4ef32c3398b6014adc8a3931e03a984e9d08a9730560a31c13185afb8bb9b0f3e6d517a6bad56512c69f0e912b50d9240d5ac361682a4c6552ea2fefc249952caa446a05c7dc52483bc7002b513191fe965e4af90313aa6fffc22c0a1b126abd06e32ab62371936fd6f61f778b1d0d3c071e0a806047dacc9c3e36f916bdc825c6f0982fc0058366031c91acd443c57bf80ee2a96f40fb5e946e4b6e24bb6a799667545ac0f1d3f633c30c5c6061ce9aa300b4cee24d5a88a0acb4c8e5b9e844ad988a5db8d13ede48b663f6a1ddceeaaaabaa7d2784e370e242ca9ca8aa5e02681b71605ce8244a66fed0cba739be1c3ef29509709e5a79f0f5ca5e10ceaa6e8ca9eba2d68dd0cd5f6c2dfddcb2c4d13bf34d866a56ad5406ee54fa17367e7c645dcae0a24f1d5cf66c9cb7042b1b10c136d1392351e755f11567691707bb94ebbc958693b0d11db6e522f2085a4dbf1174b2141bdff6db61913070e9f4691bc7adceeba2596a058b9b89a0f5de01bbc4dcbeaf3b4b65b78cfae83ae19b59a3c3ab732e8d7dc4a1de3a718b4885ac16b76a69b6b3704395265087ed585ded275d1a59d71383176326b9d5eb4b679ca8892b71c6f7137b8add31d959e84880c7b4c0f0721ff983ef6f40a27fbe9e1c9a6e513dfc1bb299d4cdc195ef080a94ee05bc1bc38fa2e0fa0c4c839eb937cdd99eb6dbb8e957590c96ce5ac6c57e0cd157d5a3b5161a73f17baae0e4731dfa5cd1085ae99b95578621ceed208e904d82ec3e792ad4d3502746deeeea01f31c10e5768389b214f34ba6b957e51cac83c91c25e37d68b8f062620d44edf0bc634245508db2bc477fe10da7e1b22e31c0db2e6e5311b8aa3037ab5ccc487ffd4cbca67d4e1e6b294ea67807665b1d3474983e48997cd7c10e8394b21b3721f2f3a9833f1343d56de6684c8c9d60d3706fd808047977ac9624fd503f06d2fc26704662797894285c4e17f759b57ef3370a4a18581637a7d950a123b83f306e91838b5468c07fd8a8b26a4a854fcd654cf9adc2eb37ac9a362b99b249ef122f2349589f2b39454a852dcb2c14cd1a086ff213730b2263fccbc5db9267899d2493024227634783aa967e0b47601f0702fdd0ca2e545efd6f127a1e7ff5eae71e750d137e21917dc2caa50826fb03ba52a29b75a05c63506cf7714ac359224b63b203ab4cfca05731162d7c5db03edfaf6a27d278e335441b225c5c208c5bb27f7e82b383e0d2568719a0db6b026fbb95d13e988b8bfb60b6ca4523c07ea517eaa7120ab9504f17aedd8e076cda48221e60ce82a38e7d6cd7bfa2ae0b65c8698aba7c758f5ada49889d6d00be6ce7d83937961fe1c5c70d16ccd1c911f88353cc3cea7fa2e8c87adc0cceeca9d1423dfab68150d8cd76f90ff14b24196f166eb10e2fd1ef0d06cb523ce20d0cde07e70244895a1290599ff8a286a3256511a48bf2afd024172f93437a77972822e5cc6f75af6e5192d9a51d507f9ff97d94c1a1867a9c4cc65085ac00259ee943334de75c2dbbb86bc2be6dcaf462914c2e23485aea88e1091cfec5952fd71522ff59c6b761bc9b2a5251980ab04724c7a680140a0b2b41251d9f4b6531e6edeb41d927accfaae0e81181f957ffc7371f5254bf6ab468481fb3c8cab1fa4a8358fb02f93efcbc0959adbf614bc5942de08a303b7f5623180566cc068be2addd4afc883dd7f99a6b554b6f9c3f4fb51f76a6c7024587a1e9cb018a5f2a63a95deb5848a520a2d43e6fcb1772b450d9c20126f781e6d0554fe48581dd2cec8f271e9e8392a27799f07fefc93415a268bfe8f1de313bfcd0fb38e6df515020e653240da3531ef8095b864841b6651dafcf7c991df89b35591e686eba915b8ffe0bab1ea8de2b817db9bc0ce871faf1bbe4cbf0cef11e4a6b48d314a0bcc4db57e775850ffd13da633dff0ffca5939cdb9d2d8af1b36d47d8f92b75874db39bc60332e26dbbe62c5529af70e168006b01fc6598222c6e1d0d8a0781dad3e50545c7b06097582095da561642d6f08b0fce02147f26815a0bc7b9082b7c192fc32c964e4b48f8e50b97e817e3c6338e39da2a5e4a4bddb29ce87260fd082757f96a054d851d30e41cbebb7ef2765aee24e766f1773f84e826ff6180ac686046ba783b3535abf88f7a8c2c69e3a2281fd00882511e2393becaed4bd1ce38e9f8d6241dbfea85dfc35d9021e10a2919c1231b640d0f8061dcb486a97a7232f97c759ab75593486e67fd50aced061e56e797b39fd748bbf7d90c4f0727ef91c13aa096bb83ddb2e1531ba5a75527a9553c412436be0a90ed26170f5addb3adfe35605830a6b6a81eabe498a3f67ffb5137b6b2db59cfe227944bb301306897b03b5191f9cee5a7260ec227412fa6"
        ]
      },
      "multisig": null
    },
    "max_gas_amount": "0x30d40",
    "gas_unit_price": "0x96",
    "expiration_timestamp_secs": "0x675fd179",
    "chain_id": 126,
    "genesis_direct": null,
    "genesis_script": null,
    "genesis_execute_as": null,
    "block_metadata_id": null,
    "block_metadata_epoch": null,
    "block_metadata_round": null,
    "block_metadata_proposer": null,
    "block_metadata_previous_block_votes_bitvec": null,
    "block_metadata_failed_proposer_indices": [],
    "block_metadata_timestamp_usecs": null,
    "block_metadata_randomness": null,
    "state_checkpoint_transaction_hash": null,
    "validator_transaction": null,
    "block_id": null,
    "block_gas_limit_reached": null,
    "block_output_limit_reached": null,
    "block_effective_block_gas_units": null,
    "block_approx_output_size": null,
    "script_decoded": null,
    "entry_function_decoded": {
      "type_args": [],
      "args": [
        "[\"0xf710a93760f5eb9c0d27d7a913bb6145c1a16b72c74b5b86109c972b7ac4e73c\",\"0x9016d0faef8ce770d52253cf53fcba14bf4df58e90eca68adb756128421d210e\",\"0x1bf898484af4b7dbb1187d218c533b720903841a10cc4ab8341f8694ae796645\",\"0xb06c1a51e75c9eda92a657420748f02ec93ebd6ef2e85ea7a77339e45727efb9\",\"0xfbba1a200cf8257e39205fac0ddbb7bb4313edf0f006d3f4649a70e600926714\",\"0x56a76ab1b9dcd12195729d621dbd97774bb46c6e5e724f711e0bbe0e702ac408\",\"0xe60dcf445f4b312f9f64b4a04e14da8d339c26f9614fc28e4ace06e7cc4d19f9\",\"0x62eba3413fd4c8026be2616c8e16a91747e2a360d6e1f7b257748c6d8470cabc\",\"0x96b1b33002a54859399acd4bc3a148c451a0636a616bb55c5c100e09921146db\",\"0x86d42997b8eaa68d629a1ba89de451680fe5594a709b1ae1180a146c2348203c\",\"0x5e6a6e5c906b30a3808b61d73b3dfc8e59febdbc51931272550059d7f2a4e6d4\",\"0x6903227ee0d29671281a704b684ad33d8acf4ebc44d50827ec3ba61604a763cc\",\"0xe39db56f9983519efb6f20596b2f101094a00efb8d93668a9d03ef6d854e7391\",\"0x0bce1f7c67b8ff70c742610f7928e00d8560b7a4d06bd8bb4ff0478c3a7c2b89\",\"0xaaf9641206a9514243172ef8b5e9ad3ced4345f5e7ff646919b9c4a89f0d3a38\",\"0xf0e349554e073594232a12972b5512a68ad084fbb5d98f5dca2a39c110ff36ff\",\"0x0e8cb933b48d9fd39126da449167c1493323bf26816604fff7b17638fc21d8a5\",\"0xa420b569546e8e17dea1c0b27a4747a1af82e2fc4b63129594fd3a515573384b\",\"0x8f740d861ed2e205aa9750ac21066929a57a48df391973241b5ba1f6ea902f34\",\"0xf4aa850c3db4e2700895f8a41c95de00811063d0ffc5e5257807827423a833cc\",\"0x0ca59c065c7a958b3100952ec7416ae888b671a1b978f821a5c12233cd10003b\",\"0xb918103ff389035ce75c9a981e166137176703582e97e6c6a67e6235ebfdca92\",\"0x487efca894ea3a516a094067e2d002c2ab17919bb800d800d17f59cafd6c594c\",\"0xbbb34aed677035ba52934c833c7e755472d09415c8d25754d2c203886fb05b60\",\"0x98e76f870a0dabefad48984f392ff5a8e3e01aaadc92ec60f2afe84121771f03\",\"0xe1a73d6821a4c3391daa749e7e5ff377d1c5576b41954e746e920d39a5453b08\",\"0x6bf7cfdfe580708673e5f5273d734a7eb52618b4f694185f3285c36663b69642\",\"0xcb765f1a312c5f7a424fe14afcfd1dda1172b9be3da2d9601e00d6ff15957312\",\"0x1a3a64357433b03cf64da370a219d19548ed0e65d82a523e6618fcdd76ccdb25\",\"0xb54301a2cd6c856a62e4c93f009c417fe43c8c9969e4954aede5d91bfb3e2df2\",\"0x2f38279d876f9f3e6daf7bec6da4d66e6d7f57a1bf1af000aa152562b2d639ac\",\"0x7e54465ff889e872f6cf5f6459d328bcba119f5aab7d3b91157f9c371242d812\",\"0x94f856b315c71a71f8d72b4bb216ae5649af28e5d65cd4e179bf0df70795c1fe\",\"0xfb4a7137ca6f0c551277fc8a9fe1c77b6480bac13c55b511d9b1083a850e5154\",\"0x39a02c5b9a216d3f882b65a52ef4e13373cc617a14e50fe99da0be05610e2fae\",\"0xb56328cd602172f1a8bcf76dea1c9d90cf0671701ba16694641b680c4a02cb4f\",\"0x9f653e4d06b75cb305c1fc1c0c10a93d0a37ecff71eb0ba2f6c915314ed5cc43\",\"0x6f715e444526a2faf8dd2295573b4d548e5af69df0535051f3da1ebdb4edfe32\",\"0xb3525edc9d691eb9aa91787f50e6036001bf25d3a09751958208b580519f90d4\",\"0x19d241573e1123d5c37871a64230cf438fe5beaee962f1fe215773039b27e17c\",\"0x4f8a5b758912e4f24e2fa7738f015f48df6e69a64b6e54f1bd819aeec1c4e5ad\",\"0x838732852683a4958534e290572b43244c76d92b81915d212705b84b6b488a08\",\"0xf58c736d7f546a70d077a54d9ac0cf71a5dbc4809a0b82326701186f3d2df9b7\",\"0x35be18a3fe8b2f9bd9debab7607b27240f89534a80f7f37fb4d36e312b08b835\",\"0x8ff2611c74d99eca30cc69f9acc63dae803264a47f67a79f6358dcd515be268d\",\"0x2afb7f407658c558fde8c39e2cbded0b3d0c3791f986962fbcad6a22bf9cb315\",\"0x9c50710cd577a973cb9e74f74b205e4f22755f44be01c0b729812d9c10ce2465\",\"0xa78be801e95464dbde802c3e6d17952cf5e3812bf2a18e094dc07e08133b2a89\",\"0xdf795214a91591a412eded30260d2ed99d3cfe734c72746c012ec9b822207712\",\"0x6c47635a74f8b64ef695dbddcb4c70a8f1527e03a75017c7e2ff92a23c4203ba\",\"0x2c0c0cd0ef722101bc5971a98027549341e8e34e22a11a74f0fbeeb5a5b4d9e6\",\"0x72468a8dea834880d4b4daf148e384ce745f594bbeeab691aaac8f8a29ff767d\",\"0xc51eb2b12985976ba09db861724d134fbd8e2811f109ea24a537590099f62545\",\"0xfff1c50894a724ccb2f0342a067f9baefee3fed2b9c0c8ce1eba5ff0cdc4500d\",\"0x4f9646d7b6da9fb04a26e938835a8d4868485190a3fc2417e24ac62aaf29787d\",\"0x6ee65acf50ab2031d30011edf37321f4460719529760e484d35ee45434b02f72\",\"0x54acae175540ad266a128a7e75d08aea9a6714670ff7771a434070f40d02f93d\",\"0x4195c0720b9d6927e7c9aa15073b01d4939cb7ba185df1a7ac3bd6222a8fd14e\",\"0x0fc5458e28f51e50a60398923f61d9cbd492ac1f074ff6dd0ee7756c5dcd0f40\",\"0x6f9cf95e8c162e59b88edb0dad6995982111f7ca4be3a433007253895d89aec8\",\"0xa2dd4b56663e6183e2aebb93a6fa833e7054a30698767926aaa3d36ccfd2c47c\",\"0xd3e5bd2838b87179ca6ede5f552fa84311e506f7d69079e19082638e629604ea\",\"0x24e5f89290bb249b3e8647fcea204df8846b67b509d93534adac42e4f8dd8401\",\"0x6910afe1aa1e8f330b48f319d88ab22a1d546b0d4abdb7520c76c259d29a7c6f\",\"0x486479fbba108d89f99ab9ea08ee830729d88f39fb76696009a5048ed7fed85e\",\"0x10e26d84b54eba195fa580835c0f2fa0ea77b170ef9af3eb0c08d2182ef8f2e8\",\"0xfd790ee30343fe19de4136f3c39a3a7a9048441f70a16364daaad550ff4ef32c\",\"0x3398b6014adc8a3931e03a984e9d08a9730560a31c13185afb8bb9b0f3e6d517\",\"0xa6bad56512c69f0e912b50d9240d5ac361682a4c6552ea2fefc249952caa446a\",\"0x05c7dc52483bc7002b513191fe965e4af90313aa6fffc22c0a1b126abd06e32a\",\"0xb62371936fd6f61f778b1d0d3c071e0a806047dacc9c3e36f916bdc825c6f098\",\"0x2fc0058366031c91acd443c57bf80ee2a96f40fb5e946e4b6e24bb6a79966754\",\"0x5ac0f1d3f633c30c5c6061ce9aa300b4cee24d5a88a0acb4c8e5b9e844ad988a\",\"0x5db8d13ede48b663f6a1ddceeaaaabaa7d2784e370e242ca9ca8aa5e02681b71\",\"0x605ce8244a66fed0cba739be1c3ef29509709e5a79f0f5ca5e10ceaa6e8ca9eb\",\"0xa2d68dd0cd5f6c2dfddcb2c4d13bf34d866a56ad5406ee54fa17367e7c645dca\",\"0xe0a24f1d5cf66c9cb7042b1b10c136d1392351e755f11567691707bb94ebbc95\",\"0x8693b0d11db6e522f2085a4dbf1174b2141bdff6db61913070e9f4691bc7adce\",\"0xeba2596a058b9b89a0f5de01bbc4dcbeaf3b4b65b78cfae83ae19b59a3c3ab73\",\"0x2e8d7dc4a1de3a718b4885ac16b76a69b6b3704395265087ed585ded275d1a59\",\"0xd71383176326b9d5eb4b679ca8892b71c6f7137b8add31d959e84880c7b4c0f0\",\"0x721ff983ef6f40a27fbe9e1c9a6e513dfc1bb299d4cdc195ef080a94ee05bc1b\",\"0xc38fa2e0fa0c4c839eb937cdd99eb6dbb8e957590c96ce5ac6c57e0cd157d5a3\",\"0xb5161a73f17baae0e4731dfa5cd1085ae99b95578621ceed208e904d82ec3e79\",\"0x2ad4d3502746deeeea01f31c10e5768389b214f34ba6b957e51cac83c91c25e3\",\"0x7d68b8f062620d44edf0bc634245508db2bc477fe10da7e1b22e31c0db2e6e53\",\"0x11b8aa3037ab5ccc487ffd4cbca67d4e1e6b294ea67807665b1d3474983e4899\",\"0x7cd7c10e8394b21b3721f2f3a9833f1343d56de6684c8c9d60d3706fd8080479\",\"0x77ac9624fd503f06d2fc26704662797894285c4e17f759b57ef3370a4a185816\",\"0x37a7d950a123b83f306e91838b5468c07fd8a8b26a4a854fcd654cf9adc2eb37\",\"0xac9a362b99b249ef122f2349589f2b39454a852dcb2c14cd1a086ff213730b22\",\"0x63fccbc5db9267899d2493024227634783aa967e0b47601f0702fdd0ca2e545e\",\"0xfd6f127a1e7ff5eae71e750d137e21917dc2caa50826fb03ba52a29b75a05c63\",\"0x506cf7714ac359224b63b203ab4cfca05731162d7c5db03edfaf6a27d278e335\",\"0x441b225c5c208c5bb27f7e82b383e0d2568719a0db6b026fbb95d13e988b8bfb\",\"0x60b6ca4523c07ea517eaa7120ab9504f17aedd8e076cda48221e60ce82a38e7d\",\"0x6cd7bfa2ae0b65c8698aba7c758f5ada49889d6d00be6ce7d83937961fe1c5c7\",\"0x0d16ccd1c911f88353cc3cea7fa2e8c87adc0cceeca9d1423dfab68150d8cd76\",\"0xf90ff14b24196f166eb10e2fd1ef0d06cb523ce20d0cde07e70244895a129059\",\"0x9ff8a286a3256511a48bf2afd024172f93437a77972822e5cc6f75af6e5192d9\",\"0xa51d507f9ff97d94c1a1867a9c4cc65085ac00259ee943334de75c2dbbb86bc2\",\"0xbe6dcaf462914c2e23485aea88e1091cfec5952fd71522ff59c6b761bc9b2a52\",\"0x51980ab04724c7a680140a0b2b41251d9f4b6531e6edeb41d927accfaae0e811\",\"0x81f957ffc7371f5254bf6ab468481fb3c8cab1fa4a8358fb02f93efcbc0959ad\",\"0xbf614bc5942de08a303b7f5623180566cc068be2addd4afc883dd7f99a6b554b\",\"0x6f9c3f4fb51f76a6c7024587a1e9cb018a5f2a63a95deb5848a520a2d43e6fcb\",\"0x1772b450d9c20126f781e6d0554fe48581dd2cec8f271e9e8392a27799f07fef\",\"0xc93415a268bfe8f1de313bfcd0fb38e6df515020e653240da3531ef8095b8648\",\"0x41b6651dafcf7c991df89b35591e686eba915b8ffe0bab1ea8de2b817db9bc0c\",\"0xe871faf1bbe4cbf0cef11e4a6b48d314a0bcc4db57e775850ffd13da633dff0f\",\"0xfca5939cdb9d2d8af1b36d47d8f92b75874db39bc60332e26dbbe62c5529af70\",\"0xe168006b01fc6598222c6e1d0d8a0781dad3e50545c7b06097582095da561642\",\"0xd6f08b0fce02147f26815a0bc7b9082b7c192fc32c964e4b48f8e50b97e817e3\",\"0xc6338e39da2a5e4a4bddb29ce87260fd082757f96a054d851d30e41cbebb7ef2\",\"0x765aee24e766f1773f84e826ff6180ac686046ba783b3535abf88f7a8c2c69e3\",\"0xa2281fd00882511e2393becaed4bd1ce38e9f8d6241dbfea85dfc35d9021e10a\",\"0x2919c1231b640d0f8061dcb486a97a7232f97c759ab75593486e67fd50aced06\",\"0x1e56e797b39fd748bbf7d90c4f0727ef91c13aa096bb83ddb2e1531ba5a75527\",\"0xa9553c412436be0a90ed26170f5addb3adfe35605830a6b6a81eabe498a3f67f\",\"0xfb5137b6b2db59cfe227944bb301306897b03b5191f9cee5a7260ec227412fa6\"]"
      ],
      "args_abi": [
        "{\"vector\":\"address\"}"
      ]
    },
    "multisig_entry_function_decoded": null
  }
]

Query Parameters

movement.app.pangea.foundation/v1/api/transactions/decoded?chains=MOVEMENT

  • chains: Filters the data by chain.
  • from_block / from_version: Filters the data by a starting version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • to_block / to_version: Filters the data by an ending version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • kind__in / transaction_type__in / type__in: Filters the data by kind.

Movement Logs

Fetch Movement log data for versions 10000 to 10100.

curl -s --location --request GET \
 "https://movement.app.pangea.foundation/v1/api/logs?chains=MOVEMENT&from_block=10000&to_block=10100" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 2147483643,
    "block_number": 10100,
    "block_hash": "0x0cc4026a4c6090bb60ac721708a60c5b33803722a91fbd95420c863d248eeabf",
    "transaction_index": 10100,
    "transaction_hash": "0x0cc4026a4c6090bb60ac721708a60c5b33803722a91fbd95420c863d248eeabf",
    "log_index": 480,
    "timestamp": 1734332778265919,
    "kind": "V2",
    "key_creation_number": null,
    "key_account_address": null,
    "sequence_number": null,
    "address": "0x0000000000000000000000000000000000000000000000000000000000000001",
    "module": "transaction_fee",
    "event_name": "FeeStatement",
    "type_tag": "0x00",
    "event_data": "0x9f60010000000000db0000000000000004010000000000008084cd00000000000000000000000000"
  }
]

Query Parameters

movement.app.pangea.foundation/v1/api/logs?chains=MOVEMENT

  • chains: Filters the data by chain.
  • from_block / from_version: Filters the data by a starting version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • to_block / to_version: Filters the data by an ending version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • address__in: Filters the data by a list of address.
  • module__in: Filters the data by a list of module.
  • event_name__in: Filters the data by a list of event_name.
  • type_tag__in: Filters the data by a list of type_tag.

Movement Decoded Logs

Fetch Movement decoded log data for versions 10000 to 10100.

curl -s --location --request GET \
 "https://movement.app.pangea.foundation/v1/api/logs/decoded?chains=MOVEMENT&from_block=10000&to_block=10100" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 2147483643,
    "block_number": "0x2774",
    "block_hash": "0x0cc4026a4c6090bb60ac721708a60c5b33803722a91fbd95420c863d248eeabf",
    "transaction_index": "0x2774",
    "transaction_hash": "0x0cc4026a4c6090bb60ac721708a60c5b33803722a91fbd95420c863d248eeabf",
    "log_index": "0x1e0",
    "timestamp": 1734332778265919,
    "kind": "V2",
    "key_creation_number": null,
    "key_account_address": null,
    "sequence_number": null,
    "address": "0x0000000000000000000000000000000000000000000000000000000000000001",
    "module": "transaction_fee",
    "event_name": "FeeStatement",
    "type_tag": "0x00",
    "event_data": "0x9f60010000000000db0000000000000004010000000000008084cd00000000000000000000000000",
    "decoded": "{\"total_charge_gas_units\":90271,\"execution_gas_units\":219,\"io_gas_units\":260,\"storage_fee_octas\":13468800,\"storage_fee_refund_octas\":0}"
  }
]

Query Parameters

movement.app.pangea.foundation/v1/api/logs/decoded?chains=MOVEMENT

  • chains: Filters the data by chain.
  • from_block / from_version: Filters the data by a starting version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • to_block / to_version: Filters the data by an ending version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • address__in: Filters the data by a list of address.
  • module__in: Filters the data by a list of module.
  • event_name__in: Filters the data by a list of event_name.
  • type_tag__in: Filters the data by a list of type_tag.

Movement Receipts

Fetch Movement writeset receipts for versions 10000 to 10100.

curl -s --location --request GET \
 "https://movement.app.pangea.foundation/v1/api/receipts?chains=MOVEMENT&from_block=10000&to_block=10100" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 2147483643,
    "block_number": "0x2774",
    "block_hash": "0x0cc4026a4c6090bb60ac721708a60c5b33803722a91fbd95420c863d248eeabf",
    "transaction_index": "0x2774",
    "transaction_hash": "0x0cc4026a4c6090bb60ac721708a60c5b33803722a91fbd95420c863d248eeabf",
    "receipt_index": "0xf4",
    "timestamp": 1734332778265919,
    "op": "Modification",
    "state_key": "0x011b854694ae746cdbd8d44186ca4929b2b337df21d1c74633be19b2710552fdca0619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935",
    "data": "0xc58e48cf010000000100000000000000",
    "slot_deposit": "0x0",
    "bytes_deposit": "0x0",
    "creation_time_usecs": "0x0",
    "access_path_address": null,
    "resource_address": null,
    "resource_module": null,
    "resource_event_name": null
  }
]

Query Parameters

movement.app.pangea.foundation/v1/api/receipts?chains=MOVEMENT

  • chains: Filters the data by chain.
  • from_block / from_version: Filters the data by a starting version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • to_block / to_version: Filters the data by an ending version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • access_path_address__in: Filters the data by a list of access_path_address.
  • resource_address__in: Filters the data by a list of resource_address.
  • resource_module__in: Filters the data by a list of resource_module.
  • resource_event_name__in: Filters the data by a list of resource_event_name.

Movement Decoded Receipts

Fetch Movement decoded writeset receipts for versions 10000 to 10010.

curl -s --location --request GET \
 "https://movement.app.pangea.foundation/v1/api/receipts/decoded?chains=MOVEMENT&from_block=10000&to_block=10010" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 2147483643,
    "block_number": "0x271a",
    "block_hash": "0x9fdd671dfa683a84babcecb8c96c17789adb2cf76a0529e858b9baa3e9eb5501",
    "transaction_index": "0x271a",
    "transaction_hash": "0x9fdd671dfa683a84babcecb8c96c17789adb2cf76a0529e858b9baa3e9eb5501",
    "receipt_index": "0xf3",
    "timestamp": 1734332704112254,
    "op": "Creation",
    "state_key": "0x00feee63bf5e3cdb3106eb45ca3355ee1a43a11b6f934cfb26f606e66d0c3e25353901000000000000000000000000000000000000000000000000000000000000000405746f6b656e10546f6b656e4964656e7469666965727300",
    "data": "0x324f0a00000000000c4d6f76656d656e74204e4654080000000000000000",
    "slot_deposit": "0x9c40",
    "bytes_deposit": "0x5a28",
    "creation_time_usecs": "0x6295dccc03e7e",
    "access_path_address": "0xfeee63bf5e3cdb3106eb45ca3355ee1a43a11b6f934cfb26f606e66d0c3e2535",
    "resource_address": "0x0000000000000000000000000000000000000000000000000000000000000004",
    "resource_module": "token",
    "resource_event_name": "TokenIdentifiers",
    "decoded": "{\"index\":{\"type\":\"0x1::aggregator_v2::AggregatorSnapshot\",\"fields\":{\"value\":675634}},\"name\":{\"type\":\"0x1::aggregator_v2::DerivedStringSnapshot\",\"fields\":{\"value\":{\"type\":\"0x1::string::String\",\"fields\":{\"bytes\":[77,111,118,101,109,101,110,116,32,78,70,84]}},\"padding\":[0,0,0,0,0,0,0,0]}}}"
  }
]

Query Parameters

movement.app.pangea.foundation/v1/api/receipts/decoded?chains=MOVEMENT

  • chains: Filters the data by chain.
  • from_block / from_version: Filters the data by a starting version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • to_block / to_version: Filters the data by an ending version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • access_path_address__in: Filters the data by a list of access_path_address.
  • resource_address__in: Filters the data by a list of resource_address.
  • resource_module__in: Filters the data by a list of resource_module.
  • resource_event_name__in: Filters the data by a list of resource_event_name.

Movement Modules

Fetch Movement modules data for versions 20000 to 30000.

curl -s --location --request GET \
 "https://movement.app.pangea.foundation/v1/api/modules?chains=MOVEMENT&from_block=20000&to_block=30000" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 2147483643,
    "block_number": "0x6de7",
    "block_hash": "0xf365b0feff2dac0169b3d3717db6fa86524a10eb4d5b4f1e348eb39e1327474a",
    "transaction_index": "0x6de7",
    "transaction_hash": "0xf365b0feff2dac0169b3d3717db6fa86524a10eb4d5b4f1e348eb39e1327474a",
    "receipt_index": "0x2",
    "timestamp": 1740641128043868,
    "op": "Creation",
    "state_key": "0x000d5d2540ad98fb0f743422e4a99c817f7cfd406438b356a94eb73155e0003eb62d000d5d2540ad98fb0f743422e4a99c817f7cfd406438b356a94eb73155e0003eb60b6d696e744d616368696e65",
    "data": "0xa11ceb0b060000000c0100260226600386018802048e031805a603c50307eb06bf0a08aa11800106aa12820410ac16eb010a9718660cfd188a110d872a1c0000010101020103010401050106010701080109010a010b010c020d020e030f03100311031200130600001408000015060000160b00001708000018080000190600001a0800001b06000835070100010d3608000a3a0700014606000e490600084b06000c4e0402030100010f5607000457040100010258080010590700115d07000d670800001c000100001d020300001e030400001f05060000200306000021070300002208030000230903000024030000002503060000260a03000027070300002808030000290b0300002a0c0300002b080300002c070300002d0d0300002e0e0300002f0f030000300d030001521100000c53131402030009540800000555060600125a170600045b0d190100125c1a0300115e1b1c00125f1c1d00105f1e1f000f6020060010611e1f000f62200600076321060001642324000465080301000a661b25000d682627000c690328020304016a2a2b00036b2d1b01000b6c2d2501000a6d2e03000d6e2f3000086f32030108067034030106047100060100046f020301000c723a0302030216121a182418271229252a062d312e332f18301831122e3d010502020103060c05030001080303060c0608030a0a02010302060c0501060c03060c020503060c030a0a0202060c0103060c030102060c0303060c0a050102060c0a0a0207050205060b0f020502060803050608070206050a0202050203060b0f020900090109000609010106090104050103030708100810030b110108120308130301060a0a02010812010b11010900020a0a020b11010812010a02010814010813010608130108100106081002030307050c070804080305060c08070106080c010c01080b10060c080b03080b080b0101010101010101010303010b09010815010b0f020900090102080c0c02060c0a02020c080c10050c080b070a0a02080b070a0a020708030a080b0a080b0a0a0205060c03080b0b0901080a060807010609000207080b080b08060c080b080b080b080b0a080b0a080b0a0a02010b0901080a01080a03060c0b090109000501080201090007050a0a020103030708030302050708030405070803050708070405070803050608070f050205060b0f020502020201030306080306050305060207080703070b0f0209000901090009010c050205060b0f02050202020a0a020708030305060207080704050c060803050108080b6d696e744d616368696e65076163636f756e740a6170746f735f636f696e0362637304636f696e056572726f72056576656e74066d6174683634066f626a656374067369676e657206737472696e670c737472696e675f7574696c73057461626c650b6170746f735f746f6b656e05746f6b656e036936340570726963651070726963655f6964656e7469666965720470797468094275726e4576656e7407486973746f7279094d696e744576656e740a4e46544d616368696e650b5265736f7572636543617008546f6b656e5265660d5472616e736665724576656e740957686974656c6973740d57697468647261774576656e740f636865636b5f77686974656c697374086465765f6d696e74166765745f616c6c5f6d616368696e655f7374617475730d6765745f6e66745f7072696365166765745f77686974655f6c6973745f636f756e74657211696e69745f6d696e745f6d616368696e650b696e69745f6d6f64756c65046d696e74136d795f7265736f757263655f616464726573731b6d795f7265736f757263655f616464726573735f62616c616e63650b7075626c69635f6d696e74097365745f61646d696e197365745f66696e6973685f7768696c656c6973745f6d696e740f7365745f6d696e745f7061757365640e7365745f6d696e745f7072696365107365745f6d696e745f737461727465640d7365745f726563697069656e740c7365745f72657365727665640d7365745f77686974656c6973740e77686974656c6973745f6d696e741077697468647261775f726f79616c7479056f776e657207746f6b656e49640b6d696e745f616d6f756e74096d696e745f74797065064f626a6563740a4170746f73546f6b656e0561646d696e09726563697069656e740f636f6c6c656374696f6e5f6e616d6506537472696e670a746f6b656e5f6e616d650a6d696e745f707269636507696e5f75736463067061757365640c746f74616c5f737570706c79066d696e746564117075626c69635f6d696e745f6c696d69740c6d696e745f737461727465641877686974656c6973745f6d696e745f617661696c61626c6508726573657276656403636170105369676e65724361706162696c69747904696e6974086275726e5f726566074275726e5265660c7472616e736665725f7265660b5472616e736665725265660466726f6d02746f055461626c6507636f756e7465720e7369676e65725f6164647265737306616d6f756e74176372656174655f7265736f757263655f6164647265737313626f72726f775f776974685f64656661756c740a616464726573735f6f66117065726d697373696f6e5f64656e6965640349363404436f696e094170746f73436f696e0550726963650e6765745f7570646174655f666565087769746864726177127570646174655f70726963655f66656564730f50726963654964656e7469666965720d66726f6d5f627974655f766563096765745f7072696365196765745f6d61676e69747564655f69665f706f736974697665086765745f6578706f196765745f6d61676e69747564655f69665f6e6567617469766503706f771d6372656174655f7369676e65725f776974685f6361706162696c69747908726567697374657204757466380f4170746f73436f6c6c656374696f6e186372656174655f636f6c6c656374696f6e5f6f626a656374036e6577176372656174655f7265736f757263655f6163636f756e7408746f5f627974657309746f5f737472696e6706617070656e64116d696e745f746f6b656e5f6f626a656374087472616e7366657204656d69740762616c616e6365067570736572740d5d2540ad98fb0f743422e4a99c817f7cfd406438b356a94eb73155e0003eb6000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000049357e76fe965c9956a76181ee49f66d51b7f9c3800182a944ed96be86301e49f0308040000000000000003080200000000000000030809000000000000000a0221206bf748c908767baa762a1563d454ebec2d5108f8ee36d806aadacc8f0a075b6d0a023e3d47616d65207061737320666f72206561726c792061636365737320746f205365656b65727320416c6c69616e63652026206f74686572207065726b73210a0227265365656b65727320416c6c69616e63652047656e6573697320416c6c69616e636520506173730a023635697066733a2f2f516d543243724e705666634235675573696d7674555231366a556e657564747a597275416b4a6146704b7a596e4b03080100000000000000030806000000000000000308050000000000000003080700000000000000030808000000000000000308030000000000000003080a00000000000000030800e1f505000000000a02201f5365656b6572735f47656e65736973416c6c69616e6365506173735f4e46540308e803000000000000030832000000000000000a02161547656e6573697320416c6c69616e636520506173730308611e00000000000003080b0000000000000005200d5d2540ad98fb0f743422e4a99c817f7cfd406438b356a94eb73155e0003eb60a0205044e616d650a0207065261726974790a020b0a53657269616c204e6f2e0a0214133078313a3a737472696e673a3a537472696e670a020706436f6d6d6f6e0a02020123126170746f733a3a6d657461646174615f7631d60101010000000000000010454e4f545f544f4b454e5f4f574e45520004094275726e4576656e74010400094d696e744576656e740104000d5472616e736665724576656e740104000d57697468647261774576656e74010400050f636865636b5f77686974656c697374010100136d795f7265736f757263655f61646472657373010100166765745f616c6c5f6d616368696e655f737461747573010100166765745f77686974655f6c6973745f636f756e7465720101001b6d795f7265736f757263655f616464726573735f62616c616e636501010000020231053205010201330f020203340231050e0b0901080a03020d3705380539080b3b080b3c033d013e013f034003410342014301440304020245080c470205020248080d4a080e0602034c054d053205070202400b0f0205024f0308020350054d055103000100020307101c07150c010e01070f11150c060a062b070c070b062b030c050b0710000c040b000c0331000c020b040b030e023800140b051001140201010403030407153707150c030e03070f11152a031002140a00111721040d05120b000107091118270a02060000000000000000240417051c0b000107081118270600000000000000000c06090c040b020c050a0404290b06060100000000000000160c06052b080c040a060a052304340a0031000a01110705220b0001020201000103000807150c000e00070f11152b0314020300000016310a0110031404290b000e02111938010c060b020b06111b0703111c111d0c080e08111e0c030e03111f0c090e0811200c040e0411210c07070e060a000000000000000b071122180b091a0b01100414180c05052f0b00010b011004140c050b05020401000107000907150c000e00070f11152b07100514020501040104225c07150c020e02070f11150c060a062b04100611230c030e030c070b062a040c040a04100714310021041705200b00010b07010b040107001118270a0738020a070704112507130705112507061125090909090908090909071107101126010b0011170b010705112507121125066300000000000000080907130600000000000000000713090906000000000000000012030c05380306000000000000000012070c080a070b082d070a070b052d030b074a000000000000000000000000000000000000000000000000000000000000000012012d0131010b040f07150206000000290b0b00070f11280c010c020e020b01310012042d0402070000030304072cc30107150c030e03070f11150c0d0a0d2a030c090a0d2b070c120a0910081409210413051a0b12010b0901070b1118270a091009140821042105280b12010b0901070b1118270a0131012204430a09100a140b12100514160a09100b14160a09100c1423043d05420b0901070a111827055b0a09100a140b12100514160a09100b1416060100000000000000170a09100c14230456055b0b0901070a1118270b0d2b04100611230c040e040c0e402500000000000000000c0a0d0a0716112544250d0a0717112544250d0a071811254425402500000000000000000c0b0d0b0719112544250d0b0719112544250d0b071911254425401b00000000000000000c0c0d0c0c06071211250c050b060e053804441b0d0c0c08071a11250c070b080e073804441b0a09100a14060100000000000000160c0f071b11250c100d100e0f3805112b0d0c0e103804441b0a0e070511250704112507121125070611250b0a0b0b0b0c112c0c110b0e0a110a0238060b010b020b11120238070a09100a14060100000000000000160b090f0a150208010000000607150c000e00070f11150209010000000707150c000e00070f11153808020a010403030407353f07150c030e03070f11152a030c080a0106000000000000000024040c05130b00010b080107081118270a000a080b020c042e0b0411030c090a000b08100d140b090a011838090600000000000000000c07090c050b010c060a0504300b07060100000000000000160c070532080c050a070a0623043c0a0031020a001117110705290b0001020b01040103361907150c020e02070f11152a030c030a031002140b00111721040f05140b030107091118270b010b030f0215020c0104020307372207150c010e01070f11150c030a032a030c020a021002140b00111721041105160b020107091118270b032a070c04090b020f01150600000000000000000b040f0515020d01040103361907150c020e02070f11152a030c030a031002140b00111721040f05140b030107091118270b010b030f0815020e01040103361d07150c030e03070f11152a030c040a041002140b00111721040f05140b040107091118270b010a040f04150b020b040f0315020f01040103361d07150c010e01070f11152a030c020a021002140b00111721040f05140b02010709111827080a020f0915080b020f0115021001040103361907150c020e02070f11152a030c030a031002140b00111721040f05140b030107091118270b010b030f0d1502110104020307383207150c020e02070f11150c040a042a030c030a031002140b00111721041105160b030107091118270b042b070c050a03100a140b05100514160a01160a03100c14250428052d0b030107081118270b010b030f0b1502120104020307397f07150c030e03070f11150c0f0a0f2b030c0c0a0c1002140b00111721041105160b0c0107091118270b0c1009140921041d052007021118270b0f2a070c110e0141000c0e0600000000000000000c0b090c090b0e0c0a0a0904330b0b060100000000000000160c0b0535080c090a0b0a0a23047c0e010a0b42000c0d0a1110000c060a0d140c0531000c040b060b050e0438000c100a02046431000c070b100e072104610a110f000b0d143102380a0a11100514060100000000000000160a110f051505630b0d01057b31020c080b100e082104790a110f000b0d143100380a0a11100514060100000000000000170a110f0515057b0b0d01052c0b110102130104030304073b6607150c020e02070f11150c0b0a0b2a030c090a091001140821041005170b00010b0901070b1118270a0b2b0710000c050a0011170c0431000c030b050b040e0338000c0c31000c060a0c0e062104340b0c010b00010b0901070d11182731010c070b0c0e072104410b00010b090107011118270a000a090b010c082e0b0811030c0a0a000b09100d140b0a38090a0031010a00111711070b0b2a070c0d0a0d0f000b0011173101380a0a0d100514060100000000000000170b0d0f0515021401040203043c360a01060000000000000000240405050a0b0001070811182707150c020e02070f11150c050a052b030c040a041002140a00111721041b05220b00010b040107091118270b052b04100611230c030e030a04100d140a0138090b0011170b04100d140b011208380b020700030b0300030503040701040004010306030a0308030c0307030100",
    "slot_deposit": "0x9c40",
    "bytes_deposit": "0x36358",
    "creation_time_usecs": "0x62f1a981e555c",
    "access_path_address": "0x0d5d2540ad98fb0f743422e4a99c817f7cfd406438b356a94eb73155e0003eb6",
    "resource_address": "0x0d5d2540ad98fb0f743422e4a99c817f7cfd406438b356a94eb73155e0003eb6",
    "resource_module": "mintMachine",
    "resource_event_name": null,
    "abi": "{\"address\":\"0x0d5d2540ad98fb0f743422e4a99c817f7cfd406438b356a94eb73155e0003eb6\",\"friends\":[],\"functions\":[{\"Function\":{\"fields\":[\"Address\"],\"name\":\"check_whitelist\"}},{\"Function\":{\"fields\":[{\"Reference\":{\"mutable\":false,\"to\":\"Signer\"}},\"Address\",\"U64\"],\"name\":\"dev_mint\"}},{\"Function\":{\"fields\":[],\"name\":\"get_all_machine_status\"}},{\"Function\":{\"fields\":[{\"Reference\":{\"mutable\":false,\"to\":\"Signer\"}},{\"Reference\":{\"mutable\":false,\"to\":{\"Struct\":{\"address\":\"0x0d5d2540ad98fb0f743422e4a99c817f7cfd406438b356a94eb73155e0003eb6\",\"generic_type_params\":[],\"module\":\"mintMachine\",\"name\":\"NFTMachine\"}}}},{\"Vector\":{\"items\":{\"Vector\":{\"items\":\"U8\"}}}}],\"name\":\"get_nft_price\"}},{\"Function\":{\"fields\":[],\"name\":\"get_white_list_counter\"}},{\"Function\":{\"fields\":[{\"Reference\":{\"mutable\":false,\"to\":\"Signer\"}},\"Address\"],\"name\":\"init_mint_machine\"}},{\"Function\":{\"fields\":[{\"Reference\":{\"mutable\":false,\"to\":\"Signer\"}}],\"name\":\"init_module\"}},{\"Function\":{\"fields\":[{\"Reference\":{\"mutable\":false,\"to\":\"Signer\"}},\"U8\",\"Address\"],\"name\":\"mint\"}},{\"Function\":{\"fields\":[],\"name\":\"my_resource_address\"}},{\"Function\":{\"fields\":[],\"name\":\"my_resource_address_balance\"}},{\"Function\":{\"fields\":[{\"Reference\":{\"mutable\":false,\"to\":\"Signer\"}},\"U64\",{\"Vector\":{\"items\":{\"Vector\":{\"items\":\"U8\"}}}}],\"name\":\"public_mint\"}},{\"Function\":{\"fields\":[{\"Reference\":{\"mutable\":false,\"to\":\"Signer\"}},\"Address\"],\"name\":\"set_admin\"}},{\"Function\":{\"fields\":[{\"Reference\":{\"mutable\":false,\"to\":\"Signer\"}}],\"name\":\"set_finish_whilelist_mint\"}},{\"Function\":{\"fields\":[{\"Reference\":{\"mutable\":false,\"to\":\"Signer\"}},\"Bool\"],\"name\":\"set_mint_paused\"}},{\"Function\":{\"fields\":[{\"Reference\":{\"mutable\":false,\"to\":\"Signer\"}},\"U64\",\"Bool\"],\"name\":\"set_mint_price\"}},{\"Function\":{\"fields\":[{\"Reference\":{\"mutable\":false,\"to\":\"Signer\"}}],\"name\":\"set_mint_started\"}},{\"Function\":{\"fields\":[{\"Reference\":{\"mutable\":false,\"to\":\"Signer\"}},\"Address\"],\"name\":\"set_recipient\"}},{\"Function\":{\"fields\":[{\"Reference\":{\"mutable\":false,\"to\":\"Signer\"}},\"U64\"],\"name\":\"set_reserved\"}},{\"Function\":{\"fields\":[{\"Reference\":{\"mutable\":false,\"to\":\"Signer\"}},{\"Vector\":{\"items\":\"Address\"}},\"Bool\"],\"name\":\"set_whitelist\"}},{\"Function\":{\"fields\":[{\"Reference\":{\"mutable\":false,\"to\":\"Signer\"}},{\"Vector\":{\"items\":{\"Vector\":{\"items\":\"U8\"}}}}],\"name\":\"whitelist_mint\"}},{\"Function\":{\"fields\":[{\"Reference\":{\"mutable\":false,\"to\":\"Signer\"}},\"U64\"],\"name\":\"withdraw_royalty\"}}],\"name\":\"mintMachine\",\"structs\":[{\"Struct\":{\"fields\":[{\"field_type\":\"Address\",\"name\":\"owner\"},{\"field_type\":\"Address\",\"name\":\"tokenId\"}],\"name\":\"BurnEvent\"}},{\"Struct\":{\"fields\":[{\"field_type\":\"U256\",\"name\":\"mint_amount\"}],\"name\":\"History\"}},{\"Struct\":{\"fields\":[{\"field_type\":\"U8\",\"name\":\"mint_type\"},{\"field_type\":\"Address\",\"name\":\"owner\"},{\"field_type\":{\"Struct\":{\"address\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"generic_type_params\":[{\"Struct\":{\"address\":\"0x0000000000000000000000000000000000000000000000000000000000000004\",\"generic_type_params\":[],\"module\":\"aptos_token\",\"name\":\"AptosToken\"}}],\"module\":\"object\",\"name\":\"Object\"}},\"name\":\"token\"}],\"name\":\"MintEvent\"}},{\"Struct\":{\"fields\":[{\"field_type\":\"Address\",\"name\":\"admin\"},{\"field_type\":\"Address\",\"name\":\"recipient\"},{\"field_type\":{\"Struct\":{\"address\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"generic_type_params\":[],\"module\":\"string\",\"name\":\"String\"}},\"name\":\"collection_name\"},{\"field_type\":{\"Struct\":{\"address\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"generic_type_params\":[],\"module\":\"string\",\"name\":\"String\"}},\"name\":\"token_name\"},{\"field_type\":\"U64\",\"name\":\"mint_price\"},{\"field_type\":\"Bool\",\"name\":\"in_usdc\"},{\"field_type\":\"Bool\",\"name\":\"paused\"},{\"field_type\":\"U64\",\"name\":\"total_supply\"},{\"field_type\":\"U64\",\"name\":\"minted\"},{\"field_type\":\"U64\",\"name\":\"public_mint_limit\"},{\"field_type\":\"Bool\",\"name\":\"mint_started\"},{\"field_type\":\"Bool\",\"name\":\"whitelist_mint_available\"},{\"field_type\":\"U64\",\"name\":\"reserved\"}],\"name\":\"NFTMachine\"}},{\"Struct\":{\"fields\":[{\"field_type\":{\"Struct\":{\"address\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"generic_type_params\":[],\"module\":\"account\",\"name\":\"SignerCapability\"}},\"name\":\"cap\"},{\"field_type\":\"U8\",\"name\":\"init\"}],\"name\":\"ResourceCap\"}},{\"Struct\":{\"fields\":[{\"field_type\":{\"Struct\":{\"address\":\"0x0000000000000000000000000000000000000000000000000000000000000004\",\"generic_type_params\":[],\"module\":\"token\",\"name\":\"BurnRef\"}},\"name\":\"burn_ref\"},{\"field_type\":{\"Struct\":{\"address\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"generic_type_params\":[],\"module\":\"object\",\"name\":\"TransferRef\"}},\"name\":\"transfer_ref\"}],\"name\":\"TokenRef\"}},{\"Struct\":{\"fields\":[{\"field_type\":\"Address\",\"name\":\"from\"},{\"field_type\":\"Address\",\"name\":\"to\"},{\"field_type\":\"Address\",\"name\":\"tokenId\"}],\"name\":\"TransferEvent\"}},{\"Struct\":{\"fields\":[{\"field_type\":{\"Struct\":{\"address\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"generic_type_params\":[\"Address\",\"U8\"],\"module\":\"table\",\"name\":\"Table\"}},\"name\":\"minted\"},{\"field_type\":\"U64\",\"name\":\"counter\"}],\"name\":\"Whitelist\"}},{\"Struct\":{\"fields\":[{\"field_type\":\"Address\",\"name\":\"signer_address\"},{\"field_type\":\"Address\",\"name\":\"to\"},{\"field_type\":\"U64\",\"name\":\"amount\"}],\"name\":\"WithdrawEvent\"}}]}"
  }
]

Query Parameters

movement.app.pangea.foundation/v1/api/modules?chains=MOVEMENT

  • chains: Filters the data by chain.
  • from_block / from_version: Filters the data by a starting version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • to_block / to_version: Filters the data by an ending version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • access_path_address__in: Filters the data by access_path_address.
  • resource_address__in: Filters the data by resource_address.
  • resource_module__in: Filters the data by resource_module.
  • resource_event_name__in: Filters the data by resource_event_name.

Movement Balances

Fetch Movement balance data for versions 0 to 854400 for address 0x1275074a3cceabf3a430abf0a3d3b29acb5794438106c55c35b893e3e08fab81.

curl -s --location --request GET \
 "https://movement.app.pangea.foundation/v1/api/balances?chains=MOVEMENT&from_block=0&to_block=854400&address__in=0x1275074a3cceabf3a430abf0a3d3b29acb5794438106c55c35b893e3e08fab81" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "block_number": 854309,
    "transaction_hash": "0x0bc3bf9613f2dbfcbe08ac9d36cb9bdea1b474b417343623e80bc544f9c062df",
    "timestamp": 1742899477558360,
    "address": "0x1275074a3cceabf3a430abf0a3d3b29acb5794438106c55c35b893e3e08fab81",
    "object": null,
    "asset": "0x0000000000000000000000000000000000000000000000000000000000000001",
    "balance": 891623213478
  }
]

Query Parameters

movement.app.pangea.foundation/v1/api/balances?chains=MOVEMENT

  • chains: Filters the data by chain.
  • from_block / from_version: Filters the data by a starting version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • to_block / to_version: Filters the data by an ending version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • address__in: Filters the data by address.
  • object__in: Filters the data by object.
  • asset__in: Filters the data by asset.

ERC20 Metadata

Block, transaction, and log data corresponds to when the ERC20 token was first indexed by Pangea, not when the contract was first deployed.

Fetch ERC20 metadata for blocks 21000000 to 21010000.

curl -s --location --request GET \
    "https://app.pangea.foundation/v1/api/erc20?chains=ETH&from_block=21000000&to_block=21010000" \
    --header "Accept: application/jsonstream" \
    --header "Accept-Encoding: gzip" --compressed \
    --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 1,
    "first_seen_block_number": 21009996,
    "first_seen_block_hash": "0x6f054522b7ae88d8f82c45413d0e4c544e45fbeeb829c13ba25a1105c433047c",
    "first_seen_transaction_hash": "0x73c0c0145c432b756fa19e432b3c8b85ecf4170b135cf2d50b302c1046692f06",
    "first_seen_transaction_index": 2,
    "first_seen_log_index": 7,
    "address": "0xeca2ffd283841122142c6cdf161149075777fde1",
    "name": "Vitalik's 2017 Git",
    "symbol": "CASPER",
    "decimals": 9
  }
]

Query Parameters

v1/api/erc20

  • chains: Filters the data by specific blockchain networks.
  • from_block: Filters the data by a starting block number.
  • to_block: Filters the data by an ending block number.
  • address__in: Filters the data by a list of ERC20 contract address.
  • symbol__in: Filters the data by a list of token symbol.
  • name__in: Filters the data by a list of token name.
  • decimals__gte: Filters the data by token decimal using the greater than or equal to operator.
  • decimals__lte: Filters the data by token decimal using the less than or equal to operator.

ERC20 Transfers

Fetch ERC20 transfers for blocks 21000000 to 21000100 for WBTC 0x2260fac5e5542a773aa44fbcfedf7c193bc2c599.

curl -s --location --request GET \
    "https://app.pangea.foundation/v1/api/erc20/transfers?chains=ETH&from_block=21000000&to_block=21000100&address__in=0x2260fac5e5542a773aa44fbcfedf7c193bc2c599" \
    --header "Accept: application/jsonstream" \
    --header "Accept-Encoding: gzip" --compressed \
    --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
    {
    "chain": 1,
    "block_number": 21000099,
    "block_hash": "0x4334aa15d92a15a71b774326d0df1d0e6d2b661d2ee1a40f04621cf3b3349b13",
    "transaction_hash": "0xd85446edc3a134f78416e994fd8726734910926cc828969bdd9d1c1b40ebe3ec",
    "transaction_index": 4,
    "log_index": 19,
    "address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599",
    "name": "Wrapped BTC",
    "symbol": "WBTC",
    "decimals": 8,
    "from": "0xe43ca1dee3f0fc1e2df73a0745674545f11a59f5",
    "to": "0x4585fe77225b41b697c938b018e2ac67ac5a20c0",
    "value": 0.995,
    "timestamp": 1729346735
  }
]

Filtering by from address

We can identify token mint events by fetching ERC20 token transfers where the from address is 0x0000000000000000000000000000000000000000.

Values for a zero address includes falsey values:

  • 0x0
  • 0x0000000000000000000000000000000000000000

Fetch ERC20 transfers for blocks 21000000 to 21000100 with from address 0x0.

curl -s --location --request GET \
    "https://app.pangea.foundation/v1/api/erc20/transfers?chains=ETH&from_block=21000000&to_block=21000100&from__in=0x0" \
    --header "Accept: application/jsonstream" \
    --header "Accept-Encoding: gzip" --compressed \
    --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 1,
    "block_number": 21000100,
    "block_hash": "0x4ca0bd7a1fab8b5da43ebb8c619bae4446759c75f0b80973f5bbaf11436c3010",
    "transaction_hash": "0xf7dce4331124e82ae316a418119ca52f92aa570ec06aa09b2a7639e70d09dbba",
    "transaction_index": 231,
    "log_index": 314,
    "address": "0x502ed02100ea8b10f8d7fc14e0f86633ec2ddada",
    "name": "🐼",
    "symbol": "🐼",
    "decimals": 18,
    "from": "0x0000000000000000000000000000000000000000",
    "to": "0x53e0caf98b93bbc26acf75572379e4e96b962239",
    "value": 5000000,
    "timestamp": 1729346747
  }
]

Filtering by to address

We can use a similar query on to address to identify token burn events.

Fetch ERC20 transfers for blocks 21000000 to 21000100 with to address 0x0.

curl -s --location --request GET \
    "https://app.pangea.foundation/v1/api/erc20/transfers?chains=ETH&from_block=21000000&to_block=21000100&to__in=0x0" \
    --header "Accept: application/jsonstream" \
    --header "Accept-Encoding: gzip" --compressed \
    --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 1,
    "block_number": 21000099,
    "block_hash": "0x4334aa15d92a15a71b774326d0df1d0e6d2b661d2ee1a40f04621cf3b3349b13",
    "transaction_hash": "0xbfefd8c032a08048c8e7cb216c9439ed532980452d35eb2c65983acee5c6b12b",
    "transaction_index": 183,
    "log_index": 366,
    "address": "0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0",
    "name": "Wrapped liquid staked Ether 2.0",
    "symbol": "wstETH",
    "decimals": 18,
    "from": "0x3451b6b219478037a1ac572706627fc2bda1e812",
    "to": "0x0000000000000000000000000000000000000000",
    "value": 406.0627450650014,
    "timestamp": 1729346735
  }
]

Query Parameters

v1/api/erc20/transfers

  • chains: Filters the data by specific blockchain networks.
  • from_block: Filters the data by a starting block number.
  • to_block: Filters the data by an ending block number.
  • address__in: Filters the data by a list of ERC20 contract address.
  • to__in: Filters the data by a list of to addresses.
  • from__in: Filters the data by a list of from addresses.
  • value__gte: Filters the data by value using the greater than or equal to operator.
  • value__lte: Filters the data by value using the less than or equal to operator.

ERC20 Approvals

Fetch ERC20 approvals for blocks 21000000 to 21000100 for WBTC 0x2260fac5e5542a773aa44fbcfedf7c193bc2c599.

curl -s --location --request GET \
    "https://app.pangea.foundation/v1/api/erc20/approvals?chains=ETH&from_block=21000000&to_block=21000100&address__in=0x2260fac5e5542a773aa44fbcfedf7c193bc2c599" \
    --header "Accept: application/jsonstream" \
    --header "Accept-Encoding: gzip" --compressed \
    --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 1,
    "block_number": 21000089,
    "block_hash": "0xc9d7228978bbfc4a314ed1e1b536ec5a7a3ac8f749d4e5238ed6e9de1fbd64d3",
    "transaction_hash": "0xa9d5391d10b8b9a6e2d3bcb28325833a553766831d86dda7f4a408192594b513",
    "transaction_index": 89,
    "log_index": 314,
    "address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599",
    "name": "Wrapped BTC",
    "symbol": "WBTC",
    "decimals": 8,
    "owner": "0xa58aef2608a4c1d687f2e85a8c45d8fd5c720e37",
    "spender": "0x1231deb6f5749ef6ce6943a275a1d3e7486f4eae",
    "value": 2
  }
]

Query Parameters

v1/api/erc20/approvals

  • chains: Filters the data by specific blockchain networks.
  • from_block: Filters the data by a starting block number.
  • to_block: Filters the data by an ending block number.
  • address__in: Filters the data by a list of ERC20 contract address.
  • owner__in: Filters the data by a list of ERC20 token owner.
  • spender__in: Filters the data by a list of ERC20 token spender.
  • value__gte: Filters the data by value using the greater than or equal to operator.
  • value__lte: Filters the data by value using the less than or equal to operator.
  • symbol__in: Filters the data by a list of token symbol.
  • name__in: Filters the data by a list of token name.
  • decimals__gte: Filters the data by token decimal using the greater than or equal to operator.
  • decimals__lte: Filters the data by token decimal using the less than or equal to operator.

Metadata

Early Access

These datasets are currently in our Beta environment. If you would like early access you can apply here

Early Access

These datasets are currently in our Beta environment. If you would like early access you can apply here

Uniswap V3 API

Uniswap V3 introduces a new approach to liquidity provision by introducing the Concentrated Liquidity Automated Market Maker (CLAMM). Unlike the simple x * y = k constant function of Uniswap V2 which spreads liquidity across the entire curve from 0 to ∞, V3 splits the AMM curve into discrete 'ticks', enabling users to provide liquidity within a specific price range. When the price crosses a tick the liquidity within that band becomes active, changing the proportions of token0 and token1 and generating fees for any users providing liquidity within that tick. This enables more sophisticated liquidity provision and trading strategies such as single-sided liquidity provision and limit orders.

Whilst the CLAMM model provides LPs with more control, it requires active position management to mitigate impermanent losses and optimise profitability. Traders using a CLAMM also require detailed information about the liquidity profile of a pool in order to simulate market impact and identify price ranges in which liquidity is thick or thin.

Pangea provides comprehensive coverage of Uniswap V3 Pools, Prices, Positions and Fees to empower traders, liquidity providers, and integrators.

This toolbox covers Uniswap V3 and all of its forks, cross chain.

Uniswap V3 Pools

Fetch USDC-WETH 5 bps pool at pool_address 0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640.

curl -s --location --request GET \
    "https://app.pangea.foundation/v1/api/uniswap/v3/pools?chains=ETH&from_block=0&pool_address__in=0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640" \
    --header "Accept: application/jsonstream" \
    --header "Accept-Encoding: gzip" --compressed \
    --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  {
    "chain": 1,
    "block_number": 12376729,
    "block_hash": "0x3496d03e6efd9a02417c713fa0de00915b78581a2eaf0e8b3fce435a96ab02c7",
    "transaction_hash": "0x125e0b641d4a4b08806bf52c0c6757648c9963bcda8681e4f996f09e00d4c2cc",
    "transaction_index": 59,
    "log_index": 101,
    "factory": "0x1f98431c8ad98523631ae4a59f267346ea31f984",
    "token0_address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
    "token0_decimals": 6,
    "token0_name": "USD//C",
    "token0_symbol": "USDC",
    "token1_address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "token1_decimals": 18,
    "token1_name": "Wrapped Ether",
    "token1_symbol": "WETH",
    "pool_address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
    "fee": 500,
    "tick_spacing": 10,
    "timestamp": 1620250931
  }
]

Filter by token address

Fetch pools for blocks 21000000 to 21010000 with USDC 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 as either token0 or token1.

curl -s --location --request GET \
    "https://app.pangea.foundation/v1/api/uniswap/v3/pools?chains=ETH&from_block=21000000&to_block=21010000&tokens__in=0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" \
    --header "Accept: application/jsonstream" \
    --header "Accept-Encoding: gzip" --compressed \
    --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 1,
    "block_number": 21003722,
    "block_hash": "0xaf02d6d7dcfe57bb7a2958ccd497561a231ca482a5f30a0700b8fafdbf67102a",
    "transaction_hash": "0x6c8df40ff22e8bded22339122ab4115df2c011dcd105cecea9a350828a5b0ae9",
    "transaction_index": 1,
    "log_index": 4,
    "factory": "0x1f98431c8ad98523631ae4a59f267346ea31f984",
    "token0_address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
    "token0_decimals": 6,
    "token0_name": "USD//C",
    "token0_symbol": "USDC",
    "token1_address": "0xcd1bc8580468f9278771e96894ad087ebeac778f",
    "token1_decimals": 6,
    "token1_name": "UnicoinΛ£ USD",
    "token1_symbol": "usdΛ£",
    "pool_address": "0x53d8c010bd9ff116d2e8aa912a17a9a08dd56208",
    "fee": 500,
    "tick_spacing": 10,
    "timestamp": 1729390355
  }
]

Query Parameters

v1/api/uniswap/v3/pools

  • chains: Filters the data by specific blockchain networks.
  • from_block: Filters the data by a starting block number.
  • to_block: Filters the data by an ending block number.
  • pool_address__in: Filters the data by a list of pool_address.
  • factory_address__in: Filters the data by a list of pool factory_address.
  • token0__in / token0_address__in: Filters the data by a list of token0_address.
  • token1__in / token1_address__in: Filters the data by a list of token1_address.
  • tokens__in: Filters the data by a list of both token0_address and token1_address.
  • fee__gte: Filters the data by fee using the greater than or equal to operator.
  • fee__lte: Filters the data by fee using the less than or equal to operator.
  • tick_spacing__gte: Filters the data by tick_spacing using the greater than or equal to operator.
  • tick_spacing__lte: Filters the data by tick_spacing using the less than or equal to operator.

Uniswap V3 Prices

Fetch prices for the USDC-WETH 5 bps Uniswap V3 Pool using the pool_address__in filter for blocks 21000000 to 21010000.

curl -s --location --request GET \
    "https://app.pangea.foundation/v1/api/uniswap/v3/prices?chains=ETH&from_block=21000000&to_block=21010000&pool_address__in=0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640" \
    --header "Accept: application/jsonstream" \
    --header "Accept-Encoding: gzip" --compressed \
    --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 1,
    "block_number": 21009999,
    "block_hash": "0x6570a1fe1866fcb94c260314633f071372070abcb440658b58b1fed043898aef",
    "transaction_hash": "0x1b163a66d89c87030a79c000b2962261cf4e8d7e27fc107a153ec00f3fd6e9ab",
    "transaction_index": 30,
    "log_index": 214,
    "pool_address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
    "virtual0": 3.3838346511779787e-15,
    "virtual1": 7.720969858310247e+51,
    "price": 2751.0370783676967,
    "sender": "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad",
    "receiver": "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad",
    "amount0": 1000,
    "amount1": -0.36331888587226946,
    "liquidity": 5111407374417632000,
    "tick": 197122,
    "token0_address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
    "token0_decimals": 6,
    "token0_name": "USD//C",
    "token0_symbol": "USDC",
    "token1_address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "token1_decimals": 18,
    "token1_name": "Wrapped Ether",
    "token1_symbol": "WETH",
    "timestamp": 1729466015
  }
]

Query Parameters

v1/api/uniswap/v3/prices

  • chains: Filters the data by specific blockchain networks.
  • from_block: Filters the data by a starting block number.
  • to_block: Filters the data by an ending block number.
  • pool_address__in: Filters the data by a list of pool_address.
  • pool_factory_address__in: Filters the data by a list of pool_factory_address.
  • virtual0__gte: Filters the data by virtual0 using the greater than or equal to operator.
  • virtual0__lte: Filters the data by virtual0 using the less than or equal to operator.
  • virtual1__gte: Filters the data by virtual1 using the greater than or equal to operator.
  • virtual1__lte: Filters the data by virtual1 using the less than or equal to operator.
  • price__gte: Filters the data by price using the greater than or equal to operator.
  • price__lte: Filters the data by price using the less than or equal to operator.
  • sender__in: Filters the data by a list of sender.
  • receiver__in: Filters the data by a list of receiver.
  • amount0__gte: Filters the data by amount0 using the greater than or equal to operator.
  • amount0__lte: Filters the data by amount0 using the less than or equal to operator.
  • amount1__gte: Filters the data by amount1 using the greater than or equal to operator.
  • amount1__lte: Filters the data by amount1 using the less than or equal to operator.
  • liquidity__gte: Filters the data by liquidity using the greater than or equal to operator.
  • liquidity__lte: Filters the data by liquidity using the less than or equal to operator.
  • tick__gte: Filters the data by tick using the greater than or equal to operator.
  • tick__lte: Filters the data by tick using the less than or equal to operator.
  • token0_address__in: Filters the data by a list of token0_address.
  • token0_symbol__in: Filters the data by a list of token0_symbol.
  • token1_address__in: Filters the data by a list of token1_address.
  • token1_symbol__in: Filters the data by a list of token1_symbol.
  • tokens_address__in: Filters the data by a list of both token0_address and token1_address.
  • tokens_symbol__in: Filters the data by a list of both token0_symbol and token1_symbol.
  • price__gte: Filters the data by price using the greater than or equal to operator.
  • price__lte: Filters the data by price using the less than or equal to operator.

Uniswap V3 Positions

Fetch Mint and Burn events for blocks 21000000 to 21010000 for pool_address 0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640.

curl -s --location --request GET \
    "https://app.pangea.foundation/v1/api/uniswap/v3/positions?chains=ETH&from_block=21000000&to_block=21010000&pool_address__in=0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640" \
    --header "Accept: application/jsonstream" \
    --header "Accept-Encoding: gzip" --compressed \
    --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 1,
    "block_number": 21009973,
    "block_hash": "0x490223b3d3d242be208b33f1feab7c1d54c846b52c069b942a1e177b5877e741",
    "transaction_hash": "0xccfa41ef4044dc6988ccd19382dc3757f2b0763cf36e11339ffe287b7b2f29e8",
    "transaction_index": 61,
    "log_index": 188,
    "timestamp": 1729465703,
    "event": "Burn",
    "sender": "0xc36442b4a4522e871399cd717abdd847ab11fe88",
    "recipient": "0xc36442b4a4522e871399cd717abdd847ab11fe88",
    "tick_lower": 197290,
    "tick_upper": 197690,
    "amount": 23318830090566240,
    "amount0": 24015.731726,
    "amount1": 0,
    "pool_address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
  }
]

Query Parameters

v1/api/uniswap/v3/positions

  • chains: Filters the data by specific blockchain networks.
  • from_block: Filters the data by a starting block number.
  • to_block: Filters the data by an ending block number.
  • pool_address__in: Filters the data by a list of pool_address.
  • sender__in: Filters the data by a list of sender.
  • recipient__in: Filters the data by a list of recipient.
  • amount0__gte: Filters the data by amount0 using the greater than or equal to operator.
  • amount0__lte: Filters the data by amount0 using the less than or equal to operator.
  • amount1__gte: Filters the data by amount1 using the greater than or equal to operator.
  • amount1__lte: Filters the data by amount1 using the less than or equal to operator.
  • amount__gte: Filters the data by amount using the greater than or equal to operator.
  • amount__lte: Filters the data by amount using the less than or equal to operator.
  • tick_lower__gte: Filters the data by tick_lower using the greater than or equal to operator.
  • tick_lower__lte: Filters the data by tick_lower using the less than or equal to operator.
  • tick_upper__gte: Filters the data by tick_upper using the greater than or equal to operator.
  • tick_upper__lte: Filters the data by tick_upper using the less than or equal to operator.
  • tick__gte: Filters the data by the minimum tick_lower value using the greater than or equal to operator.
  • tick__lte: Filters the data by the maximum tick_upper value using the greater than or equal to operator.

Uniswap V3 Fees

Fetch Collect events for blocks 21000000 to 21010000 for pool_address 0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640.

curl -s --location --request GET \
    "https://app.pangea.foundation/v1/api/uniswap/v3/fees?chains=ETH&from_block=21000000&to_block=21010000&pool_address__in=0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640" \
    --header "Accept: application/jsonstream" \
    --header "Accept-Encoding: gzip" --compressed \
    --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 1,
    "block_number": 21009973,
    "block_hash": "0x490223b3d3d242be208b33f1feab7c1d54c846b52c069b942a1e177b5877e741",
    "transaction_hash": "0xccfa41ef4044dc6988ccd19382dc3757f2b0763cf36e11339ffe287b7b2f29e8",
    "transaction_index": 61,
    "log_index": 192,
    "timestamp": 1729465703,
    "event": "Collect",
    "sender": "0xc36442b4a4522e871399cd717abdd847ab11fe88",
    "recipient": "0xc36442b4a4522e871399cd717abdd847ab11fe88",
    "tick_lower": 197290,
    "tick_upper": 197690,
    "amount0": 24125.917285,
    "amount1": 0.03878239127376524,
    "pool_address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
  }
]

Query Parameters

v1/api/uniswap/v3/fees

  • chains: Filters the data by specific blockchain networks.
  • from_block: Filters the data by a starting block number.
  • to_block: Filters the data by an ending block number.
  • pool_address__in: Filters the data by a list of pool_address.
  • sender__in: Filters the data by a list of sender.
  • recipient__in: Filters the data by a list of recipient.
  • amount0__gte: Filters the data by amount0 using the greater than or equal to operator.
  • amount0__lte: Filters the data by amount0 using the less than or equal to operator.
  • amount1__gte: Filters the data by amount1 using the greater than or equal to operator.
  • amount1__lte: Filters the data by amount1 using the less than or equal to operator.
  • tick_lower__gte: Filters the data by tick_lower using the greater than or equal to operator.
  • tick_lower__lte: Filters the data by tick_lower using the less than or equal to operator.
  • tick_upper__gte: Filters the data by tick_upper using the greater than or equal to operator.
  • tick_upper__lte: Filters the data by tick_upper using the less than or equal to operator.
  • tick__gte: Filters the data by the minimum tick_lower value using the greater than or equal to operator.
  • tick__lte: Filters the data by the maximum tick_upper value using the greater than or equal to operator.

Uniswap V2 API

Uniswap V2 is a constant function market maker where tokens are swapped at a price on the constant function curve.

reserve0 * reserve1 = k

Liquidty providers receive an LP Token for the Pair for adding tokens in the correct proportions of reserve0 and reserve1. In return a new LP Token for the Pair is received. Fees are accumulated in reserve0 and reserve1 redeemable by LP Token holders making it a passive income strategy. Traders need to know the volumes of reserve0 and reserve1 to build a quote for a swap.

amount1 = amount0 * reserve1 / reserve0

Pangea provides comprehensive coverage of Uniswap V2 Pairs and Prices to empower traders, liquidity providers, and integrators.

This toolbox covers Uniswap V2 and all of its forks, cross chain.

Uniswap V2 Pairs

Get all pairs that trade with USDC token 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 for blocks 0 to 21170000.

curl -s --location --request GET \
    "https://app.pangea.foundation/v1/api/uniswap/v2/pairs?chains=ETH&from_block=0&to_block=21170000&tokens__in=0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" \
    --header "Accept: application/jsonstream" \
    --header "Accept-Encoding: gzip" --compressed \
    --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 1,
    "block_number": 21168894,
    "block_hash": "0x663730c5cacd58e8186bb21dad597b60eebd8b63b3bcefc5b91be68732cb3f02",
    "transaction_hash": "0x3ba54aa110aede892a96fd4c5bf4fc4af534d8baecc4e85f2e96ebc2fb60493f",
    "transaction_index": 152,
    "log_index": 491,
    "factory": "0x5c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f",
    "token0_address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
    "token0_decimals": 6,
    "token0_name": "USD//C",
    "token0_symbol": "USDC",
    "token1_address": "0xc035a7cf15375ce2706766804551791ad035e0c2",
    "token1_decimals": 18,
    "token1_name": "Aave Ethereum Lido wstETH",
    "token1_symbol": "aEthLidowstETH",
    "pair_address": "0xa0a0e5fb1f93d953e0839d2eaf364eadf1dfaf5d",
    "pair_index": 387776,
    "timestamp": 1731381779
  }
]

Filter on factory address

Fetch pairs created between blocks 21000000 and 21010000 from the official Uniswap V2 factory_address 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f.

curl -s --location --request GET \
    "https://app.pangea.foundation/v1/api/uniswap/v2/pairs?chains=ETH&from_block=21000000&to_block=21010000&factory_address__in=0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f" \
    --header "Accept: application/jsonstream" \
    --header "Accept-Encoding: gzip" --compressed \
    --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 1,
    "block_number": 21009996,
    "block_hash": "0x6f054522b7ae88d8f82c45413d0e4c544e45fbeeb829c13ba25a1105c433047c",
    "transaction_hash": "0x73c0c0145c432b756fa19e432b3c8b85ecf4170b135cf2d50b302c1046692f06",
    "transaction_index": 2,
    "log_index": 7,
    "factory": "0x5c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f",
    "token0_address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "token0_decimals": 18,
    "token0_name": "Wrapped Ether",
    "token0_symbol": "WETH",
    "token1_address": "0xeca2ffd283841122142c6cdf161149075777fde1",
    "token1_decimals": 9,
    "token1_name": "Vitalik's 2017 Git",
    "token1_symbol": "CASPER",
    "pair_address": "0x0204845860ce2c689decb9e5ee895e4939996a7d",
    "pair_index": 380963,
    "timestamp": 1729465979
  }
]

Query parameters

v1/api/uniswap/v2/pairs

  • chains: Filters the data by specific blockchain networks.
  • from_block: Filters the data by a starting block number.
  • to_block: Filters the data by an ending block number.
  • pair_address__in: Filters the data by a list of pair_address.
  • factory_address__in: Filters the data by a list of pair factory_address.
  • token0__in / token0_address__in: Filters the data by a list of token0_address.
  • token1__in / token1_address__in: Filters the data by a list of token1_address.
  • tokens__in: Filters the data by a list of both token0_address and token1_address.

Uniswap V2 Prices

Fetch prices for blocks 21000000 to 21010000 for pair_address 0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc.

curl -s --location --request GET \
    "https://app.pangea.foundation/v1/api/uniswap/v2/prices?chains=ETH&from_block=21000000&to_block=21010000&pair_address__in=0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc" \
    --header "Accept: application/jsonstream" \
    --header "Accept-Encoding: gzip" --compressed \
    --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

{
  ...
  {
    "chain": 1,
    "block_number": 21009999,
    "block_hash": "0x6570a1fe1866fcb94c260314633f071372070abcb440658b58b1fed043898aef",
    "transaction_hash": "0xfce09be95c468d592796d539bfef619345224acdb8dad7fe8e49b336f36d773c",
    "transaction_index": 10,
    "log_index": 69,
    "pair_address": "0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc",
    "event": "swap",
    "reserve0": "0x29056f6e61f0",
    "reserve1": "0x378e23ce52fd20cba1b",
    "price": 2750.7038551923733,
    "sender": "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad",
    "receiver": "0x163c5e051049e92915017fe7bb9b8ce6182bcbb1",
    "amount0": 522.024415,
    "amount1": 0.19034732574832847,
    "lp_amount": 0,
    "protocol_fee": null,
    "token0_address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
    "token0_decimals": 6,
    "token0_name": "USD//C",
    "token0_symbol": "USDC",
    "token1_address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "token1_decimals": 18,
    "token1_name": "Wrapped Ether",
    "token1_symbol": "WETH",
    "timestamp": 1729466015
  }
}

Query parameters

v1/api/uniswap/v2/prices

  • chains: Filters the data by specific blockchain networks.
  • from_block: Filters the data by a starting block number.
  • to_block: Filters the data by an ending block number.
  • pair_address__in: Filters the data by a list of pair_address.
  • pair_factory_address__in: Filters the data by a list of pair_factory_address.
  • reserve0__gte: Filters the data by reserve0 using the greater than or equal to operator.
  • reserve0__lte: Filters the data by reserve0 using the less than or equal to operator.
  • reserve1__gte: Filters the data by reserve1 using the greater than or equal to operator.
  • reserve1__lte: Filters the data by reserve1 using the less than or equal to operator.
  • price__gte: Filters the data by price using the greater than or equal to operator.
  • price__lte: Filters the data by price using the less than or equal to operator.
  • sender__in: Filters the data by a list of sender.
  • receiver__in: Filters the data by a list of receiver.
  • amount0__gte: Filters the data by amount0 using the greater than or equal to operator.
  • amount0__lte: Filters the data by amount0 using the less than or equal to operator.
  • amount1__gte: Filters the data by amount1 using the greater than or equal to operator.
  • amount1__lte: Filters the data by amount1 using the less than or equal to operator.
  • lp_amount__gte: Filters the data by lp_amount using the greater than or equal to operator.
  • lp_amount__lte: Filters the data by lp_amount using the less than or equal to operator.
  • protocol_fee__gte: Filters the data by protocol_fee using the greater than or equal to operator.
  • protocol_fee__lte: Filters the data by protocol_fee using the less than or equal to operator.
  • token0_address__in: Filters the data by a list of token0_address.
  • token0_symbol__in: Filters the data by a list of token0_symbol.
  • token1_address__in: Filters the data by a list of token1_address.
  • token1_symbol__in: Filters the data by a list of token1_symbol.
  • tokens_address__in: Filters the data by a list of both token0_address and token1_address.
  • tokens_symbol__in: Filters the data by a list of both token0_symbol and token1_symbol.

Curve API

Curve is a decentralised exchange governed by the Curve DAO, which optimises liquidity utilisation through algorithmically adjusting parameters.

Curve pools modify the x * y = k constant function by using the A parameter to control the concentration of liquidity around the midpoint, and using the gamma parameter to determine the breadth of the curve, making a more efficient use of the pool's liquidity and lowering slippage. Depending on price action and liquidity, the A parameter may ramp up or down over an algorithmically determined timeframe. Dynamic fees are also implemented using the mid_fee, out_fee and fee_gamma parameters, with fees increasing when the pool is imbalanced.

Curve has two main pool types: StableSwap and CryptoSwap. These also come in different pool 'flavours': plain pools, metapools, and lending pools. Unlike Uniswap, Curve pools may contain more than two assets, although a swap is always between two assets.

StableSwap pools are optimised for asset pairings which have stable relative values, such as stablecoins (e.g. USDC-USDT-DAI) or derivatives (e.g. stETH-ETH); StableSwap-NG pools are a new generation of these contracts with some optimisations. CryptoSwap pools are optimised for asset pairings which have volatile relative values (e.g. ETH-CVX).

CryptoSwap V2 contracts improve upon the original V1 contracts; Tricrypto-NG pools are a new generation of the three-token CryptoSwap contracts with some optimisations.

Lending pools contain a wrapped representation of an underlying asset (e.g. aUSDC), which is lent out on decentralised lending markets such as Aave, Compound, or Yearn, enabling liquidity providers to earn interest on coins as well as trading fees and liquidity incentives. The underlying_coin refers to the underlying asset being lent out.

Metapools allow for Curve pool LP tokens to be paired with other assets, combining liquidity from the base pools. For example, by depositing DAI, USDC, and USDT into the 3pool, a liquidity provider receives 3CRV LP tokens. 3CRV can then be paired with GUSD in the gusd3CRV metapool. In this example, the 3pool is considered the base_pool for this metapool, with DAI, USDC, and USDT each being a base_coin.

All Curve pools are associated with an LP token, which users receive upon depositing liquidity. In newer pool implementations, there is a single contract for both the pool and LP token.

Our Toolbox API for Curve provides comprehensive coverage of Pools, Prices, and Tokens to empower traders, liquidity providers, and integrators.

This toolbox covers Curve and all of its forks, cross chain.

Curve Pools

Fetch 3Crv pool filtering on pool_address.

curl -s --location --request GET \
    "https://app.pangea.foundation/v1/api/curve/pools?chains=ETH&from_block=0&pool_address__in=0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7" \
    --header "Accept: application/jsonstream" \
    --header "Accept-Encoding: gzip" --compressed \
    --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  {
    "chain": 1,
    "owner": "0x6e8f6d1da6232d5e40b0b8758a0145d6c5123eb7",
    "token": "0x6c3f90f043a72fa612cbac8115ee7e52bde6e490",
    "token_decimals": 18,
    "token_name": "Curve.fi DAI/USDC/USDT",
    "token_symbol": "3Crv",
    "base_pool": "",
    "fee": "0x3d0900",
    "admin_fee": "0x0",
    "initial_a": "0x64",
    "future_a": "0x64",
    "initial_a_time": "0x0",
    "future_a_time": "0x0",
    "pool_address": "0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7",
    "n_coins": 3,
    "coin0": "0x6b175474e89094c44da98b954eedeac495271d0f",
    "coin1": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
    "coin2": "0xdac17f958d2ee523a2206206994597c13d831ec7",
    "coin3": null,
    "coin4": null,
    "coin5": null,
    "coin0_decimals": 18,
    "coin1_decimals": 6,
    "coin2_decimals": 6,
    "coin3_decimals": null,
    "coin4_decimals": null,
    "coin5_decimals": null,
    "coin0_name": "Dai Stablecoin",
    "coin1_name": "USD//C",
    "coin2_name": "Tether USD",
    "coin3_name": null,
    "coin4_name": null,
    "coin5_name": null,
    "coin0_symbol": "DAI",
    "coin1_symbol": "USDC",
    "coin2_symbol": "USDT",
    "coin3_symbol": null,
    "coin4_symbol": null,
    "coin5_symbol": null,
    "base_coin0": null,
    "base_coin1": null,
    "base_coin2": null,
    "base_coin3": null,
    "base_coin4": null,
    "base_coin5": null,
    "base_coin0_decimals": null,
    "base_coin1_decimals": null,
    "base_coin2_decimals": null,
    "base_coin3_decimals": null,
    "base_coin4_decimals": null,
    "base_coin5_decimals": null,
    "base_coin0_name": null,
    "base_coin1_name": null,
    "base_coin2_name": null,
    "base_coin3_name": null,
    "base_coin4_name": null,
    "base_coin5_name": null,
    "base_coin0_symbol": null,
    "base_coin1_symbol": null,
    "base_coin2_symbol": null,
    "base_coin3_symbol": null,
    "base_coin4_symbol": null,
    "base_coin5_symbol": null,
    "underlying_coin0": null,
    "underlying_coin1": null,
    "underlying_coin2": null,
    "underlying_coin3": null,
    "underlying_coin4": null,
    "underlying_coin5": null,
    "underlying_coin0_decimals": null,
    "underlying_coin1_decimals": null,
    "underlying_coin2_decimals": null,
    "underlying_coin3_decimals": null,
    "underlying_coin4_decimals": null,
    "underlying_coin5_decimals": null,
    "underlying_coin0_name": null,
    "underlying_coin1_name": null,
    "underlying_coin2_name": null,
    "underlying_coin3_name": null,
    "underlying_coin4_name": null,
    "underlying_coin5_name": null,
    "underlying_coin0_symbol": null,
    "underlying_coin1_symbol": null,
    "underlying_coin2_symbol": null,
    "underlying_coin3_symbol": null,
    "underlying_coin4_symbol": null,
    "underlying_coin5_symbol": null
  }
]

Filter by LP token

Fetch steCRV pool by filtering on LP token address.

curl -s --location --request GET \
    "https://app.pangea.foundation/v1/api/curve/pools?chains=ETH&from_block=0&token__in=0x06325440d014e39736583c165c2963ba99faf14e" \
    --header "Accept: application/jsonstream" \
    --header "Accept-Encoding: gzip" --compressed \
    --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  {
    "chain": 1,
    "owner": "0xecb456ea5365865ebab8a2661b0c503410e9b347",
    "token": "0x06325440d014e39736583c165c2963ba99faf14e",
    "token_decimals": 18,
    "token_name": "Curve.fi ETH/stETH",
    "token_symbol": "steCRV",
    "base_pool": "",
    "fee": "0x3d0900",
    "admin_fee": "0x12a05f200",
    "initial_a": "0x1f4",
    "future_a": "0x1f4",
    "initial_a_time": "0x0",
    "future_a_time": "0x0",
    "pool_address": "0xdc24316b9ae028f1497c275eb9192a3ea0f67022",
    "n_coins": 2,
    "coin0": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
    "coin1": "0xae7ab96520de3a18e5e111b5eaab095312d7fe84",
    "coin2": null,
    "coin3": null,
    "coin4": null,
    "coin5": null,
    "coin0_decimals": 18,
    "coin1_decimals": 18,
    "coin2_decimals": null,
    "coin3_decimals": null,
    "coin4_decimals": null,
    "coin5_decimals": null,
    "coin0_name": "Ether",
    "coin1_name": "Liquid staked Ether 2.0",
    "coin2_name": null,
    "coin3_name": null,
    "coin4_name": null,
    "coin5_name": null,
    "coin0_symbol": "ETH",
    "coin1_symbol": "stETH",
    "coin2_symbol": null,
    "coin3_symbol": null,
    "coin4_symbol": null,
    "coin5_symbol": null,
    "base_coin0": null,
    "base_coin1": null,
    "base_coin2": null,
    "base_coin3": null,
    "base_coin4": null,
    "base_coin5": null,
    "base_coin0_decimals": null,
    "base_coin1_decimals": null,
    "base_coin2_decimals": null,
    "base_coin3_decimals": null,
    "base_coin4_decimals": null,
    "base_coin5_decimals": null,
    "base_coin0_name": null,
    "base_coin1_name": null,
    "base_coin2_name": null,
    "base_coin3_name": null,
    "base_coin4_name": null,
    "base_coin5_name": null,
    "base_coin0_symbol": null,
    "base_coin1_symbol": null,
    "base_coin2_symbol": null,
    "base_coin3_symbol": null,
    "base_coin4_symbol": null,
    "base_coin5_symbol": null,
    "underlying_coin0": null,
    "underlying_coin1": null,
    "underlying_coin2": null,
    "underlying_coin3": null,
    "underlying_coin4": null,
    "underlying_coin5": null,
    "underlying_coin0_decimals": null,
    "underlying_coin1_decimals": null,
    "underlying_coin2_decimals": null,
    "underlying_coin3_decimals": null,
    "underlying_coin4_decimals": null,
    "underlying_coin5_decimals": null,
    "underlying_coin0_name": null,
    "underlying_coin1_name": null,
    "underlying_coin2_name": null,
    "underlying_coin3_name": null,
    "underlying_coin4_name": null,
    "underlying_coin5_name": null,
    "underlying_coin0_symbol": null,
    "underlying_coin1_symbol": null,
    "underlying_coin2_symbol": null,
    "underlying_coin3_symbol": null,
    "underlying_coin4_symbol": null,
    "underlying_coin5_symbol": null
  }
]

Query Parameters

v1/api/curve/pools

  • chains: Filters the data by specific blockchain networks.
  • from_block: Filters the data by a starting block number.
  • to_block: Filters the data by an ending block number.
  • pool_address__in: Filters the data by a list of pool_address.
  • token__in: Filters the data by a list of Curve LP token.
  • owner__in: Filters the data by a list of pool contract owner.
  • base_pool__in: Filters metapools by the base_pool address.
  • fee__gte: Filters the data by fee using the greater than or equal to operator.
  • fee__lte: Filters the data by fee using the less than or equal to operator.
  • admin_fee__gte: Filters the data by admin_fee using the greater than or equal to operator.
  • admin_fee__lte: Filters the data by admin_fee using the less than or equal to operator.
  • initial_a__gte: Filters the data by initial_a using the greater than or equal to operator.
  • initial_a__lte: Filters the data by initial_a using the less than or equal to operator.
  • future_a__gte: Filters the data by future_a using the greater than or equal to operator.
  • future_a__lte: Filters the data by future_a using the less than or equal to operator.
  • initial_a_time__gte: Filters the data by initial_a_time using the greater than or equal to operator.
  • initial_a_time__lte: Filters the data by initial_a_time using the less than or equal to operator.
  • future_a_time__gte: Filters the data by future_a_time using the greater than or equal to operator.
  • future_a_time__lte: Filters the data by future_a_time using the less than or equal to operator.
  • n_coins__gte: Filters the data by n_coins using the greater than or equal to operator.
  • n_coins__lte: Filters the data by n_coins using the less than or equal to operator.
  • coins__in: Filters the data by a list of coins.
  • base_coins__in: Filters metapools by a list of base_coins.

Curve Tokens

Fetch 3Crv LP token by filtering on LP token address.

curl -s --location --request GET \
    "https://app.pangea.foundation/v1/api/curve/tokens?chains=ETH&from_block=0&address__in=0x6c3f90f043a72fa612cbac8115ee7e52bde6e490" \
    --header "Accept: application/jsonstream" \
    --header "Accept-Encoding: gzip" --compressed \
    --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  {
    "chain": 1,
    "address": "0x6c3f90f043a72fa612cbac8115ee7e52bde6e490",
    "name": "Curve.fi DAI/USDC/USDT",
    "symbol": "3Crv",
    "decimals": 18,
    "pool_address": "0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7",
    "n_coins": 3
  }
]

Query Parameters

v1/api/curve/tokens

  • chains: Filters the data by specific blockchain networks.
  • from_block: Filters the data by a starting block number.
  • to_block: Filters the data by an ending block number.
  • address__in: Filters the data by a list of LP token address.
  • symbol__in: Filters the data by a list of LP token symbol.
  • name__in: Filters the data by a list of LP token name.
  • pool_address__in: Filters the data by a list of pool_address.
  • decimals__gte: Filters the data by LP token decimals using the greater than or equal to operator.
  • decimals__lte: Filters the data by LP token decimals using the less than or equal to operator.

Curve Prices

Fetch prices for blocks 21000000 to 21010000 by filtering on the pool_address for 3Crv.

curl -s --location --request GET \
    "https://app.pangea.foundation/v1/api/curve/prices?chains=ETH&from_block=21000000&to_block=21010000&pool_address__in=0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7" \
    --header "Accept: application/jsonstream" \
    --header "Accept-Encoding: gzip" --compressed \
    --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

[
  ...
  {
    "chain": 1,
    "block_number": 21009991,
    "block_hash": "0x5aa672a9838e283191d3254112be108e2cf27e0b764ceb992895117fdeb37067",
    "transaction_hash": "0x32bc781f1ec9fcb6345d00297ec34e1bde479cb18a12f72a2a91a8c827131dbc",
    "transaction_index": 19,
    "log_index": 128,
    "pool_address": "0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7",
    "buyer": "0x9008d19f58aabd9ed0d60971565aa8510560ab41",
    "sold_id": 2,
    "tokens_sold": 50067.492497,
    "sold_address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
    "sold_decimals": 6,
    "sold_name": "Tether USD",
    "sold_symbol": "USDT",
    "bought_id": 1,
    "tokens_bought": 50057.72226,
    "bought_address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
    "bought_decimals": 6,
    "bought_name": "USD//C",
    "bought_symbol": "USDC",
    "price": 1.00019517941606,
    "kind": "coin",
    "timestamp": 1729465919
  }
]

Query Parameters

v1/api/curve/prices

  • chains: Filters the data by specific blockchain networks.
  • from_block: Filters the data by a starting block number.
  • to_block: Filters the data by an ending block number.
  • pool_address__in: Filters the data by a list of pool_address.
  • buyer__in: Filters the data by a list of buyer.
  • tokens_address__in: Filters the data by a list of token_address.
  • tokens_symbol__in: Filters the data by a list of token_symbol.
  • sold_address__in: Filters the data by a list of sold_address.
  • sold_symbol__in: Filters the data by a list of sold_symbol.
  • sold_decimals__gte: Filters the data by sold_decimals using the greater than or equal to operator.
  • sold_decimals__lte: Filters the data by sold_decimals using the less than or equal to operator.
  • bought_address__in: Filters the data by a list of bought_address.
  • bought_symbol__in: Filters the data by a list of bought_symbol.
  • bought_decimals__gte: Filters the data by bought_decimals using the greater than or equal to operator.
  • bought_decimals__lte: Filters the data by bought_decimals using the less than or equal to operator.
  • price__gte: Filters the data by price using the greater than or equal to operator.
  • price__lte: Filters the data by price using the less than or equal to operator.
  • tokens_sold__gte: Filters the data by tokens_sold using the greater than or equal to operator.
  • tokens_sold__lte: Filters the data by tokens_sold using the less than or equal to operator.
  • tokens_bought__gte: Filters the data by tokens_bought using the greater than or equal to operator.
  • tokens_bought__lte: Filters the data by tokens_bought using the less than or equal to operator.

Interest Protocol

Interest Protocol DEX is a versatile decentralized exchange built on the Movement Network. The platform is designed for seamless trading, advanced liquidity management, and effortless token creation, all while incorporating cutting-edge security features to protect users from common exploits like sandwich attacks.

Our Toolbox API for Interest Protocol DEX provides comprehensive coverage of Pools, Swaps, and Liquidity to empower traders, liquidity providers, and integrators.

Interest Protocol Pools

Fetch pools for versions 0 to 126000.

curl -s --location --request GET \
 "https://movement.app.pangea.foundation/v1/api/interest/v1/pools?chains=MOVEMENT&from_block=0&to_block=126000" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

{
  {
    "block_number": 125509,
    "transaction_hash": "0x75b098c3cb55a24ccc11768d0bb546ec56bcb006d5e9fd1ec4f86603569ca141",
    "log_index": 5,
    "address": "0x13418bb00810eca160f77aa03e134d6d62b0859653f9236ccc6293acf1a6513d",
    "timestamp": 1741595395062842,
    "pool_address": "0x34f0d9084319bbee03059449b1ee52d47512781052dabba55a9acf766bae3599",
    "token0_address": "0x000000000000000000000000000000000000000000000000000000000000000a",
    "token0_decimals": 8,
    "token0_name": "Move Coin",
    "token0_symbol": "MOVE",
    "token1_address": "0x3e4b7a9dda4dfe0807fc52999cb4823a00af352eed9fdf6bb5377306a6089c05",
    "token1_decimals": 8,
    "token1_name": "Galactic Movement",
    "token1_symbol": "GM"
  }
}

Query parameters

movement.app.pangea.foundation/v1/api/interest/v1/pools

  • chains: Filters the data by chain.
  • from_block: Filters the data by a starting version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • to_block: Filters the data by an ending version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • pool_address__in: Filters the data by a list of pool_address.
  • token0_address__in: Filters the data by a list of token0_address.
  • token1_address__in: Filters the data by a list of token1_address.
  • tokens_address__in: Filters the data by a list of both token0_address and token1_address.

Interest Protocol Swaps

Fetch swaps for versions 0 to 126000.

curl -s --location --request GET \
 "https://movement.app.pangea.foundation/v1/api/interest/v1/swaps?chains=MOVEMENT&from_block=0&to_block=126000" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

{
  ...
  {
    "block_number": 125976,
    "transaction_hash": "0xf2ff7e0e16267ac4143a8d443241ea4127590dc2e49752eb1529ee0bd76dbc6f",
    "log_index": 5,
    "timestamp": 1741597357539806,
    "account_address": "0x13418bb00810eca160f77aa03e134d6d62b0859653f9236ccc6293acf1a6513d",
    "sender": "0x49286b4778003f071c53150b73526b326ad954c5ddef75ca4400d62990b9255a",
    "pool_address": "0x4487140c34467abd4bde7d635046c529d01dcdaa47d7550466f3a85afe946dc1",
    "token0_address": "0x000000000000000000000000000000000000000000000000000000000000000a",
    "token0_decimals": 8,
    "token0_name": "Move Coin",
    "token0_symbol": "MOVE",
    "token1_address": "0x5f7f59e38a96dfe79830f53fe49a19e770f70a13ff30ce598a49e8f0a2b46861",
    "token1_decimals": 8,
    "token1_name": "πŸ”₯",
    "token1_symbol": "πŸ”₯",
    "side": "Sell",
    "amount0": 0.1,
    "amount1": 689996.17726426,
    "fee_in": 0.0003,
    "slot_balance0": 0,
    "slot_balance1": 0,
    "bid_liquidity": 0,
    "last_slot_timestamp": 0,
    "execution_price": 6899961.772642599,
    "settlement_price": 6920723.944476027
  }
}

Query parameters

movement.app.pangea.foundation/v1/api/interest/v1/swaps

  • chains: Filters the data by chain.
  • from_block: Filters the data by a starting version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • to_block: Filters the data by an ending version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • pool_address__in: Filters the data by a list of pool_address.
  • token0_address__in: Filters the data by a list of token0_address.
  • token1_address__in: Filters the data by a list of token1_address.
  • tokens_address__in: Filters the data by a list of both token0_address and token1_address.

Interest Protocol Liquidity

Fetch liquidity events for versions 0 to 126000.

curl -s --location --request GET \
 "https://movement.app.pangea.foundation/v1/api/interest/v1/liquidity?chains=MOVEMENT&from_block=0&to_block=126000" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

{
  ...
  {
    "block_number": 125976,
    "transaction_hash": "0xf2ff7e0e16267ac4143a8d443241ea4127590dc2e49752eb1529ee0bd76dbc6f",
    "log_index": 5,
    "timestamp": 1741597357539806,
    "account": "0x13418bb00810eca160f77aa03e134d6d62b0859653f9236ccc6293acf1a6513d",
    "sender": "0x49286b4778003f071c53150b73526b326ad954c5ddef75ca4400d62990b9255a",
    "pool_address": "0x4487140c34467abd4bde7d635046c529d01dcdaa47d7550466f3a85afe946dc1",
    "token0_address": "0x000000000000000000000000000000000000000000000000000000000000000a",
    "token0_decimals": 8,
    "token0_name": "Move Coin",
    "token0_symbol": "MOVE",
    "token1_address": "0x5f7f59e38a96dfe79830f53fe49a19e770f70a13ff30ce598a49e8f0a2b46861",
    "token1_decimals": 8,
    "token1_name": "πŸ”₯",
    "token1_symbol": "πŸ”₯",
    "event_type": "Swap",
    "amount0_in": 10000000,
    "amount1_in": 0,
    "amount0_out": 0,
    "amount1_out": 68999617726426,
    "fee_in": 30000,
    "slot_balance0": 0,
    "slot_balance1": 0,
    "bid_liquidity": 0,
    "last_slot_timestamp": 0
  }
}

Query parameters

movement.app.pangea.foundation/v1/api/interest/v1/liquidity

  • chains: Filters the data by chain.
  • from_block: Filters the data by a starting version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • to_block: Filters the data by an ending version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • pool_address__in: Filters the data by a list of pool_address.
  • token0_address__in: Filters the data by a list of token0_address.
  • token1_address__in: Filters the data by a list of token1_address.
  • tokens_address__in: Filters the data by a list of both token0_address and token1_address.

Arche Protocol

Arche Protocol allows users to deposit crypto-assets as collateral, providing robust and decentralized backing for MSD, Movement's native stablecoin.

Our Toolbox API for Arche Protocol provides comprehensive coverage of Positions, Collaterals, and Loans, to empower borrowers, lenders, and integrators.

Arche Protocol Positions

Fetch position updates for versions 1095000 to 1100000.

curl -s --location --request GET \
 "https://movement.app.pangea.foundation/v1/api/arche/positions?chains=MOVEMENT&from_block=1095000&to_block=1100000" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

{
  ...
  {
    "block_number": 1099734,
    "timestamp": 1743610319482916,
    "borrower": "0xa912e0f93ffbae24663c73cf55c8045a41112732a87295e68b8da0c3822f870b",
    "collateral": "0x000000000000000000000000000000000000000000000000000000000000000a",
    "collateral_amount": 300000000,
    "borrow_amount": 18200,
    "debt_share_rate": {
      "numerator": 18200,
      "denominator": 18225
    },
    "last_debt_share_updated": 1741375806,
    "info": {
      "principal_debt": 815114417,
      "interest_debt": 3335691,
      "total_interest_spread": 3313491,
      "last_interest_timestamp": 1743610120,
      "loan_to_value": {
        "numerator": 33,
        "denominator": 50
      },
      "annual_percentage_yield": {
        "numerator": 13,
        "denominator": 200
      },
      "interest_spread": {
        "numerator": 1,
        "denominator": 1
      },
      "liquidator_fee": {
        "numerator": 1,
        "denominator": 10
      },
      "max_borrowable_amount": 50000000000,
      "max_borrowable_amount_whitelist": [],
      "dust_threshold": 10000
    },
    "price": {
      "magnitude": 41017764,
      "exponent": -8,
      "timestamp": 1743610313
    },
    "health_factor": {
      "numerator": 81215172,
      "denominator": 1828300
    },
    "liquidation": null,
    "borrow_fee": {
      "amount": {
        "numerator": 0,
        "denominator": 1
      }
    },
    "liquidation_fee": {
      "amount": {
        "numerator": 1,
        "denominator": 40
      }
    }
  }

Query parameters

https://movement.app.pangea.foundation/v1/api/arche/positions?chains=MOVEMENT

  • chains: Filters the data by chain.
  • from_block: Filters the data by a starting version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • to_block: Filters the data by an ending version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.

Arche Protocol Collaterals

Fetch collateral events for versions 0 to 130000.

curl -s --location --request GET \
 "https://movement.app.pangea.foundation/v1/api/arche/collaterals?chains=MOVEMENT&from_block=0&to_block=130000" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

{
  ...
  {
    "block_number": 127617,
    "transaction_hash": "0x26aa5f47e898f0982106397ed55662330b3bcf4b3b91955647fc0beab4196b22",
    "log_index": 2,
    "timestamp": 1741605374912112,
    "arche_address": "0xbcc40f56a3538c9cc25254f485f48e6f150f9acac53a2e92c6d698a9c1751a0b",
    "event_type": "NewAnnualPercentageYield",
    "asset_address": "0x000000000000000000000000000000000000000000000000000000000000000a",
    "asset_name": "Move Coin",
    "asset_symbol": "MOVE",
    "asset_decimals": 8,
    "state": null,
    "ltv_numerator": 13,
    "ltv_denominator": 200,
    "annual_interest_rate_numerator": null,
    "annual_interest_rate_denominator": null,
    "liquidation_discount_numerator": null,
    "liquidation_discount_denominator": null,
    "max_borrowable_amount": null,
    "borrow_fee_numerator": null,
    "borrow_fee_denominator": null
  }
}

Query parameters

https://movement.app.pangea.foundation/v1/api/arche/collaterals?chains=MOVEMENT

  • chains: Filters the data by chain.
  • from_block: Filters the data by a starting version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • to_block: Filters the data by an ending version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • event_type__in: Filters the data by a list of event_type.
  • asset_address__in: Filters the data by a list of collateral asset_address.
  • state__in: Filters the data by a list of collateral state (Activated, Deactivated, Removed).

Arche Protocol Loans

Fetch loan events for versions 0 to 130000.

curl -s --location --request GET \
 "https://movement.app.pangea.foundation/v1/api/arche/loans?chains=MOVEMENT&from_block=0&to_block=610000" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

{
  ...
  {
    "block_number": 609644,
    "transaction_hash": "0x510d2ac9c8057321722801915feb51a024e72d8d751d5f9849885ac310c6186d",
    "log_index": 9,
    "timestamp": 1742325304481110,
    "arche_address": "0xbcc40f56a3538c9cc25254f485f48e6f150f9acac53a2e92c6d698a9c1751a0b",
    "event_type": "Borrowed",
    "asset_address": "0x000000000000000000000000000000000000000000000000000000000000000a",
    "asset_name": "Move Coin",
    "asset_symbol": "MOVE",
    "asset_decimals": 8,
    "address": "0x195ad9d86b49bc89eb3dad5a005f20809ebe2139837c5580514f4ff1996e0707",
    "collateral_amount": null,
    "borrowed_amount": 1089000,
    "borrow_fee_amount": null,
    "interest_spread_amount": null,
    "debt_accrued_amount": null,
    "repay_amount": null,
    "unlocked_collateral_amount": null,
    "liquidated_collateral_amount": null,
    "liquidator_address": null
  }
}

Query parameters

https://movement.app.pangea.foundation/v1/api/arche/loans?chains=MOVEMENT

  • chains: Filters the data by chain.
  • from_block: Filters the data by a starting version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • to_block: Filters the data by an ending version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • event_type__in: Filters the data by a list of event_type.
  • address__in: Filters the data by a list of borrower address.
  • asset_address__in / collateral_asset__in: Filters the data by a list of collateral asset_address.
  • liquidator_address__in: Filters the data by a list of liquidator_address.

Pyth Network

Pyth Network price feeds provide real-time financial market data to smart contract applications on 100+ blockchains. Pyth's market data is contributed by over 100 reputable first-party data providers, including some of the biggest exchanges and market making firms in the world. Each price feed publishes a robust aggregate of these prices multiple times per second.

Our Toolbox API for Pyth Network's Price Feed indexes all price feed updates on Movement, which can be used to power DEXs, lending protocols, and other use cases.

Pyth Network Price Feeds

Fetch price feed update events for versions 0 to 130000.

curl -s --location --request GET \
 "https://movement.app.pangea.foundation/v1/api/pyth?chains=MOVEMENT&from_block=600000&to_block=610000" \
 --header "Accept: application/jsonstream" \
 --header "Accept-Encoding: gzip" --compressed \
 --header "Authorization: Basic $PANGEA_AUTH" | jq

Response

{
  ...
  {
    "block_number": 609198,
    "transaction_hash": "0x9e31cb7ecdb2fdbc54f14b1c99514792c10310e3d355db0316836dad20ed8b26",
    "log_index": 20,
    "timestamp": 1742324586190237,
    "identifier": "0x6bf748c908767baa762a1563d454ebec2d5108f8ee36d806aadacc8f0a075b6d",
    "price": 42662858,
    "price_exponent": -8,
    "price_confidence": 46314,
    "price_timestamp": 1742324575,
    "ema": 42483857,
    "ema_exponent": -8,
    "ema_confidence": 45164,
    "ema_timestamp": 1742324575,
    "pyth_timestamp": 1742324586190237
  }
}

Query parameters

https://movement.app.pangea.foundation/v1/api/pyth?chains=MOVEMENT

  • chains: Filters the data by chain.
  • from_block: Filters the data by a starting version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • to_block: Filters the data by an ending version. As Move chains use a per-transaction versioned database, we use version interchangably with block_number and omit blocks altogether.
  • identifier__in / price_id__in: Filters the data by a list of identifier.