{"service":"SIDERA Memory","description":"Sidera agent guide: https://shadowharness.com/sidera/llm/ Start with the overview, then follow the sample, pricing and ordering sections. Turn supported Claude, Codex, Grok and Gemini logs into reusable memory.md and lossless raw.tar.zst with dated decisions and source evidence. Standard guide: 100 MB 2 USDC; 1 GB 18 USDC. Service information is free; upload measurement supplies the final processing quote before payment.","discovery_price_usdc":"0","includes_processing":false,"reserves_capacity":false,"overview_url":"https://shadowharness.com/sidera/llm/","agent_document_url":"https://shadowharness.com/sidera/llm/","agent_sections":{"sample":"https://shadowharness.com/sidera/llm/#s05","retrieval":"https://shadowharness.com/sidera/llm/#s06","pricing":"https://shadowharness.com/sidera/llm/#s09","cost_comparison":"https://shadowharness.com/sidera/llm/#s10","data_handling":"https://shadowharness.com/sidera/llm/#s11","ordering":"https://shadowharness.com/sidera/llm/#s12"},"ordering_url":"https://shadowharness.com/sidera/ORDERING.md","usage_url":"https://shadowharness.com/sidera/USAGE.md","samples_url":"https://shadowharness.com/sidera/examples/README.md","orders_url":"https://shadowharness.com/v1/orders","quote_url":"https://shadowharness.com/v1/quote?bytes=100000000","order_input_schema":{"type":"object","additionalProperties":false,"required":["request_key","email"],"properties":{"request_key":{"type":"string","pattern":"^[A-Za-z0-9_-]{32,128}$","writeOnly":true,"description":"Generate at least 128 bits of secret entropy. For example, encode 32 random bytes as hex. Retain the same value for order recovery. Never use a published example key."},"email":{"type":"string","format":"email","maxLength":254,"description":"Order confirmation and expected completion window. Retain the same address on recovery requests."},"estimate_id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$","format":"uuid","description":"Optional successful GET /v1/quote estimate_id. One estimate links to one request_key. The gateway retains this association; it is not a price commitment."}}},"pricing":{"basis":"measured_original_bytes","unit_bytes":1000000,"currency":"USDC","rounding":"ceil_to_mb","tiers":[{"minimum_bytes":0,"usd_per_mb":"0.020","micro_usdc_per_mb":20000},{"minimum_bytes":1000000000,"usd_per_mb":"0.018","micro_usdc_per_mb":18000},{"minimum_bytes":5000000000,"usd_per_mb":"0.015","micro_usdc_per_mb":15000}]},"delivery":{"version":"v3","mode":"asynchronous","payment_due":"after_measurement_and_quote","processing_starts":"payment_settled","estimated_duration_seconds":null,"maximum_duration_seconds":null,"completion_deadline":null,"estimate_kind":"approximate_range","estimate_basis":"original_input_bytes","large_inputs_may_exceed_seconds":36000,"poll_after_seconds":60,"timing_factors":["original_input_bytes","source_cli_and_log_format","extracted_conversation_volume","session_and_slice_counts","api_response_time","retries"],"description":"Submit one tar.zst archive. The server measures original JSONL bytes and presents a price and approximate processing time before payment. Processing starts only after x402 settlement and returns memory.md and raw.tar.zst. Estimates exclude upload and measurement time and vary with log format, conversation volume, API load and retries."},"quote_policy":{"valid_for_seconds":3600,"pricing_notice":"Standard prices assume typical session logs. Logs that require more work to interpret content and organize decisions, changes and their relationships may receive a higher quote. The final amount is shown before payment and is fixed when you pay.","notice":"This measured quote is valid for 60 minutes. If you cancel or payment is not submitted before expiry, the submitted data and the dedicated container are deleted. Each request uses a fresh container. A new request and upload are required. A payment already being settled is retained until its outcome is known."},"upload_policy":{"deadline_seconds":3600,"notice":"Upload the archive within 60 minutes of creating the request. A request whose upload has not completed by then expires, and its data and dedicated container are deleted. Each request uses a fresh container. A new request is required."},"workflow":[{"number":1,"operation":"estimateSideraPrice","title":"Get an estimate","request":{"method":"GET","href":"https://shadowharness.com/v1/quote?bytes={{original_bytes}}","headers":{}},"expect":{"status":[200],"estimate_only":true,"reserves_capacity":false},"save":{"estimate_id":"$response.body#/estimate_id"},"next_action":{"operation":"createSideraOrder","href":"$response.body#/next_action/url"}},{"number":2,"operation":"createSideraOrder","title":"Create one request and retain its private receipt","request":{"method":"POST","href":"https://shadowharness.com/v1/orders","headers":{"Content-Type":"application/json"},"body":{"request_key":"{{private.request_key}}","email":"{{private.email}}","estimate_id":"{{estimate_id}}"}},"expect":{"status":[201,200],"state":"uploading"},"save":{"private.order_token":"$response.body#/order_token","status_url":"$response.body#/status_url","upload_url":"$response.body#/upload_url","payment_url":"$response.body#/payment_url","delivery_receipt_url":"$response.body#/delivery_receipt_url","cancel_url":"$response.body#/cancel_url","upload_deadline_at":"$response.body#/upload_deadline_at"},"next_action":{"operation":"uploadSideraInput","href":"$response.body#/upload_url"}},{"number":3,"operation":"uploadSideraInput","title":"Upload once and inspect the formal measured quote","request":{"method":"PUT","href":"{{upload_url}}","headers":{"Authorization":"Bearer {{private.order_token}}","Content-Type":"application/zstd"},"body_file":"{{private.archive_path}}","content_encoding":"identity"},"expect":{"status":[200],"state":"awaiting_payment","formal_amount":["pricing.price","pricing.amount_micro_usdc"],"expiry":"quote.expires_at"},"before_request":"Complete upload before upload_deadline_at. Send archive bytes, not a JSON wrapper.","save":{"formal_pricing":"$response.body#/pricing","formal_input":"$response.body#/input","formal_delivery":"$response.body#/delivery","formal_quote":"$response.body#/quote"},"next_action":{"operation":"paySideraOrder","href":"$response.body#/payment_url","signed":false}},{"number":4,"operation":"paySideraOrder","title":"Get the unsigned x402 challenge","request":{"method":"POST","href":"{{payment_url}}","headers":{"Content-Type":"application/json"},"body":{"request_key":"{{private.request_key}}"}},"expect":{"status":[402],"header":"PAYMENT-REQUIRED","charges_payment":false},"save":{"private.payment_required":"base64-decode($response.headers.PAYMENT-REQUIRED)"},"next_action":{"operation":"paySideraOrder","href":"{{payment_url}}","signed":true,"client_url":"https://shadowharness.com/sidera/client/"}},{"number":5,"operation":"paySideraOrder","title":"Sign and submit the measured quote once","request":{"method":"POST","href":"{{payment_url}}","headers":{"Content-Type":"application/json","PAYMENT-SIGNATURE":"{{private.payment_signature}}"},"body":{"request_key":"{{private.request_key}}"}},"expect":{"status":[201,200,202],"paid_when":"payment.success == true","unresolved_states":["settling","payment_review"],"settlement_header":"PAYMENT-RESPONSE"},"before_request":{"executable_client":{"href":"https://shadowharness.com/sidera/client/"},"validate":["resource.url equals payment_url","pricing and input match the saved formal quote","quote.expires_at is in the future","selected accepts amount matches formal_pricing.amount_micro_usdc","selected network, asset, payTo and terms_sha256 match the approved live challenge"],"sign":"Use the client x402 v2 signer for one live accepts entry; preserve resource, accepted.extra and required extensions. Base64-encode the resulting JSON payload and save that exact value privately before transmission."},"next_action":{"operation":"getSideraOrder","href":"{{status_url}}"}},{"number":6,"operation":"getSideraOrder","title":"Poll the same order until artifacts are ready","request":{"method":"GET","href":"{{status_url}}","headers":{"Authorization":"Bearer {{private.order_token}}"}},"expect":{"status":[200],"ready_state":"done","waiting_states":["settling","payment_review","queued","processing"]},"repeat":"Use Retry-After seconds or delivery.poll_after_seconds (normally 60). Do not treat an estimated completion time as a deadline.","save_when":{"state":"done"},"save":{"artifacts":"$response.body#/artifacts","memory_url":{"select":"$response.body#/artifacts","where":{"name":"memory.md"},"field":"url"},"raw_url":{"select":"$response.body#/artifacts","where":{"name":"raw.tar.zst"},"field":"url"},"expected_memory_sha256":{"select":"$response.body#/artifacts","where":{"name":"memory.md"},"field":"sha256"},"expected_raw_sha256":{"select":"$response.body#/artifacts","where":{"name":"raw.tar.zst"},"field":"sha256"}},"next_action":{"operation":"downloadSideraMemory","href":"{{memory_url}}"}},{"number":7,"operation":"downloadSideraMemory","title":"Save the complete memory.md bytes","request":{"method":"GET","href":"{{memory_url}}","headers":{"Authorization":"Bearer {{private.order_token}}"}},"expect":{"status":[200],"save_file":"memory.md"},"next_action":{"operation":"downloadSideraRaw","href":"{{raw_url}}"}},{"number":8,"operation":"downloadSideraRaw","title":"Save the complete raw.tar.zst bytes","request":{"method":"GET","href":"{{raw_url}}","headers":{"Authorization":"Bearer {{private.order_token}}"}},"expect":{"status":[200],"save_file":"raw.tar.zst"},"next_action":{"operation":"acknowledgeSideraDelivery","href":"{{delivery_receipt_url}}"}},{"number":9,"operation":"acknowledgeSideraDelivery","title":"Verify both hashes and acknowledge saved delivery","request":{"method":"POST","href":"{{delivery_receipt_url}}","headers":{"Authorization":"Bearer {{private.order_token}}","Content-Type":"application/json"},"body":{"memory.md":"{{verified_memory_sha256}}","raw.tar.zst":"{{verified_raw_sha256}}"}},"expect":{"status":[200],"state":"delivery_received"},"before_request":"Compute SHA-256 over both complete local files and compare with expected_memory_sha256 and expected_raw_sha256. Bind the matching computed values as verified_memory_sha256 and verified_raw_sha256. Send those hashes as the direct two-property object. Keep both local files; acknowledgement allows worker deletion.","next_action":{"operation":"useLocalSideraArtifacts","href":"https://shadowharness.com/sidera/USAGE.md"}}],"workflow_version":"sidera-purchase/v1","openapi_url":"https://shadowharness.com/openapi.json","client_url":"https://shadowharness.com/sidera/client/","links":{"client":{"href":"https://shadowharness.com/sidera/client/","description":"Executable Node client: archive preparation, x402 signing, polling, hash verification and acknowledgement."},"ordering":{"href":"https://shadowharness.com/sidera/ORDERING.md"},"agent":{"href":"https://shadowharness.com/sidera/llm/#s12"},"openapi":{"href":"https://shadowharness.com/openapi.json"}},"next_action":{"operation":"estimateSideraPrice","method":"GET","url":"https://shadowharness.com/v1/quote","required":["bytes"],"guide_url":"https://shadowharness.com/sidera/ORDERING.md","client_url":"https://shadowharness.com/sidera/client/"},"template_binding":"Replace {{name}} with the named saved value before sending HTTP. Save returned URLs unchanged. $response.body# uses JSON Pointer. A select binding finds the unique array item matching where and extracts field. Values under private are never console output or public files.","prerequisites":{"runtime":"Node.js and the executable client instructions at client_url; an HTTP client that preserves binary request/response bodies and response headers.","input":"One tar.zst containing regular raw/{claude,ext-codex,ext-grok,ext-gemini}/<session>.jsonl files. Prepare and preflight using the executable client; save its local path as private.archive_path.","original_bytes":"Sum of original uncompressed JSONL file bytes, used only for the estimate.","private":["request_key: 32 cryptographically random bytes encoded as 64 hex characters; retain for all recovery requests.","email: confirmation address; retain the same address with the request.","order_token: returned per-order Bearer credential.","payment_required: decoded live challenge; payment_signature: exact base64 payload saved before its first submission.","wallet signer: existing funded wallet for one network/asset offered in accepts. The client guide supplies the x402 v2 SDK setup; HTTP alone cannot create a wallet signature."],"secret_storage":"Store request_key, email, order_token and payment signature in a private local file. Keep wallet keys in the existing wallet or private credential store. Send secrets only in the documented body/header, never query strings or shared logs."},"state_actions":{"uploading":"Upload before upload_deadline_at.","measuring":"Poll status; do not start a parallel upload.","awaiting_payment":"Inspect the formal pricing and submit the approved x402 payment before quote.expires_at.","settling":"Poll the same order without a new signature.","payment_review":"Poll the same order; if review persists use support_email with order_id and public transaction only.","queued":"Poll the same order.","processing":"Poll the same order.","done":"Save and hash-verify both artifacts, then acknowledge.","failed":"POST retry on the same paid order only when payment.success is true and every file is received.","payment_failed":"Inspect the definite settlement result; do not create a replacement proof on the bound order. Use support_email with order_id and public transaction only.","delivery_received":"Purchase is complete; use the verified local artifacts.","cancelled":"Unpaid data was deleted. A new purchase requires a new request and upload.","expired":"Unpaid data was deleted. A new purchase requires a new request and upload."},"recovery":[{"when":"create response lost, timeout or HTTP 502","operation":"createSideraOrder","action":"Replay the same request_key, email and estimate_id. The gateway keeps an ambiguous reservation for this key; never rotate the key just to recover."},{"when":"upload response lost","operation":"getSideraOrder","action":"GET status_url. Keep an existing measured input and quote. If still uploading, resend the same archive; on upload_in_progress poll instead."},{"when":"signed payment response lost, timeout, HTTP 502 or HTTP 202","operation":"getSideraOrder","action":"Query this same order. Retain the original signature. Do not sign again or start another payment. Replaying an identical bound proof retrieves its receipt and cannot retry its settlement."},{"when":"HTTP 503 no_available_worker","operation":"createSideraOrder","action":"Honor Retry-After (60 seconds when returned) and retain the same request body for recovery."},{"when":"HTTP 410 quote_expired/request_expired/order_expired/order_cancelled","action":"The expired or cancelled request cannot be paid. The upload window and measured quote each last 3600 seconds; a new purchase requires a fresh request and upload. A settlement already in progress is retained for resolution."},{"when":"artifact transfer interrupted","operation":"getSideraOrder","action":"Refresh artifact metadata; resume with a single bytes=start- range and the quoted SHA-256 as If-Match. Verify the complete assembled file before acknowledging."},{"when":"processing failed after successful payment","operation":"retrySideraProcessing","request":{"method":"POST","href":"{{status_url}}/retry","headers":{"Authorization":"Bearer {{private.order_token}}"}},"action":"Retry the existing paid order with no additional payment, only when input remains received."},{"when":"explicit unpaid cancellation","operation":"cancelSideraOrder","request":{"method":"POST","href":"{{cancel_url}}","headers":{"Authorization":"Bearer {{private.order_token}}"}},"action":"Cancellation deletes unpaid data. Do not use cancellation as recovery from an unknown payment result."},{"when":"delivery acknowledgement response lost","operation":"getSideraOrder","action":"Query the same order; delivery_received is terminal. While the worker exists, replaying the same verified hash object is idempotent. HTTP 410 order_retired means the worker is gone; retain the verified local files."}],"retention":{"seconds_after_processing":86400,"action":"Download before retention_expires_at. Delivery acknowledgement or retention expiry permits deletion of the worker container."}}