{"library":"scalecodec","title":"Python SCALE Codec Library","description":"The `scalecodec` library is a Python implementation of the Substrate-specific Simple Concatenated Aggregate Little-Endian (SCALE) codec. It provides functionality for encoding and decoding data types used in Substrate-based blockchains, such as Polkadot and Kusama. The library is actively maintained, with frequent updates, and is currently at version 1.2.12, with a major version 2.0.0a (alpha) in development.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install scalecodec"],"cli":null},"imports":["from scalecodec.base import ScaleBytes","from scalecodec.type_registry import RuntimeConfiguration","from scalecodec.metadata import MetadataVersioned"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from scalecodec.base import ScaleBytes\nfrom scalecodec.type_registry import RuntimeConfiguration\n\n# Initialize a runtime configuration (required for decoding types based on metadata)\n# For simple types, a basic config can be used.\n# For complex types, load a specific chain's metadata using load_type_registry()\nruntime_config = RuntimeConfiguration()\n\n# Example: Encode a Compact integer\ncompact_int_value = 100000000000000\ncompact_encoder = runtime_config.create_scale_object(\"Compact<u128>\")\nencoded_data = compact_encoder.encode(compact_int_value)\nprint(f\"Encoded {compact_int_value} (Compact<u128>): {encoded_data.to_hex()}\")\n\n# Example: Decode a Compact integer\nencoded_hex_value = \"0x0b00407a10f35a\" # The SCALE encoding for 100,000,000,000,000\ncompact_decoder = runtime_config.create_scale_object(\"Compact<u128>\")\ndecoded_value = compact_decoder.decode(ScaleBytes(encoded_hex_value))\nprint(f\"Decoded {encoded_hex_value} (Compact<u128>): {decoded_value}\")","lang":"python","description":"This quickstart demonstrates encoding and decoding a 'Compact' integer, a common SCALE type for large numbers. It shows the typical pattern of initializing a `RuntimeConfiguration` and using `create_scale_object` for type-specific encoding/decoding in `scalecodec` v1.x. For complex types, you would load a chain's metadata into the `RuntimeConfiguration`.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"1.2.12","pypi_latest":"1.2.12","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.3,"avg_import_s":0.02,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"scalecodec","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.02,"mem_mb":1.5,"disk_size":"22.6M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"scalecodec","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.3,"import_time_s":0.02,"mem_mb":1.5,"disk_size":"23M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"scalecodec","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.04,"mem_mb":1.8,"disk_size":"24.8M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"scalecodec","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.3,"import_time_s":0.03,"mem_mb":1.8,"disk_size":"25M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"scalecodec","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.03,"mem_mb":1.4,"disk_size":"16.5M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"scalecodec","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2,"import_time_s":0.03,"mem_mb":1.4,"disk_size":"17M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"scalecodec","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.02,"mem_mb":1.5,"disk_size":"16.3M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"scalecodec","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.1,"import_time_s":0.02,"mem_mb":1.3,"disk_size":"17M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"scalecodec","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.02,"mem_mb":1.5,"disk_size":"21.8M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"scalecodec","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.6,"import_time_s":0.02,"mem_mb":1.5,"disk_size":"22M"}]}}