Skip to main content

Subtensor API Python package

A python wrapper around the @polkadot/api node library to query the bittensor chain.

Install from pypi

pip install subtensorapi==1.1.0

Running the CLI

Usage

View usage
python3 -m subtensorapi --help

Specify chain endpoint url
python3 -m subtensorapi [sync_and_save|blockAtReg_and_save|sync_and_save_historical|sync_and_save_historical_difficulty] --endpoint_url ENDPOINT_URL
Specify filename to save to python3 -m subtensorapi [sync_and_save|blockAtReg_and_save|sync_and_save_historical|sync_and_save_historical_difficulty] --filename FILENAME.json
Specify blockhash to sync the chain at, default "latest" python3 -m subtensorapi [sync_and_save|blockAtReg_and_save|sync_and_save_historical|sync_and_save_historical_difficulty] --block_hash BLOCK_HASH

Sync And Save Metagraph

Pulls the neurons storage map and saves it to a JSON file.
View usage
python3 -m subtensorapi sync_and_save --help
Run sync of metagraph and save to JSON file
python3 -m subtensorapi sync_and_save -f metagraph.json

Sync And Save Neurons from Metagraph at historical blocks

Pulls the neurons storage map at each block for each UID and saves it to a JSON file.
View usage
python3 -m subtensorapi sync_and_save_historical --help
Run sync of metagraph at blocks 2706651 2706652 2706653 and UIDs 1 2 3 and save to JSON file
python3 -m subtensorapi sync_and_save_historical -i 1 2 3 -b 2706651 2706652 2706653 -f history.json

Grab blockAtRegistration

Pulls the blockAtRegistration storage map and saves it to a JSON file.
View usage python3 -m subtensorapi blockAtReg_and_save --help

Sync And Save Difficulty at historical blocks

Pulls the difficulty storage value at each block and saves it to a JSON file.
View usage
python3 -m subtensorapi sync_and_save_historical_difficulty --help
Run sync of metagraph at blocks 2706651 2706652 2706653 and save to JSON file
python3 -m subtensorapi sync_and_save_historical_difficulty -b 2706651 2706652 2706653 -f history_diff.json

Using the library

FastSync class

Setup of a FastSync instance

from subtensorapi import FastSync

# check if fast sync is available on the platform
FastSync.verify_fast_sync_support() 

# specify the chain endpoint_url  
fast_sync: FastSync = FastSync(endpoint_url)

Run the metagraph sync

Pulls the neurons storage map.

# specify block_hash to sync at. Default is "latest"
block_hash = "0xb2fa081[...]"
# run the sync command and save to JSON file at block_hash
fast_sync.sync_and_save(block_hash)
# load neurons in from JSON file
neurons = fast_sync.load_neurons()

Run the historical metagraph sync

Pulls the neurons storage map for each block and each UID

# specify blockNumbers to sync at. Default is "latest"
blockNumbers = ["latest", 2706652]
# specify UIDs to sync
UIDs = [1, 2, 3, 4095]
# run the sync command and save to JSON file at block_hash
fast_sync.sync_and_save_historical(blockNumbers, UIDs)
# load neurons in from JSON file
historical_neurons = fast_sync.load_historical_neurons()

Run the historical difficulty sync

Pulls the difficulty storage value for each block

# specify blockNumbers to sync at. Default is "latest"
blockNumbers = ["latest", 2706652]
# run the sync command and save to JSON file at block_hash
fast_sync.sync_and_save_historical_difficulty(blockNumbers)
# load neurons in from JSON file
historical_diff = fast_sync.load_historical_difficulty()

Run blockAtRegistration pull

Pulls the blockAtRegistration storage map.

# specify block_hash to sync at. Default is "latest"
block_hash = "0xb2fa081[...]"
# run the pull command and save to JSON file at block_hash
fast_sync.get_blockAtRegistration_for_all_and_save(block_hash)
# load blockAtRegistration_all from JSON file
blockAtRegistration_all = fast_sync.load_blockAtRegistration_for_all()

Using the FastSync class without writing to a file

You can redirect the file writing to a pipe instead of a file.
This removes the need to write to disk and provides a speedup.

Example:

# all neurons
all_neurons: List[SimpleNamespace] = fast_sync.sync_fd(block_hash)
# historical neurons
historical_neurons: Dict[str, Dict[str, SimpleNamespace]] = fast_sync.sync_historical_fd(blockNumbers, UIDs)
# blockAtRegistration_all
blockAtRegistration_all: List[int] = fast_sync.get_blockAtRegistration_for_all_fd(block_hash)
# historical difficulty
historical_diff: Dict[str, int] = fast_sync.sync_historical_difficulty_fd(blockNumbers)

Metadata

Release files for subtensorapi 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for subtensorapi 1.1.0
File Interpreter ABI Platform
subtensorapi-1.1.0-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
subtensorapi-1.1.0-py3-none-macosx_10_15_universal2.whl Python 3 none macOS 10.15+ universal2 (ARM64, x86-64) Details

Total release size: 42.8 MB

Release files / subtensorapi-1.1.0-py3-none-manylinux_2_17_x86_64.whl

Download URL subtensorapi-1.1.0-py3-none-manylinux_2_17_x86_64.whl
Size 21.4 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
8957895956f23bec21385d025be7601b6400b5e51b983a96fc11ebeb0f381094
BLAKE2b-256 checksum
How to use checksums
719accf9a9ca9abcc0ac539c18f631c59d89bb5ec906c12b14540368e95adf09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.12

Release files / subtensorapi-1.1.0-py3-none-macosx_10_15_universal2.whl

Download URL subtensorapi-1.1.0-py3-none-macosx_10_15_universal2.whl
Size 21.4 MB
Tags Python 3 macOS 10.15+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
6a2c8826e4e54eb334b0201b9af404ab08605e31fda0c999fd1999c138bbcbdd
BLAKE2b-256 checksum
How to use checksums
c176d274d9a1cfcaa82c6b71ee9cbf61de9b5174da037c378b794621fd01ef46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.12

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page