Python SDK
python -m pip install reactor-sdkFirst message
import os
from reactor_sdk import ReactorClient, evm
reactor = ReactorClient(api_key=os.environ["REACTOR_API_KEY"])
payload = evm.generate_random_numbers.encode_request(3)
result = reactor.send(
destination_name="base",
destination_address="0x1111111111111111111111111111111111111111",
action="generate_random_numbers",
payload=payload,
)
print(result.message_id, result.transaction_id, result.status)The client defaults to https://api.reactor.network, reuses a requests.Session, and has a 30-second timeout. Set request_id when explicitly retrying an idempotent request. payload_hash is generated from the decoded payload bytes.
EVM helpers
parameter = evm.ReactorParameter(name="destination", value="base")
chain_payload = evm.chain_message.encode("0x010203", (parameter,))
chain_request = evm.chain_message.decode(chain_payload)web_payload = evm.web_message.encode_request(
method="POST",
url="https://example.com/v1",
body='{"ping":"pong"}',
headers=(evm.ReactorParameter("accept", "application/json"),),
)
web_request = evm.web_message.decode_request(web_payload)
web_response = evm.web_message.decode_response(response_payload)random_payload = evm.generate_random_numbers.encode_request(3)
random_request = evm.generate_random_numbers.decode_request(random_payload)
numbers = evm.generate_random_numbers.decode_response(response_payload) # tuple[int, ...]These APIs implement the Helper’s exact (bytes,string[],string[]), Web request/response, uint256, and uint256[] layouts. Encoded strings are ready for ReactorClient.send.
Errors and configuration
Use ReactorClient as a context manager or call close() when it owns the session. ReactorAPIError exposes status_code, code, optional detail, and optional retry_after. A custom base_url must use HTTPS, except localhost tests.
See the HTTP API for wire behavior and statuses.
Last updated on