# SLP-List
View Repo:
https://github.com/simpleledger/slp-list.js (opens new window)
List all token holder addresses and balances at any specified blockchain height. This package makes queries to a SLPDB (opens new window) via the slpserve http gateway.
NOTE
All list results provided by this package should be double-checked between multiple SLPDB nodes because any instance of SLPDB may be out-of-sync, have an outdated version, or have a corrupted database. Be sure to know the SLPDB node instances you connecting to can be trusted and are properly maintained.
# Introduction
Applications can use information generated by SLP-List to:
- Distribute Bitcoin Cash rewards to token holders, pro rata
- Airdrop existing token holders with new SLP tokens, pro rata
- Build a token staking rewards systems using coin age
- Public key and user coordination in decentralized applications
By default this package connects to a public SLPDB node, but this can be overridden using Config.SetUrl("<slpserve URL>").
# Install
# node.js
$ npm i slp-list
# browser
<script src='https://unpkg.com/slp-list'></script>
# Example Usage
# List of token holders
Get a list of token holder addresses and balances for a token using custom SLPDB instance:
let slplist = require("slp-list"); slplist.Config.SetUrl("https://slpdb.fountainhead.cash"); const blockCutoff = 620971; let list; (async () => { list = await slplist.List.GetAddressListFor( "c4b0d62156b3fa5c8f3436079b5394f7edc1bef5dc1cd2f9d0c4d46f82cca479", blockCutoff, true ); console.log(list); })();
# Result:
{ "simpleledger:qqwap3lfel8wevd4rk5w2hkjs35kxc82fyvalykv09": "7", "simpleledger:qpcgmrsal20mf8hvdqhja0w2m9s3q026l5gjqxd8v5": "1", "simpleledger:qz5wajf8f0mkpl4n5mmsfv3am3qfq6wdxu504vaajf": "2", "simpleledger:qrmvmvqqll53v8k4x5e64t0wdnwf4asp6uxx35vhag": "1", "simpleledger:qpuh688c60gfqe5agwrfztyaype4h69lnqu86n6c72": "1", "simpleledger:qqlrnm8pcc9jqkkq2glhp22tnjzzxpkv3cqvdts0tf": "1", "simpleledger:qzn02dvpz6js49ykrtjr6jeyvlyk0j4s0gl08f2prd": "9", "simpleledger:qrwnnkfc0z7er0vjw6wnf4m56agewjlj05s4wqzrqj": "0.8" // ... }
# List all holders of an NFT in an NFT1 Group
List the NFT holders for a specific NFT1 Group:
let slplist = require("slp-list"); slplist.Config.SetUrl("https://nyc1.slpdb.io"); let list; (async () => { list = await slplist.Nft1List.GetConfirmedNftTokenHolders( "33e02bc67d71dab03d10a0f46050f7bfb8d8c3363a5b5bca622bcd837ca3feb8" ); console.log(list); })();
# Result:
Map { '44f339784c8afc2d26ac821ab68394dfceed803a3b987df6abe5de5a81664b33': 'simpleledger:qqzjzzlmx8h3hum3drsuk894jnf8r909ku4lankkg5', // ... }
# List linked tokens
List all tokens with a Genesis pointing to a specific Document Hash:
let slplist = require("slp-list"); slplist.Config.SetUrl("https://slpdb.fountainhead.cash"); let list; (async () => { list = await slplist.List.SearchForTokenIdInDocHash( "94dbe7179abd236cfb0fc5aaef86aad92214053f6de2885872dd85235cfa9f67", ); console.log(list); })();
# Result:
[ { "stats": { "block_created": 633158, "approx_txns_since_genesis": 1 }, "token": { "decimals": 0, "tokenIdHex": "4b7d2757d155520e0c6a9653a9750d9b574bd9779e9cb106b9d7c1ac22226260", "timestamp": "2020-05-01 03:41:12", "timestamp_unix": 1588304472, "transactionType": "GENESIS", "versionType": 129, "documentUri": "http://ipfs.pics/ipfs/Qmep61aZqJhhmSkhQHUSUme5RFbi8ZfccxXC1TyjKHcEig", "documentSha256Hex": "94dbe7179abd236cfb0fc5aaef86aad92214053f6de2885872dd85235cfa9f67", "symbol": "slp.network", "name": "SLP Sage Chat Group", "batonVout": 2, "containsBaton": true, "genesisOrMintQuantity": "100", "sendOutputs": null } } ]
# List all NFTs in an NFT1 Group (not only the current holders)
List all NFTs created for this specific NFT1 Group:
let slplist = require("slp-list"); slplist.Config.SetUrl("https://slpdb.fountainhead.cash"); let list; (async () => { list = await slplist.Nft1List.SearchForNftsInGroup( "9ce9ebb34a1efcbe1649dc6cc9e62a2b2c2c4fb0947d7ea6412adefbc725829c" ); console.log(list); })();
# Result:
[ { "stats": { "block_created": 626896, "approx_txns_since_genesis": 1 }, "token": { "decimals": 0, "tokenIdHex": "c67c6423767a86e27c56ad9c04581f4500d88baff12b865611a39602f449b465", "timestamp": "2020-03-18 01:51:35", "timestamp_unix": 1584496295, "transactionType": "GENESIS", "versionType": 65, "documentUri": "", "documentSha256Hex": null, "symbol": "", "name": "", "batonVout": null, "containsBaton": false, "genesisOrMintQuantity": "1", "sendOutputs": null } } ]