Cross-SDK divergences
TypeScript-only: 133 symbols · Python-only: 128 symbols · Name diffs: 1 · Behavioral diffs: 1 · Manifest generated: 2026-05-29 10:42:13 UTC
If you use both SDKs (multi-language stack, or porting code between them), this is the single page that tells you what is missing where. The data is the same as per-symbol Cross-SDK status columns in sdk-js and sdk-python, but grouped for quick scanning.
Surfaces compared:
sdk_api: public SDK exports (classes, functions, types). The largest divergence surface, driven mostly by TS having more type definitions and Python having more storage/circuit-breaker helpers.errors: error class catalog. Smaller divergence; x402 error subclasses are TS-only because the Python SDK does not yet route x402.cli:actpsubcommand surface. Some commands are TS-only (older Commander-side flags) or Python-only (newer Typer-side ergonomics).
Name divergences and behavioral divergences are curated, not derived from set diff: they capture cases where the same concept appears under different names (e.g. DeadlineExpiredError vs DeadlinePassedError) or with different runtime behavior (e.g. CLI flag rejected on one side, silently ignored on the other).
TypeScript-only
SDK API (113)
ACTPFeedbackTag, ACTP_FEEDBACK_TAGS, AdapterRegistry, AdapterRouter, AdapterSelectionResult, AdapterTransactionState, ArweaveDownloadError, ArweaveTimeoutError, ArweaveUploadError, AutoWalletConfig, BatchedPayParams, BatchedPayResult, BelowCostBehavior, BelowPriceBehavior, BlockchainRuntime, BlockchainRuntimeConfig, BuyerNegotiationContext, ChannelPayload, CounterDecision, DEFAULT_PRICING_STRATEGY, DedupStore, DeliveredMessage, DisputeResolution, EASConfig, ERC8004Agent, ERC8004AgentMetadata, ERC8004BridgeConfig, ERC8004Error, ERC8004ErrorCode, ERC8004Network, ERC8004_DEFAULT_RPC, ERC8004_IDENTITY_REGISTRY, ERC8004_REPUTATION_REGISTRY, EconomicParams, HandlerContext, HandlerResult, IAdapter, IPFSClient, IPFSClientConfig, InMemoryDedupStore, InMemoryNonceManager, IncomingRequest, InsufficientFundsError, InvalidArweaveTxIdError, MockChannel, MockChannelConfig, NegotiationChannel, NegotiationMessage, NetworkConfig, NetworkOption, ProgressEvent, ProtocolCreateParams, ProviderBalance, ProviderOrchestrator, ProviderOrchestratorConfig, ProviderPolicy, ProviderPolicyEngine, ProviderPolicyResult, ProviderPolicyViolation, ProviderStats, QuoteChannelClient, QuoteChannelClientConfig, QuoteChannelHandler, QuoteChannelHandlerConfig, QuoteDecision, QuoteEvaluation, QuoteForEvaluation, QuoteResult, RelayChannel, RelayChannelConfig, ReportDisputeParams, ReportResult, ReportSettlementParams, ReputationFeedback, ReputationReporterConfig, ReputationSummary, RequestStatus, ServiceCost, StateHelpers, StorageInsufficientBalanceError, Subscription, SwapExecutionError, TimeoutError, TransactionStatus, URLValidationConfig, VerifyOnChainResult, VerifySource, WalletOption, WalletTransactionReceipt, WalletTransactionRequest, X402AdapterConfig, X402AmountExceededError, X402ApprovalFailedError, X402ConfigError, X402Error, X402NetworkNotAllowedError, X402PaymentFailedError, X402PublishRequiredError, X402SettlementProofMissingError, X402SignatureFailedError, X402UnsupportedWalletError, buildChannelPath, envelopeChainId, envelopeTxId, getCachedAddress, getNetwork, isAdapter, isCounterAcceptEnvelope, isCounterOfferEnvelope, isQuoteEnvelope, resolvePrivateKey, serviceDirectory, verifyQuoteHashOnChain
Errors (13)
ArweaveTimeoutError, InvalidArweaveTxIdError, SwapExecutionError, X402AmountExceededError, X402ApprovalFailedError, X402ConfigError, X402Error, X402NetworkNotAllowedError, X402PaymentFailedError, X402PublishRequiredError, X402SettlementProofMissingError, X402SignatureFailedError, X402UnsupportedWalletError
CLI (7)
agent, deploy:check, deploy:env, tx cancel, tx create, tx deliver, tx settle
Python-only
SDK API (107)
ACTPEvent, ACTPTimeoutError, ARCHIVE_SCHEMA_VERSION, AgentBehavior, AgentDID, AgentProfile, Attestation, CheckStatusResult, CircuitBreakerConfig, Constraints, ContentProof, CostModel, CounterOfferJustification, CreateEscrowParams, DEFAULT_WEIGHTS, DELIVERY_SCHEMA, DIDDocument, DeliveryAttestationData, DeliveryProof, DeliveryProofMessage, DeliveryProofMetadata, EIP712Domain, EscrowCreatedEvent, EscrowInfo, EscrowPayoutEvent, EventFilter, EventType, HAS_MESSAGES, HAS_WEB3_PROTOCOL, JobResult, LRUCache, Logger, MaxDailySpend, MaxUnitPrice, MerkleProof, MessageNonceManager, Negotiation, NonceManagerPool, NonceValidationResult, PROTOCOL_VERSION, ProviderConfig, ReceiptUploadFailure, ReceiptUploadOptions, ReceiptUploadPayload, ReceiptUploadResult, ReceiptUploadSuccess, RetryConfig, STATE_TRANSITIONS, Schema, ScoreBreakdown, Selection, ServiceDescriptor, ServiceDirectory, ServiceEndpoint, ServiceEntry, ServiceFilter, ServiceQuery, ServiceRequest, ServiceResponse, SetBasedReceivedNonceTracker, SignatureComponents, SignedMessage, StateHelper, StateTransitionedEvent, TimeInterface, TransactionCreatedEvent, TransactionDetails, TransactionFilter, TransactionReceipt, TransactionView, TypedData, VerificationMethod, ZERO_BYTES32, canonical_json_dumps, compute_domain_separator, compute_json_hash, compute_result_hash, compute_service_type_hash, compute_transaction_id, compute_type_hash, create_did_from_address, create_received_nonce_tracker, create_typed_data, did_to_address, discover_agents, generate_escrow_id, hash_service_input, hash_service_output, hash_struct, hash_typed_data, is_mock_runtime, is_terminal_state, is_valid_address, is_valid_transition, safe_json_parse, timing_safe_equal, upload_receipt, validate_address, validate_amount, validate_bytes32, validate_deadline, validate_dispute_window, validate_endpoint_url, validate_path, validate_service_name, validate_tx_id, verify_merkle_proof
Errors (17)
ArchiveBundleValidationError, ArweaveError, CircuitBreakerOpenError, ContractPausedError, DisputeWindowActiveError, EscrowError, EscrowNotFoundError, FileSizeLimitError, FilebaseDownloadError, FilebaseError, FilebaseUploadError, MockStateCorruptedError, MockStateLockError, MockStateVersionError, SSRFProtectionError, TransactionError, TransientRPCError
CLI (4)
deploy, deploy check, deploy env, tx transition
Name divergences
Same concept, different name in each SDK. Curated, not inferred. If python_has_alias is true, the Python SDK re-exports the TS name as an alias so both names resolve in Python.
| Concept | TypeScript | Python | Python alias | Notes |
|---|---|---|---|---|
deadline_expired | DeadlineExpiredError | DeadlinePassedError | ✓ | Python primary class is DeadlinePassedError; DeadlineExpiredError is exported as alias for parity. |
Behavioral divergences
Same surface name, different runtime behavior. These are bugs or pre-parity gaps tracked through to fix; the divergence is documented here so an integrator who hits it knows it is known.
actp pay --service
- TypeScript: rejected with PAY_SERVICE_REJECTION_MESSAGE (PRD §5.9, exit code 64)
- Python: silently ignored (flag accepted but has no effect)
- Notes: Confirmed during SDK parity audit 2026-05-25. Python fix tracked in python-sdk parity sprint.
How to use this page
- Porting code between SDKs: search this page first for the symbol you depend on; if it appears in TS-only or Python-only, you need a fallback or polyfill.
- Multi-language stack: scan the SDK API lists once to internalize the gaps; you will hit them at integration time and want to recognize them.
- Filing a parity bug: confirm the divergence is not already in the name-diffs or behavioral-diffs tables (those are intentional or already tracked).
See also:
- TypeScript SDK reference
- Python SDK reference
- Error reference: per-code triage
- CLI reference
- Truth-ledger manifest (raw JSON): the source the per-set lists above are extracted from