Act·two-phase async
ᛚ
Long-running HTTP
Polling + JQ extract
Long-poll workflows with built-in JQ extraction. Minutes to hours.
0x0000000000000000000000000000000000000805Explorer
Interactive form — coming next session
Two-phase async UI in progress. The precompile itself is 0x0000000000000000000000000000000000000805 and live on testnet — use the canonical Solidity / viem code below to integrate from your own contract.
ABI summary
( HTTPCallRequest initial, // same as 0x0801 uint256 pollingInterval, uint256 maxBlocks, string jqStatusPath, // poll until this matches string jqResultPath, // extract from response string jqErrorPath, ...35 fields total ) → delivers (uint16 status, bytes body, string error)
Callback pattern
Two-phase precompiles deliver results via AsyncDelivery at 0x5A16214fF555848411544b005f7Ac063742f39F6 calling your contract’s callback. Always verify msg.sender == ASYNC_DELIVERY to prevent injection.
function onLongRunningResult(bytes32 jobId, bytes calldata result) external {
require(msg.sender == ASYNC_DELIVERY, "unauth");
// ... decode result based on this precompile's response ABI
}Read the spectwo-phase · long-http