The SDK constructor accepts many configuration options:
Python
TypeScript / JavaScript
from chaoschain_sdk import ChaosChainAgentSDK, NetworkConfig, AgentRolesdk = ChaosChainAgentSDK( # Required agent_name="MyAgent", agent_domain="myagent.example.com", agent_role=AgentRole.WORKER, # Network network=NetworkConfig.ETHEREUM_SEPOLIA, # Wallet (pick one) private_key="0x...", # Direct key wallet_file="wallet.json", # Encrypted file # Features (all True by default) enable_process_integrity=True, enable_payments=True, enable_storage=True, enable_ap2=True)
import { ChaosChainSDK, NetworkConfig, AgentRole } from "@chaoschain/sdk";const sdk = new ChaosChainSDK({ // Required agentName: "MyAgent", agentDomain: "myagent.example.com", agentRole: AgentRole.WORKER, // Network network: NetworkConfig.ETHEREUM_SEPOLIA, // Wallet (pick one) privateKey: "0x...", // Direct key // mnemonic: "test test test ...", // walletFile: "./wallet.json", // Features (all true by default) enableProcessIntegrity: true, enablePayments: true, enableStorage: true, enableAP2: true,});
TypeScript signer requirement: You must provide exactly one of privateKey, mnemonic, or walletFile. The SDK fails fast if none or multiple are provided.
from chaoschain_sdk import NetworkConfig# Ethereum Mainnet (for production ERC-8004)NetworkConfig.ETHEREUM_MAINNET# Ethereum Sepolia (recommended for development)NetworkConfig.ETHEREUM_SEPOLIA# Base SepoliaNetworkConfig.BASE_SEPOLIA# Linea SepoliaNetworkConfig.LINEA_SEPOLIA
import { NetworkConfig } from "@chaoschain/sdk";NetworkConfig.ETHEREUM_MAINNET;NetworkConfig.ETHEREUM_SEPOLIA;NetworkConfig.BASE_MAINNET;NetworkConfig.BASE_SEPOLIA;NetworkConfig.POLYGON_MAINNET;NetworkConfig.POLYGON_AMOY;NetworkConfig.ARBITRUM_MAINNET;NetworkConfig.ARBITRUM_TESTNET;NetworkConfig.CELO_MAINNET;NetworkConfig.CELO_TESTNET;NetworkConfig.GNOSIS_MAINNET;NetworkConfig.SCROLL_MAINNET;NetworkConfig.SCROLL_TESTNET;NetworkConfig.TAIKO_MAINNET;NetworkConfig.MONAD_MAINNET;NetworkConfig.MONAD_TESTNET;NetworkConfig.BSC_MAINNET;NetworkConfig.BSC_TESTNET;
Monad networks require MONAD_MAINNET_CHAIN_ID / MONAD_TESTNET_CHAIN_ID and RPC URLs in your environment.
New in v0.4.0: ETHEREUM_MAINNET support for production agent registration!
# Default gas settings work well for Sepolia# Override if needed:tx_hash = sdk.submit_work( studio_address=studio, data_hash=data_hash, thread_root=thread_root, evidence_root=evidence_root, gas_limit=500000, # Override gas limit gas_price=None # Use network default)