Skip to content

Changelog

[Unreleased]

Target: 2.0.2

Added

  • New kaspa.experimental.silverscript module — compile SilverScript (v1.0.0) contract source from Python. compile() returns a CompiledContract exposing the locking script (bytecode), ABI, state layout, and template_hash, plus build_sig_script() / build_sig_script_for_covenant_decl() for unlocking scripts. Each EntryAbi in the ABI carries the entrypoint's name, params, and four-byte dispatch_tag. artifact_json() returns the contract's portable ABI artifact as JSON — for the same source and constructor arguments this is byte-for-byte what the upstream silverc compiler writes, so artifacts are interchangeable between the two. load_artifact() reads that JSON back into a ContractArtifact — the same bytecode, template_hash, state_span, abi and build_sig_script() / build_sig_script_for_covenant_decl(), with no source and no compiler, so a contract can be compiled once in CI and its artifact shipped in place of its source. ContractArtifact.check_consistency() verifies an artifact's recorded template hash, state span and dispatch tags against its own bytecode, and to_json() serializes it back. On both classes abi is ordered alphabetically by entrypoint name, and entry(name) looks up a single entrypoint's EntryAbi directly, raising SilverScriptError for a name the contract doesn't declare.
  • Example under examples/silverscript/ — a Counter covenant run live on testnet-10, one transaction at a time: genesis, then permissionless add/subtract state transitions.
  • Class ZkScriptBuilder exposed to Python. Staged builder that turns RISC Zero zero-knowledge proofs into Kaspa transaction scripts, mirroring the WASM SDK: new_r0(), commit_to_groth16() / commit_to_succinct(), and finalize_with_groth16_proof() / finalize_with_succinct_proof(), plus fragment methods for composing scripts by hand (add_data, push_r0_groth16_proof, push_r0_succinct_witness, and append_r0_groth16_verifier / append_r0_succinct_verifier with their *_with_fixed_journal variants). append_r0_groth16_verifier_dynamic_image_id() is the same r0-over-groth16 verifier with the image id taken from the stack ([..., journal_hash, compressed_proof, image_id]) instead of baked into the script, so append_r0_groth16_verifier(image_id) is exactly add_data(image_id) followed by it; mirrors the WASM SDK's appendR0Groth16VerifierDynamicImageId. The produced P2SH scripts lock a UTXO behind on-chain verification of a specific proof (by image id, and optionally a fixed journal) via the OpZkPrecompile opcode. new_r0() also accepts the deprecated, ignored covenants_enabled argument described under Changed.
  • Class FinalizedR0Script exposed to Python. The result of finalizing a ZkScriptBuilder, with sig_script and redeem_script properties.
  • Class R0SuccinctWitnessParts exposed to Python. The receipt-derived succinct witness items (claim, control_index, control_digests, seal) in verifier order.
  • Functions prepare_r0_groth16_proof() and prepare_r0_succinct_witness() exposed to Python. Convert a RISC Zero receipt into the proof / witness pushes for composing sig scripts by hand.
  • Exception ZkError added to kaspa.exceptions, raised by the ZK bindings.
  • Example under examples/zk/ demonstrating a fully on-chain Groth16 commit→redeem round-trip.
  • Function compute_sighash() exposed to Python. Computes the signature hash (sighash) for a transaction input.
  • Function debug_call() added to kaspa.experimental.silverscript, with result classes DebugCallResult, FailureReport, FailureFrame, DebugVariable, and TraceStep. Simulates a contract entrypoint call locally through SilverScript's source-level debug engine (the engine behind the upstream CLI debugger) and runs it to completion — no stepping or breakpoints. Omitting function_name calls the contract's first entrypoint in source order — not abi[0], which is ordered by name. The tx argument describes the transaction the call is simulated in (inputs, outputs, covenant bindings and states), so covenant transitions and tx introspection can be debugged without a node. With trace=True the result additionally carries a per-statement execution trace (TraceStep: source line, statement text, enclosing function, and the variables in scope when the statement was reached). One statement is never traced: a covenant transition's return(State { ... }), whose produced state the engine verifies as a whole rather than stepping — so a transition body that is only that return traces to nothing, while its other statements trace normally.

