Asalytic
A Python library for tracking NFT sales and listings on the Algorand blockchain.
Features
- Track ASA (Algorand Standard Asset) sales across multiple NFT marketplaces
- Monitor active NFT listings
- Support for 16+ NFT platforms including Rand Gallery, Shufl, EXA, ALGO x NFT, and more
- Parse multiple metadata standards (ARC3, ARC19, ARC69)
Installation
From PyPI (Recommended)
pip install asalytic
From Source
Quick Setup
Windows:
setup.bat
Unix/Mac:
chmod +x setup.sh
./setup.sh
Manual Setup
- Create a virtual environment:
python -m venv venv
- Activate the virtual environment:
# Windows
venv\Scripts\activate
# Unix/Mac
source venv/bin/activate
- Install dependencies:
pip install -r requirements.txt
Usage
Track Sales
from asalytic.indexers.indexer import AsalyticIndexerClient
from asalytic.parsers.asa_sale_parser import ASASaleParser
indexer = AsalyticIndexerClient(
indexer_address="https://mainnet-idx.4160.nodely.io",
indexer_token="YOUR_TOKEN"
)
block = indexer.block_info(block_number)
atomic_transfers = indexer.get_atomic_transfers_from_block(block)
for at in atomic_transfers:
sale = ASASaleParser.parse(at)
if sale:
print(f"asa_id={sale.asa_id} price={sale.price_in_algo} ALGO")
Track Listings
from asalytic.indexers.indexer import AsalyticIndexerClient
from asalytic.parsers.app_listings_at_parser import AppListingsATParser
indexer = AsalyticIndexerClient(
indexer_address="https://mainnet-idx.4160.nodely.io",
indexer_token="YOUR_TOKEN"
)
block = indexer.block_info(block_number)
atomic_transfers = indexer.get_atomic_transfers_from_block(block)
for at in atomic_transfers:
listing = AppListingsATParser.parse(at)
if listing:
print(f"asa_id={listing.asa_id} price={listing.price_in_algo} ALGO")
Demo Scripts
Run the demo scripts to see the library in action:
# Track sales from a specific block
python demo_track_sales.py
# Track listings from a specific block
python demo_track_listings.py
License
MIT License - see LICENSE file for details.
Metadata
Release files for asalytic 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| asalytic-1.0.0.tar.gz | 41.3 kB | Without provenance | Details for asalytic-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| asalytic-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for asalytic-1.0.0-py3-none-any.whl |
Total release size: 118.9 kB
Release files / asalytic-1.0.0.tar.gz
| Download URL | asalytic-1.0.0.tar.gz |
|---|---|
| Size | 41.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
87aea0b9a87a593a8ef8399ad6872918e1acce0780507353818c98f35e122895
|
|
BLAKE2b-256 checksum How to use checksums |
ffca2310d69142df7f5b6c8c01fbc25743e96d2aaea86fd721c5e1730db1c40b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / asalytic-1.0.0-py3-none-any.whl
| Download URL | asalytic-1.0.0-py3-none-any.whl |
|---|---|
| Size | 77.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
96c27350d6df71e38f5d2ab80b228e8c6967a40cbfff792126597fdd196ea261
|
|
BLAKE2b-256 checksum How to use checksums |
b9b2bd9f8b35c74ba3d105fad971aca85571481661ea2904061387140e33f693
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Security for asalytic 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.