Skip to main content

Overview

Dynamic’s Python SDK exposes two transaction methods on DynamicSvmWalletClient:
  • send_transaction — signs a serialized message and broadcasts it via JSON-RPC. Returns the base58-encoded transaction signature. This is the path most apps want.
  • sign_transaction — signs only. Returns a hex-encoded Ed25519 signature you assemble into a transaction yourself. Note that this is asymmetric with sign_message, which returns a base58 signature — the SDK uses different encodings on purpose.
Both methods sign the transaction message (not the full transaction). Pass bytes(tx.message) or tx.serialize_message().

Prerequisites

Quick Start: Send a Transaction

send_transaction builds the wire transaction, signs the message, and broadcasts it for you:
rpc_url resolution: explicit argument → DynamicSvmWalletClient(default_rpc_url=...) → falls back to https://api.devnet.solana.com.

Signing with a Password-Protected Wallet

Gas Sponsorship

Pass sponsor=True to have Dynamic pay network fees for the transaction:
Gas sponsorship requires the feature to be enabled for your environment in the Dynamic dashboard.

Manual Signing and Broadcasting

When you need to inspect, log, or relay the signed transaction yourself, use sign_transaction to get the raw signature and assemble the wire transaction by hand.
sign_transaction returns the signature as hex (64 bytes / 128 hex chars). Convert to bytes with bytes.fromhex(sig_hex) before inserting into the transaction. If a downstream consumer expects base58:

Verifying a Signature

Error Handling

Next Steps

Last modified on May 5, 2026