Changed

  • kaspa.experimental.silverscript (experimental): renamed to match SilverScript v1.0 vocabulary. CompiledContract.script is now CompiledContract.bytecode; FunctionAbiEntry / FunctionInputAbi are now EntryAbi / ParamAbi; EntryAbi.inputs is now EntryAbi.params. SilverScript 1.0 renamed script to bytecode and reserves function for internal, non-entry functions, so the old names described a shape the compiler no longer has. CompiledContract.state_layout is now CompiledContract.state_span, still a (offset, len) pair — it names the same two numbers as the portable artifact's compiled.state_span and as ContractArtifact.state_span, so one spelling covers the attribute and the JSON key alike. The script, utxo_script, and signature_script keys accepted by debug_call(tx=...) are unrelated: they are raw script bytes, matching ScriptPublicKey.script, and are unchanged.
  • Affects 2.0.2rc1 only. kaspa.experimental.silverscript first appeared in the 2.0.2rc1 pre-release, which also exposed CompiledContract.without_selector (removed — SilverScript 1.0 gives every entrypoint an unconditional dispatch tag) and produced different template_hash values (BLAKE2b-256 to BLAKE3) and different signature-script bytes. A contract deployed against 2.0.2rc1 therefore has a different P2SH address under this release, and a UTXO locked by an rc1 script cannot be spent with a signature script built here. The module is experimental; its API may change in breaking ways between releases.
  • The covenants_enabled argument of ScriptBuilder() and ScriptBuilder.from_script() is deprecated and ignored, and the ScriptBuilder.covenants_enabled property is deprecated and always True. rusty-kaspa removed the flag along with the pre-Toccata script limits now that Toccata is active on every network, so every builder gets the covenant opcodes, explicit push opcodes, and the post-Toccata limits (1,000,000-byte script and element size, 1,000,000 ops) — a default ScriptBuilder() now accepts pushes over 520 bytes. Passing the argument (either value) or reading the property emits a DeprecationWarning; both will be removed in a future major version. Mirrors the WASM SDK, where ScriptBuilderFlags.covenantsEnabled is now a deprecated no-op.

Fixed

  • UtxoEntry.to_dict() and UtxoEntryReference.to_dict() now emit covenantId as a hex string instead of a Hash object, so dicts containing covenant UTXOs (including Transaction.to_dict() with such inputs) are JSON-serializable. from_dict already accepted either form.
  • TransactionInput.to_dict() now includes computeBudget, including when nested under Transaction.to_dict(). The field was already accepted by from_dict (defaulting to 0 when omitted) and readable on the object, but omitted on serialize, so a v1 transaction that went through to_dict(), JSON, and from_dict() came back with an effective budget of 0.
  • requires-python upper bound changed from <=3.14 to <3.15. Under PEP 440 version ordering <=3.14 excludes every 3.14 patch release (3.14.1 and later).
  • SighashType.AllAnyOneCanPay now maps to the All | AnyOneCanPay hashtype (0x81). Previously it mapped to the bare AnyOneCanPay bit (0x80), which is not a valid hashtype, so create_input_signature and sign_input with that type produced a digest and hashtype byte the script engine rejects. NoneAnyOneCanPay (0x82) and SingleAnyOneCanPay (0x84) were already correct. Upstream fix, rusty-kaspa 3563f06ba.
  • The type stubs no longer declare UtxoEntries twice. Previously an internal argument-conversion helper emitted a second, __repr__-only declaration that could shadow the real class for type checkers (last declaration wins), hiding every method except __repr__. Parameters that took the helper (utxo_entry_source on create_transaction; entries / priority_entries on Generator, create_transactions, and estimate_transactions) are now annotated typing.Sequence[UtxoEntryReference], matching what they actually accept — a list, not a UtxoEntries instance.

Development

