Skip to main content

hetu-pysdk

A Python SDK for interacting with the hetu blockchain (Cosmos SDK + EVM), wrapping EVM contract and Cosmos RPC client features. Provides Axon/Dendrite/Synapse communication, EVM JSON-RPC, and ETH-compatible signing/verification.

Features

  • EVM contract interaction via web3.py
  • Cosmos RPC client support
  • Axon (server) and Dendrite (client) neuron communication
  • Synapse: extensible message/data structure for requests
  • ETH/EVM-compatible signing and signature verification
  • Full support for ETH wallet/address
  • Mock/test infrastructure for all core modules
  • Custom exceptions and error handling
  • Modern, extensible, and type-annotated codebase

Project Structure

  • hetu/ — Core SDK modules (axon, dendrite, synapse, chain_api, etc.)
  • chain_api/ — EVM/Cosmos chain RPC and wallet logic
  • chain_data/ — Data structures for chain state, neurons, axons, etc.
  • utils/ — Utilities, logging, networking, versioning, mocks
  • tests/ — Pytest test cases for all major features
  • contrib/ — Contributing guidelines, changelog, etc.
  • README.md — Project overview and installation instructions

Installation

Install from PyPI

Run

pip install -U hetu-pysdk

Install from source

  1. Clone the Hetu SDK repo.
git clone https://github.com/hetu-project/hetu-pysdk.git
  1. cd into hetu-pysdk directory.
cd hetu-pysdk
  1. Create and activate a virtual environment.
make init-venv
  1. Install dependencies and the CLI:

To install the SDK, you can use Poetry, which manages dependencies and virtual environments. Make sure you have Poetry installed, then run:

pip install -U pip setuptools poetry wheel
poetry install

Usage

Basic EVM/Cosmos Client

from hetu_pysdk import HetuClient

client = HetuClient(rpc_url="http://localhost:26657", evm_rpc_url="http://localhost:8545")
block_number = client.eth_blockNumber()
balance = client.eth_getBalance(address, "latest")

Axon/Dendrite/Synapse Example

import hetu_pysdk as ht

class EchoSynapse(ht.Synapse):
    input: str
    output: str = None

def echo_forward(syn: EchoSynapse) -> EchoSynapse:
    syn.output = syn.input
    return syn

def verify_echo(syn: EchoSynapse):
    assert isinstance(syn.input, str)

# Create ETH wallet/account
dendrite_wallet = ht.Account.create()
axon_wallet = ht.Account.create()

# Start Axon server
axon = ht.Axon(account=axon_wallet, port=8091)
axon.attach(forward_fn=echo_forward, verify_fn=verify_echo)
axon.serve(netuid=1).start()

# Dendrite client sends request
syn = EchoSynapse(input="hello")
dendrite = ht.Dendrite(account=dendrite_wallet)
response = dendrite.call(ht.AxonInfo(ip="127.0.0.1", port=8091, hotkey=axon_wallet.address), syn)
print(response.output)  # 'hello'

ETH-Compatible Signing & Verification

  • All requests are signed using eth_account and encode_defunct (EIP-191).
  • Axon verifies signatures using Account.recover_message, matching claimed address.
  • Nonce and computed_body_hash included in signature to prevent replay/tampering.

Testing

poetry run pytest
  • All core modules and communication patterns are covered by tests in tests/.
  • Includes Axon/Dendrite/Synapse integration, EVM RPC, and mock logic.

Mock/Offline Support

  • Mock classes and MagicMock are used for offline/test scenarios.
  • See hetu/utils/mock/hetutensor_mock.py for mock neuron/chain data.

License

MIT

Metadata

Release files for hetu-pysdk 0.1.0

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

Source distribution (sdist)

Source distribution for hetu-pysdk 0.1.0
File Size Uploaded
hetu_pysdk-0.1.0.tar.gz 149.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hetu-pysdk 0.1.0
File Interpreter ABI Platform
hetu_pysdk-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 323.5 kB

Release files / hetu_pysdk-0.1.0.tar.gz

Download URL hetu_pysdk-0.1.0.tar.gz
Size 149.4 kB
Tags Source
SHA-256 checksum
How to use checksums
7e208cd93a363120a4c5da2dda13f71d19601d24926d708172c8b77211d61eea
BLAKE2b-256 checksum
How to use checksums
acb2acd2b97a1aaa0cc61d0795069f10125ed4e9fd32e30373251794135d10a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release files / hetu_pysdk-0.1.0-py3-none-any.whl

Download URL hetu_pysdk-0.1.0-py3-none-any.whl
Size 174.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eedca7a6c72dfe14f78b4f39fda603d6b0e6f9f33651e0483480adb7fa0cd9bb
BLAKE2b-256 checksum
How to use checksums
a8b57c059bbfcaf42817d22fe6b977da53efc5c0b4f7249f2ac3971e2311a574
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release history Release notifications | RSS feed

This release

0.1.0 This release

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