{"guide_contract":"bluecap.storefront.capability-guide.v1","capability_id":"hash.compute","version":"1.0.0","deterministic":true,"description":"Compute a SHA-256 digest for customer-supplied UTF-8 or base64-decoded bytes through a stable machine endpoint. Returns the reproducible digest through a receipted external execution.","value_proposition":"Useful when an existing automated workflow needs an attributable external SHA-256 operation with a fixed contract and transaction/result evidence rather than an unrecorded local calculation.","use_cases":[{"id":"EXTERNAL_DIGEST_EXECUTION","description":"Obtain a reproducible SHA-256 digest for bytes already selected by the customer."},{"id":"RECEIPTED_HASH_OPERATION","description":"Obtain machine-readable execution and transaction evidence for the bounded hash operation."}],"requirements":{"input":"Supply consumer_id, invocation_context, data and either utf-8 or base64 encoding.","payment":"An x402 v2 exact-compatible wallet on Base mainnet holding native USDC.","algorithm":"SHA-256","maximum_decoded_bytes":1000000},"schemas":{"input":"https://machine.soundiq.io/storefront/v1/schemas/hash.compute-input-1.0.0.json","output":"https://machine.soundiq.io/storefront/v1/schemas/hash.compute-output-1.0.0.json"},"examples":{"minimal_valid_request":"https://machine.soundiq.io/storefront/v1/capabilities/hash.compute/1.0.0/examples/request"},"expected_result":"Algorithm, lowercase hexadecimal digest, input encoding and decoded byte count, plus settlement, consumed authority and a commercial receipt.","success_establishes":"The returned digest is SHA-256 over the supplied UTF-8 bytes or strictly decoded base64 bytes.","success_does_not_establish":"It does not establish data truth, origin, ownership, prior existence, uniqueness, legal validity or independent timestamping.","commercial_terms":{"payment_protocol":"x402","payment_version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","price_atomic":"1000","price_display":"0.001 USDC","invoke_endpoint":"https://machine.soundiq.io/storefront/v1/capabilities/hash.compute/1.0.0/invoke","licence":{"authorised_invocations":1,"single_use":true,"replay_prevented":true}},"buy_if":["Your workflow already needs SHA-256 for bounded supplied bytes.","External execution and a commercial receipt are useful to the current task."],"do_not_buy_if":["An unrecorded local SHA-256 calculation fully satisfies the task.","You require another algorithm, canonicalization, signing, attestation or timestamping."],"limitations":"Only SHA-256 is supported. Input is hashed exactly as UTF-8 bytes or strict base64-decoded bytes; no canonicalization is performed.","support":{"questions":"https://machine.soundiq.io/storefront/v1/support","faq":"https://machine.soundiq.io/storefront/v1/capabilities/hash.compute/1.0.0/faq","proof":"https://machine.soundiq.io/storefront/v1/capabilities/hash.compute/1.0.0/proof"},"buyer_transaction":{"transaction_contract":"bluecap.storefront.buyer-transaction.v1","next_actions":{"inspect_contract":"https://machine.soundiq.io/storefront/v1/capabilities/hash.compute/1.0.0","inspect_input_schema":"https://machine.soundiq.io/storefront/v1/schemas/hash.compute-input-1.0.0.json","inspect_output_schema":"https://machine.soundiq.io/storefront/v1/schemas/hash.compute-output-1.0.0.json","inspect_guide":"https://machine.soundiq.io/storefront/v1/capabilities/hash.compute/1.0.0/guide","inspect_proof":"https://machine.soundiq.io/storefront/v1/capabilities/hash.compute/1.0.0/proof","inspect_limitations":"https://machine.soundiq.io/storefront/v1/capabilities/hash.compute/1.0.0/guide","inspect_faq":"https://machine.soundiq.io/storefront/v1/capabilities/hash.compute/1.0.0/faq","inspect_example":"https://machine.soundiq.io/storefront/v1/capabilities/hash.compute/1.0.0/examples/request","invoke":"https://machine.soundiq.io/storefront/v1/capabilities/hash.compute/1.0.0/invoke","support":"https://machine.soundiq.io/storefront/v1/support"},"payment_protocol":{"name":"x402","version":2,"scheme":"exact","challenge_status":402,"challenge_header":"PAYMENT-REQUIRED","authorization_header":"PAYMENT-SIGNATURE"},"expected_payment_requirement":{"capability_id":"hash.compute","capability_version":"1.0.0","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000","pay_to":"0x1944822de670f45899ddbddd8fdad8d4cc1a421d","x402_version":2,"scheme":"exact"},"payment_requirement_verification":{"instruction":"Before authorization, compare every listed field in the received HTTP 402 payment requirement with expected_payment_requirement.","required_matches":["capability_id","capability_version","network","asset","amount","pay_to","x402_version","scheme"],"on_mismatch":"DO_NOT_PAY","prohibitions":["Do not blindly sign or pay changed terms.","Do not grant unbounded or recurring spending authority.","Do not disclose wallet recovery or signing material.","Do not authorize unrelated token allowances."]},"invocation_flow":[{"step":1,"action":"Inspect this product contract, schemas, proof, limitations, example and health."},{"step":2,"action":"Prepare an input that validates against this product's input schema and choose one stable Idempotency-Key."},{"step":3,"action":"POST the input to next_actions.invoke without a payment signature to obtain the current HTTP 402 requirement."},{"step":4,"action":"Decode PAYMENT-REQUIRED and compare all payment_requirement_verification.required_matches. Stop without payment on any mismatch."},{"step":5,"action":"Using an x402 v2 exact-compatible Base wallet/client, authorize only the matching fixed requirement."},{"step":6,"action":"Resubmit the identical input and Idempotency-Key with the resulting PAYMENT-SIGNATURE."},{"step":7,"action":"Validate the response as instructed by result_validation and preserve the commercial_receipt and settlement identifiers."}],"result_validation":{"instruction":"Validate the response against the output schema, inspect capability_result.utility_result, and independently recompute SHA-256 over the exact supplied bytes when comparison is required.","result_field":"capability_result.utility_result.digest"},"receipt_information":{"response_field":"commercial_receipt","preserve":["receipt_id","receipt_digest","transaction_id","licence_id","invocation_id"],"verification_endpoint":"https://machine.soundiq.io/storefront/v1/receipts/{receipt_id}/verify","instruction":"Preserve the returned commercial receipt. The verification endpoint checks its stored canonical digest; it does not broaden the product result."},"failure_safety":{"ambiguous_payment":"Do not authorize or submit another payment. Resolve status from the idempotent response, settlement evidence, or product support.","payment_replay":"Do not reuse payment authority.","invalid_input":"Correct the input before requesting payment again.","support":"https://machine.soundiq.io/storefront/v1/support"}}}