Internal SDK changes — not visible through the Python package API.

  • The crate is now a Cargo workspace with three members: the core kaspa crate, crates/silverscript (the SilverScript bindings — a second cdylib with its own isolated rusty-kaspa dependency graph), and crates/core (kaspa-python-sdk-core, a dependency-light crate sharing the create_py_exception! macro between the two). The SilverScript bindings are injected into the wheel under kaspa/experimental/silverscript/.
  • Bumped the pinned rusty-kaspa dependency for the core kaspa module from cfafeb4c0 (v2.0.1) to c338d49 (master). The range adds the kaspa-txscript-zk-sdk crate backing the new ZK bindings — pulling in risc0-zkvm and borsh as direct dependencies for decoding RISC Zero receipts — along with Windows link fixes for the ZK precompiles (kaspa-txscript enables risc0-zkvm-platform export-syscalls on Windows, resolving LNK2019). It also carries the Toccata cleanup series (upstream #1082-#1089, #1101), which drops the fork gates now that Toccata is active on every network: EngineFlags::covenants_enabled, the pre-Toccata script limits, the forked block version, and the pre-Toccata sigop counter are all gone. The Python-visible consequences are recorded under Changed (the covenants_enabled deprecation) and Fixed (the SighashType mapping); the remainder is consensus, mempool, and P2P internals with no Python-visible effect — mass and fee parameters (mass_per_tx_byte, mass_per_script_pub_key_byte, mass_per_sig_op, storage_mass_parameter) and opcode script-unit pricing are unchanged, and no RPC types changed.
  • The SilverScript member pins silverscript-lang, silverscript-abi, and debugger-session at 3ed9733 (SilverScript v1.0.0), which tracks rusty-kaspa a41a333b — an ancestor of the core module's c338d49, so the two members resolve isolated dependency graphs. SilverScript 1.0 raises the Rust MSRV to 1.94.0.

[2.0.1] - 2026-06-18

Added

  • Wallet sync-state events now include an SMT-sync phase payload ({processed, total}), emitted during pruning-point SMT import in IBD.
  • RpcClient.get_seq_commit_lane_proof(request) — new RPC method added in rusty-kaspa 2.0.0.

Changed

  • GenesisCovenantGroup is now constructible via GenesisCovenantGroup(authorizing_input, outputs) (with authorizing_input/outputs properties and a __repr__), and accepted as either an instance or a {"authorizingInput": ..., "outputs": [...]} dict wherever Transaction.populate_genesis_covenants takes a group.
  • calculate_storage_mass now clamps the mean of input amounts to a minimum of 1, matching rusty-kaspa v2.0.1's calc_storage_mass.
  • Promoted from Beta to Production/Stable (PyPI Development Status classifier).

Fixed

  • CovenantBinding dicts now use the flat {"authorizingInput": ..., "covenantId": ...} shape on both to_dict() and from_dict(), matching the 2.0.0 docs. Previously those keys were nested inside and inner key (e.g. {"inner": {...}}).
  • The covenant key is now optional when building a PaymentOutput/TransactionOutput from a dict, matching the docs and WASM SDK. Previously a missing key raised KeyError, so a plain {"address": ..., "amount": ...} output dict failed.
  • The covenant_id(outpoint, auth_outputs) function now appears in the type stubs (.pyi). Previously it was importable and callable at runtime but absent from the stubs, so it had no type hints or autocomplete.

Development

  • Bumped the pinned rusty-kaspa dependency from 90dbf07 to cfafeb4c0 (v2.0.1).

[2.0.0] - 2026-06-06

Highlights

  • Bumped the pinned rusty-kaspa dependency from d290179 to 90dbf07 (v2.0.0, Toccata hardfork).
  • Added full rusty-kaspa wallet API via the new Wallet class — wallet files, accounts, sending, transaction history, and events.
  • Covenant (KIP-17) support for the Toccata hardfork — CovenantBinding, covenant opcodes, and covenant-aware transactions, UTXOs, and RPC types.
  • Review Breaking Changes below before upgrading.

Added

  • Class Wallet exposed to Python, providing the full rusty-kaspa wallet API: lifecycle (start, stop, connect, disconnect, set_network_id, get_status), wallet file operations (wallet_enumerate, wallet_create, wallet_open, wallet_close, wallet_reload, wallet_rename, wallet_change_secret, wallet_export, wallet_import), private key data (prv_key_data_enumerate, prv_key_data_create, prv_key_data_remove, prv_key_data_get), accounts (accounts_enumerate, accounts_create_bip32, accounts_create_keypair, accounts_import_bip32, accounts_import_keypair, accounts_rename, accounts_discovery, accounts_ensure_default, accounts_activate, accounts_get, accounts_create_new_address, accounts_get_utxos), spending (accounts_estimate, accounts_send, accounts_transfer, accounts_commit_reveal, accounts_commit_reveal_manual), transaction history (transactions_data_get, transactions_replace_note, transactions_replace_metadata), storage (batch, flush, retain_context, address_book_enumerate), fee rate (fee_rate_estimate, fee_rate_poller_enable, fee_rate_poller_disable), and event listeners (add_event_listener, remove_event_listener).
  • Class AccountDescriptor exposed to Python. Contains account metadata including kind, ID, name, balance, and addresses, and account kind specific properties: account_index, xpub_keys, ecdsa, receive_address_index, and change_address_index (each None when the property is not applicable to the account kind).
  • Class AccountId exposed to Python. Hex-encoded identifier for a wallet account.
  • Class PrvKeyDataId exposed to Python. Hex-encoded identifier for a private key data entry. Constructible from a hex string and accepted interchangeably with str by Wallet methods.
  • Class WalletDescriptor exposed to Python. Contains wallet metadata including title and filename.
  • Class PrvKeyDataInfo exposed to Python. Holds private key data info including ID, name, and encryption status.
  • Class PaymentOutput is now constructible via PaymentOutput(address, amount), and accepted as either an instance or a {"address": ..., "amount": ...} dict wherever the bindings take a PaymentOutput.
  • Class Fees exposed to Python. Specifies transaction fees as an absolute sompi amount with an optional fee source.
  • Enum WalletEventType exposed to Python. Enumerates wallet event types such as connection, account, and transaction events.
  • Enum AccountsDiscoveryKind exposed to Python. Specifies the account discovery method (e.g. Bip44).
  • Enum NewAddressKind exposed to Python. Indicates whether a new address is for receiving or change.
  • Enum CommitRevealAddressKind exposed to Python. Specifies the address type for commit-reveal operations.
  • Enum PrvKeyDataVariantKind exposed to Python. Identifies the storage format of private key data (mnemonic, seed, etc.).
  • Enum TransactionKind exposed to Python. Categorizes transactions by type (incoming, outgoing, change, etc.).
  • Enum FeeSource exposed to Python. Indicates who pays the transaction fee: sender or receiver.
  • Enum AccountKind exposed to Python. Represents the account type (legacy, bip32, multisig, keypair, etc.).
  • Wallet-specific exception classes populated into the kaspa.exceptions submodule, covering the rusty-kaspa wallet error variants (e.g. WalletInsufficientFundsError, WalletAccountNotFoundError, WalletNotSyncedError, etc.).
  • Examples under examples/wallet/ demonstrating wallet usage
  • TypedDicts for RpcClient subscription event payloads — BlockAddedEvent, VirtualChainChangedEvent, FinalityConflictEvent, FinalityConflictResolvedEvent, UtxosChangedEvent, SinkBlueScoreChangedEvent, VirtualDaaScoreChangedEvent, PruningPointUtxoSetOverrideEvent, NewBlockTemplateEvent, ConnectEvent, DisconnectEvent — and their notification body TypedDicts (RpcBlockAddedNotification, etc.) for typing event-listener callbacks.
  • RpcClient.get_block_reward_info(request) — new RPC returning a block's reward info (header, block color, confirmation count, merging chain block hash, reward amount).
  • ScriptBuilder covenant/engine flags: optional covenants_enabled and sigop_script_units arguments on ScriptBuilder(...) and ScriptBuilder.from_script(...), plus read-only covenants_enabled / sigop_script_units properties (mirrors the WASM SDK's ScriptBuilderOptions).
  • Transaction.storage_mass property and a storageMass key in the Transaction dict output (alongside the existing mass), mirroring the WASM SDK.
  • Class CovenantBinding exposed to Python. Binds a transaction output to the covenant and the input authorizing its creation. Accepted as either an instance or a {"authorizingInput": ..., "covenantId": ...} dict wherever the bindings take a CovenantBinding.
  • Class GenesisCovenantGroup exposed to Python. Describes a group of transaction outputs bound to a single covenant id, used with Transaction.populate_genesis_covenants.
  • Transaction.populate_genesis_covenants(groups) — computes covenant ids and sets the bindings on the targeted outputs.
  • Function covenant_id(outpoint, auth_outputs) exposed to Python. Computes a covenant id from the authorizing input outpoint and ordered auth outputs.
  • PaymentOutput.with_covenant(address, amount, covenant) static method, plus an optional covenant key in PaymentOutput dicts.
  • TransactionOutput: optional covenant_id constructor argument, and a covenant key in to_dict() / from_dict().
  • TransactionInput: compute_budget constructor argument (default 0) and read/write property; from_dict() accepts an optional computeBudget key.
  • UtxoEntry / UtxoEntryReference: covenantId key in to_dict() / from_dict().
  • Opcodes: covenant and transaction-introspection opcodes (OpTxVersion through OpTxInputScriptSigLen, OpAuthOutputCount, OpAuthOutputIdx, OpNum2Bin, OpBin2Num, OpInputCovenantId, OpCovInputCount, OpCovInputIdx, OpCovOutputCount, OpCovOutputIdx, OpChainblockSeqCommit, OpOutputCovenantId, OpCheckSigFromStack, OpCheckSigFromStackECDSA, OpBlake3, OpBlake3WithKey, OpZkPrecompile, OpBlake2bWithKey), replacing the corresponding OpUnknownXXX placeholders.
  • RPC TypedDicts: RpcCovenantBinding, plus covenantId on RpcUtxoEntry, computeBudget on RpcTransactionInput, and covenant on RpcTransactionOutput.
  • Examples under examples/covenants/ demonstrating KIP-17 covenant usage.
  • py.typed marker (PEP 561) so type checkers use the bundled stubs.

Changed

  • The transaction mass field is now tracked as storage_mass following the Toccata hardfork; the Python-facing mass property, constructor argument, and dict key are retained as aliases.
  • The network minimum relay fee was raised upstream to 100 sompi/gram (Toccata). Fees produced by the wallet and Generator reflect the new floor; explicit fee_rate values must meet it.
  • Hash accepts str in addition to Hash instances wherever it is used as an argument, and gained a to_hex() method.
  • Address accepts str in addition to Address instances wherever it is used as an argument.
  • Added __repr__ methods to: Hash, Balance, Binary, Address, NetworkId, ScriptPublicKey, TransactionOutpoint, Transaction, TransactionInput, TransactionOutput, UtxoEntry, UtxoEntries (consensus and generator helper), UtxoEntryReference, ScriptBuilder, Wallet, Fees, PaymentOutput, Outputs, Generator, GeneratorSummary, PendingTransaction, BalanceStrings, UtxoProcessorEvent, UtxoProcessor, UtxoContext, Notification, Resolver, NotificationEvent, RpcClient, DerivationPath, XPub, PublicKey, XOnlyPublicKey, PublicKeyGenerator.
  • Documentation site reorganization & search ranking.
  • Doc comments added or cleaned up across all Python-exposed classes, methods, and functions.
  • Linux wheels now target manylinux_2_28 (glibc 2.28+) instead of manylinux2014 (glibc 2.17+). This was required because openssl-sys (pulled in transitively via native-tls/tungstenite for the wRPC wss:// client) dropped support for the EOL OpenSSL 1.0.2 that the manylinux2014 image ships; manylinux_2_28 ships OpenSSL 1.1.1. Impact: binary wheels no longer install on EOL distros below glibc 2.28 (e.g. CentOS 7, Ubuntu 18.04).

Breaking Changes

  • Opcode OpSubStr renamed to OpSubstr. OpUnknownXXX placeholder names for opcodes 0xa6-0xa7, 0xb2-0xc9, 0xcb-0xd5, and 0xd7-0xda are replaced by their real opcode names (see Added).
  • TransactionInput(...) gained a compute_budget parameter before utxo; positional callers passing utxo must update.
  • UtxoEntry.from_dict() / UtxoEntryReference.from_dict() now require a covenantId key (value may be None).
  • The network minimum relay fee was raised upstream to 100 sompi/gram (Toccata); explicit fee_rate values below the new floor are rejected.

Development

Internal SDK changes — not visible through the Python package API.

  • Bumped the pinned rusty-kaspa dependency from d290179 to 90dbf07 (v2.0.0, Toccata hardfork).
  • py_error_map! macro generating the wallet exception classes, the rusty-kaspa error → Python exception mapping, and register_exceptions. The mapping's match is exhaustive, so an upstream error variant addition fails the build until it is mapped.
  • IntoPyResult trait for more ergonomic conversion of rusty-kaspa native errors into PyResult.
  • pyproject.toml: set python-source = "python" and moved the package stub tree under python/kaspa/ (kaspa.pyi → python/kaspa/__init__.pyi).
  • Stub generation also emits python/kaspa/exceptions/__init__.pyi, making kaspa.exceptions a proper typed subpackage (Py prefix stripped from exception class names).
  • build-dev script builds with --strip for smaller artifacts.
  • Unit and integration test suites covering the Wallet API.
  • Pytest options --network-id and --rpc-url for targeting integration tests at a specific network / node.
  • Integration tests now default to mainnet (overridable via --network-id / --rpc-url). Prior, testnet-10 was hardcoded.

[1.1.0] - 2026-03-04

Added

  • Enum PyAddressVersion exposed to Python as AddressVersion
  • Enum PyNetworkType exposed to Python as NetworkType
  • Enum PyEncoding exposed to Python as Encoding
  • Enum PyNotificationEvent exposed to Python as NotificationEvent
  • Documentation site using MkDocs, Material for MkDocs, and mike.
  • Automatic generation of (most of) the stub (.pyi) file using pyo3-stub-gen crate and a binary. RPC TypedDicts (Request/Response structures, RPC types) are manually maintained in kaspa_rpc.pyi still.
  • Unit and integration tests with [pytest]https://docs.pytest.org/en/stable/.
  • GetVirtualChainFromBlockV2 RPC method.
  • to_dict() method for Transaction, TransactionInput, TransactionOutput, TransactionOutpoint, UtxoEntry, UtxoEntries, and UtxoEntryReference.
  • from_dict() method for Transaction, TransactionInput, TransactionOutput, TransactionOutpoint, and UtxoEntry.
  • Classes UtxoProcessor and UtxoContext bindings for UTXO tracking and mature range access.
  • Enum PyUtxoProcessorEvent exposed to Python as UtxoProcessorEvent.
  • Submodule exceptions where custom exceptions will be located. Currently empty given no custom exceptions exist (yet).
  • version getter for ScriptPublicKey.
  • Added to GeneratorSummary: to_dict() method, properties network_id, mass, and stages.

Changed

  • Bumped rusty-kaspa dependency version to commit d290179.
  • Moved Kaspa Python SDK out of Rusty-Kaspa (as a workspace member crate) to its own dedicated repository. The internals of this project have changed significantly as a result. However, all APIs exposed to Python remain unchanged.
  • All Python-exposed structs and enums are prefixed with Py (e.g. PyAddress) internally. The corresponding Python class name has not changed (prefix is dropped in Python).
  • All Python-exposed functions are prefixed with py_ (e.g. py_sign_message) internally. The corresponding Python function name has not changed (prefix is dropped in Python).
  • All enum parameter types across all functions/methods can be passed as a string (for backwards compatibility) or enum variant. Prior, only a string was accepted. Opcodes is the exception to this.
  • Standardize internal Rust method names for getters/setters to comply with pyo3 and pyo3-stub-gen. Prefix all with get_ or set_. Remove unnecessary name overrides.
  • All setters changed to use consistent value for parameter name.
  • PrivateKeyGenerator constructor accepts xprv parameter as both a str or XPrv instance now.
  • PublicKeyGenerator.from_master_xprv() accepts xprv parameter as both a str or XPrv instance now.
  • Generator, create_transactions, and estimate_transactions now accept UtxoContext entries (network_id optional for context inputs).
  • Python 3.9 is no longer supported. Minimum supported version is now 3.10.
  • Fix ScriptBuilder add_op/add_ops functions. add_op incorrectly allowed mulitple ops to be passed. add_ops incorrectly allowed a single op to be passed.

Fixed

  • kaspa.pyi: add overloads for UtxoProcessor.add_event_listener / remove_event_listener (typing only).

Breaking Changes

  • Python 3.9 is no longer supported. Minimum supported version is now 3.10.
  • Generator, create_transactions, and estimate_transactions reordered parameters to keep required arguments first (entries, change_address, network_id optional). Positional callers must update.

[1.0.1.post2] - 2025-11-13

Added

  • Support for Python 3.14

Changed

  • Specify Python compatibility as >=3.9,<=3.14
  • Upgraded crate pyo3 from 0.24.2 to 0.27.1.
  • Upgraded crate pyo3-async-runtimes from 0.24 to 0.27.0
  • Upgraded crate pyo3-log from 0.12.4 to 0.13.2
  • Upgraded crate serde-pyobject from 0.6.2 to 0.8.0
  • CI updates

[1.0.1.post1] - 2025-09-27

Added

  • Added RPC method submit_block.
  • RPC method get_virtual_chain_from_block support of minConfirmationCount.
  • RPC method doc strings in .pyi with expected request dict structure (for calls that require a request dict).

Changed

  • RPC method submit_transaction's request parameter now supports key allowOrphan. A deprecation warning will print when key allow_orphan is used. Support for allow_orphan will be removed in future version. This moves towards case consistency.
  • KeyError is now raised when an expected key is not contained in a dictionary. Prior, a general Exception was raised.