Get all owners of a collection
Sky Mavis is sunsetting Skynet services as part of Ronin's transition to a permissionless ecosystem. For NFT data, token transfers, and blockchain data querying capabilities, please migrate to:
- Moralis: Comprehensive APIs and real-time webhooks for wallet, token, NFT, and price data.
Overview
This API allows you to retrieve a list of wallet addresses that own NFTs from a specific collection along with NFTs amounts they own.
Get all owners of a collection
To get the owners of a given Collection, use this get collection holder list API
It requires one parameter (in path):
contractAddress: collection address
Optional parameters (in query):
limit: how many items can be return in a single response, maximum 200cursor: the current pointer of the result set, to iterate to the next part of the results, it's returned by the previous call (nextCursorfield), you get it and pass to the next call, presentnextCursormeans there will be more results to scroll, emptynextCursormeans it reaches to the end of resultsorder: specify the order of result set. For most APIs,ordermight not be supported but the default valuedesc, otherwise you can choose betweendescandasc. Desc ordering usually refers to show latest elements over older elements
Example with the Wild Forest ERC721 Collection:
curl --location 'https://api-gateway.skymavis.com/skynet/ronin/web3/v2/collections/0xa038c593115f6fcd673f6833e15462b475994879/owners?limit=2' \
--header 'Accept: application/json' \
--header 'X-API-KEY: <YOUR_API_KEY>'
Response, with ERC721 collections, in each item, balance and tokenCount should have the same value:
{
"result": {
"items": [
{
"address": "0x0001b44a8e3b548de5a0fdb2fa0b831edadfcd37",
"balance": "2",
"tokenCount": 2
},
{
"address": "0x00036b418f3aaf04a8a75391cfecf250f4eea436",
"balance": "2",
"tokenCount": 2
},
{
"address": "0x0006105945dcda8f5580426ddb8ca9e068a1ae94",
"balance": "1",
"tokenCount": 1
},
{
"address": "0x000e53ab1bfe1b1d09e6140c7abe2632987b0725",
"balance": "10",
"tokenCount": 10
},
{
"address": "0x000f6d8441669d18dc16d74a7ee44f4f42547287",
"balance": "5",
"tokenCount": 5
},
{
"address": "0x000fb9883f213e4325fd9e18819a51e4f20082ec",
"balance": "7",
"tokenCount": 7
},
{
"address": "0x0010299f8e22d01517cb3a5da2c7b9c8b67ed79a",
"balance": "1",
"tokenCount": 1
},
{
"address": "0x001170f9f2a618b07224a15b55de9a0260e885f8",
"balance": "11",
"tokenCount": 11
},
{
"address": "0x0016bf2dc7af8da64732f83d46159442067ca985",
"balance": "20",
"tokenCount": 20
},
{
"address": "0x001bf6617da95226d05d8103cfa8499ccc687c52",
"balance": "1",
"tokenCount": 1
},
{
"address": "0x001c624f059757d82e5bb1f64550bee04a36a2f4",
"balance": "18",
"tokenCount": 18
},
{
"address": "0x001dd00b4a3d503475a71f7009814789110d3c33",
"balance": "10",
"tokenCount": 10
},
{
"address": "0x001e0efffe40e53345f25b62b37922d99b8099f8",
"balance": "10",
"tokenCount": 10
},
{
"address": "0x001e8695c506533c94f612f632f63c3ece542f40",
"balance": "1",
"tokenCount": 1
},
{
"address": "0x001f6ce45abbe3cd7e1af116796ebc9ee640d3ac",
"balance": "10",
"tokenCount": 10
},
{
"address": "0x0021dd9271dca5e3ad61a2874d16ee991f68ac97",
"balance": "1",
"tokenCount": 1
},
{
"address": "0x00259dad2b2064cdd599fa86f6d3c7e2ad9fdbea",
"balance": "10",
"tokenCount": 10
},
{
"address": "0x00267047c17e7a64a93db45ff8bcca9238a76e8e",
"balance": "19",
"tokenCount": 19
},
{
"address": "0x00277476e2d95dfe05b95c34c3df4180712c0a8d",
"balance": "1",
"tokenCount": 1
},
{
"address": "0x002b895852a767b3c5f9bcc26d54b2494eeddfb1",
"balance": "52",
"tokenCount": 52
}
],
"paging": {
"nextCursor": "MHgwMDJiODk1ODUyYTc2N2IzYzVmOWJjYzI2ZDU0YjI0OTRlZWRkZmIx"
}
}
}
Example with the Axie Charm ERC1155 Collection:
curl --location 'https://api-gateway.skymavis.com/skynet/ronin/web3/v2/collections/0x814a9c959a3ef6ca44b5e2349e3bba9845393947/owners?limit=2' \
--header 'Accept: application/json' \
--header 'X-API-KEY: <YOUR_API_KEY>'
Response, with ERC721 collections, in each item, balance and tokenCount can be different,
balances represents amounts of NFT while tokenCount shows how many distinct NFTs:
{
"result": {
"items": [
{
"address": "0x0004379072b76336eb92125cfdd08d9e6a7d290b",
"balance": "1",
"tokenCount": 1
},
{
"address": "0x0008c964c2db12d9905b2f8bfcbebbbcb2b3202f",
"balance": "25",
"tokenCount": 24
},
{
"address": "0x000a3dc9fa43e51671fb06854fda8424a76bbdc8",
"balance": "3",
"tokenCount": 2
},
{
"address": "0x00108978048138576c06394dac34f754a8cacbd0",
"balance": "2",
"tokenCount": 2
},
{
"address": "0x001fc605a6b2cf0414a2e7594d1ac8dc77ccad7e",
"balance": "5",
"tokenCount": 3
},
{
"address": "0x0021939dfb7e5505c0763644924fdfd3f81a274b",
"balance": "1",
"tokenCount": 1
},
{
"address": "0x002addc6d4366c4305716c30dc36010818a41ba4",
"balance": "2",
"tokenCount": 2
},
{
"address": "0x002d7044466f453aa1e1d1a6a3069a73d1397de8",
"balance": "1",
"tokenCount": 1
},
{
"address": "0x00367ea9554b700eafe213c34a77bc52dfc0006e",
"balance": "1",
"tokenCount": 1
},
{
"address": "0x004db4d7694bba7c20d4a14af9c70b34d3136a0f",
"balance": "1",
"tokenCount": 1
},
{
"address": "0x004fd834d02af44602b7f0b9433ef0c42b8aeb1a",
"balance": "1",
"tokenCount": 1
},
{
"address": "0x0075df3d306a0cdcd899de8d9a2f2986456ca37b",
"balance": "1",
"tokenCount": 1
},
{
"address": "0x008d339ffe36ec845d77a1df3f345648fae07bbb",
"balance": "1",
"tokenCount": 1
},
{
"address": "0x00906cc36875c88023d84bb86e51ff18367a243a",
"balance": "1",
"tokenCount": 1
},
{
"address": "0x009115a551826f92ec1ca1f34e2e5de3fa497fe7",
"balance": "2",
"tokenCount": 2
},
{
"address": "0x0097231275283826d84b4ce5452f01a727e7925f",
"balance": "1",
"tokenCount": 1
},
{
"address": "0x00befb53223cee6b96ffa35206895f54bbc7c60f",
"balance": "6",
"tokenCount": 5
},
{
"address": "0x00c97f97175b031e7bfe0b21128e57d286feb175",
"balance": "1",
"tokenCount": 1
},
{
"address": "0x00d04270dea7e778c0120dc7e534ec1fb2551d7f",
"balance": "3",
"tokenCount": 3
},
{
"address": "0x00d224cf496c25d16cd0574b5af960a5bf7a9179",
"balance": "1",
"tokenCount": 1
}
],
"paging": {
"nextCursor": "MHgwMGQyMjRjZjQ5NmMyNWQxNmNkMDU3NGI1YWY5NjBhNWJmN2E5MTc5"
}
}
}
The response returned from the API may vary in the future as the state of NFTs/Ownership/Collections can change.