Windows desktop utility (PySide6) for querying on-chain transaction and farming reward history for a Subspace (Autonomys) address via the Subscan API.
- Connects to the Subscan API (
autonomys.api.subscan.io) — no local node required. - Fetches three categories of on-chain activity for a given address:
- Rewards —
Rewards.BlockRewardandRewards.VoteRewardevents (farming income). - Fees —
TransactionFees.BlockFees(storage, compute, and tips earned by the block author). - Transfers —
Balances.Transferevents (regular token sends and receives).
- Rewards —
- Displays results in a sortable, filterable table with color-coded event types.
- Shows a live summary panel with totals broken down by category.
- Exports results to CSV.
- Windows
- Python 3.x
pip- A free Subscan API key (registration required)
- Dependencies from
requirements.txt:PySide6requestsag95[LoggingScripts]
powershell -ExecutionPolicy Bypass -File .\_install\install.ps1This creates venv, sets up activate.bat / activate.ps1, copies pip.ini, installs pip / uv,
and installs the requirements.
python -m venv venv
.\venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txt.\activate.ps1
python .\main.py- Enter your Subscan API key (saved across sessions in
settings.json). - Enter the Subspace address to scan (SS58 prefix 6094).
- Choose a query mode:
- Last N days — looks back N days from the latest block (~13,500 blocks/day at ~6.4s avg block time).
- Block range — specify exact start/end block numbers.
- Entire history — scans every indexed block (may take a while).
- Toggle the event types you care about: Rewards, Fees, Transfers.
- Click Scan.
- Filter results by typing in the search box or using the type dropdown.
- Click column headers to sort.
- Export CSV saves the current results to a file.
settings.json— persisted API key, address, and query preferences.runtime_log.log— application log.
.\BUILD_release.batBuild config is in main.spec.
main.py— Qt app startupfrontend.py— GUI layout, table model, filter proxy, and user interactionsbackend.py— Subscan v2 API client, batch event-params fetcher, andScanWorkerQThread
The app uses Subscan's v2 API endpoints:
| Endpoint | Purpose |
|---|---|
POST /api/scan/metadata |
Resolve latest block number |
POST /api/v2/scan/events |
Fetch paginated events by pallet (rewards, transactionfees) filtered by address and block range |
POST /api/scan/event/params |
Batch-fetch decoded event parameters (amounts, accounts) |
POST /api/v2/scan/transfers |
Fetch paginated transfer records |
Rate limiting is handled with 650 ms sleeps between pages and exponential-backoff retries on 429/403 responses. The free Subscan tier caps responses at 25 rows per page.
If this tool is useful to you, consider sending a donation:
sucwGpB53pZpaWK6xeJUCqYoxwYfnE1r8Qr4ChbAJcLJQPosB
MIT