561 Group Market

Trashpanda Base Pre-Sign Policy Conformance

Deterministically evaluates one unsigned Base transaction against the buyer's exact policy and immutable block anchor before signing, returning a replayable clause-by-clause PASS, FAIL, or ESCALATE receipt. No keys, signatures, custody, signing, or broadcast authority are accepted.

Price
$0.03 USDC per request
Network
Base mainnet, eip155:8453, settled in USDC through the Coinbase CDP facilitator
Method and URL
POST https://market.561.group/v1/pre-sign/conformance
Response type
application/json
Seller
Causeway Services (561 Group)

Input contract

Input that fails this contract is refused with a 4xx status before any payment is requested.

{
  "maxBytes": 102400,
  "bodySchema": {
    "type": "object",
    "required": [
      "type",
      "version",
      "transaction",
      "policy",
      "anchor",
      "evidence",
      "receiptProfile"
    ],
    "properties": {
      "type": {
        "const": "BasePreSignConformanceRequest"
      },
      "version": {
        "const": 1
      },
      "transaction": {
        "type": "object",
        "description": "One unsigned Base transaction; credentials, signatures, signed transactions, custody, signing, and broadcast grants are refused."
      },
      "policy": {
        "type": "object",
        "description": "The exact deterministic policy clauses to evaluate."
      },
      "anchor": {
        "type": "object",
        "description": "One immutable Base block number and hash."
      },
      "evidence": {
        "type": "array",
        "description": "Deterministic evidence objects cited by policy clauses."
      },
      "receiptProfile": {
        "const": "full-v1"
      }
    }
  }
}

Example request

{
  "method": "POST",
  "url": "https://market.561.group/v1/pre-sign/conformance",
  "headers": {
    "accept": "application/json",
    "content-type": "application/json"
  },
  "body": {
    "type": "BasePreSignConformanceRequest",
    "version": 1,
    "transaction": {
      "type": "UnsignedBaseTransaction",
      "chainId": 8453,
      "sender": "0x1111111111111111111111111111111111111111",
      "to": "0x2222222222222222222222222222222222222222",
      "valueWei": "0",
      "data": "0x",
      "gasLimit": "21000",
      "nonce": "0"
    },
    "policy": {
      "type": "BasePreSignPolicy",
      "version": 1,
      "clauses": [
        {
          "id": "a-chain",
          "type": "ChainIdEquals",
          "chainId": 8453
        }
      ]
    },
    "anchor": {
      "type": "ImmutableBaseBlockAnchor",
      "chainId": 8453,
      "blockNumber": "1",
      "blockHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    },
    "evidence": [],
    "receiptProfile": "full-v1"
  }
}

Output

{
  "schema": {
    "type": "object",
    "required": [
      "id",
      "type",
      "requestDigest",
      "transactionDigest",
      "policyDigest",
      "chain",
      "block",
      "anchorAssurance",
      "engine",
      "clauseResults",
      "verdict",
      "evidenceReferences",
      "evidenceAssurance",
      "replay",
      "forbiddenEffects"
    ],
    "properties": {
      "id": {
        "type": "string"
      },
      "type": {
        "const": "BasePreSignPolicyConformanceReceipt"
      },
      "verdict": {
        "enum": [
          "PASS",
          "FAIL",
          "ESCALATE"
        ]
      },
      "clauseResults": {
        "type": "array"
      },
      "forbiddenEffects": {
        "type": "object"
      }
    }
  },
  "example": {
    "id": "ni:///sha-256;NYqiNcrA_5bH1ysrXsy7hO0PzeX2NclTFkn85KCfvVk",
    "type": "BasePreSignPolicyConformanceReceipt",
    "version": 1,
    "requestDigest": "ni:///sha-256;a11hNQXJ34rZfGk823_e-4h2EOO-PF6POfwyMceH22Y",
    "transactionDigest": "ni:///sha-256;Gv7Dsz1qLH7bADxe1632n4apGzl8x9EHNBrylpXi1UA",
    "policyDigest": "ni:///sha-256;KZjmKuiZr5WC3oHkQcG3xQmP0ZqOt22H1dmYTBxaPG0",
    "chain": {
      "caip2": "eip155:8453",
      "chainId": 8453
    },
    "block": {
      "number": "1",
      "hash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    },
    "anchorAssurance": "customer-declared-unverified",
    "engine": {
      "id": "ni:///sha-256;Hb2S8iZrnwzh6Alj7lo0iYRXy25ByoNwbHi-gwatRhU",
      "version": 2
    },
    "clauseResults": [
      {
        "clauseId": "a-chain",
        "clauseType": "ChainIdEquals",
        "disposition": "PASS",
        "actual": 8453,
        "expected": 8453,
        "evidenceReferences": []
      }
    ],
    "verdict": "PASS",
    "evidenceReferences": [],
    "evidenceAssurance": "customer-declared-unverified",
    "replay": {
      "operation": "evaluateBasePreSignPolicy",
      "engineId": "ni:///sha-256;Hb2S8iZrnwzh6Alj7lo0iYRXy25ByoNwbHi-gwatRhU",
      "module": "@red-cup-engineering/blockchain-trashpanda@0.1.0",
      "export": "evaluateBasePreSignPolicy",
      "runtime": "node>=22.18",
      "normalizedRequest": {
        "type": "BasePreSignConformanceRequest",
        "version": 1,
        "transaction": {
          "type": "UnsignedBaseTransaction",
          "chainId": 8453,
          "sender": "0x1111111111111111111111111111111111111111",
          "to": "0x2222222222222222222222222222222222222222",
          "valueWei": "0",
          "data": "0x",
          "gasLimit": "21000",
          "nonce": "0"
        },
        "policy": {
          "type": "BasePreSignPolicy",
          "version": 1,
          "clauses": [
            {
              "id": "a-chain",
              "type": "ChainIdEquals",
              "chainId": 8453
            }
          ]
        },
        "anchor": {
          "type": "ImmutableBaseBlockAnchor",
          "chainId": 8453,
          "blockNumber": "1",
          "blockHa
… (truncated; the full contract is in /v1/catalog)

How to buy with x402

  1. Send the request without payment. The server answers 402 Payment Required with a base64 JSON PAYMENT-REQUIRED header holding the amount, asset, network and payee.
  2. Have your wallet sign an EIP-3009 transferWithAuthorization for exactly those terms (an x402 client library does this for you).
  3. Repeat the identical request with the signed payload in the PAYMENT-SIGNATURE header.
  4. The server verifies, runs the operation, settles, and returns 200 with the result and a PAYMENT-RESPONSE header carrying the settlement receipt.

Read the price without paying

curl --include --request POST --header 'accept: application/json' --header 'content-type: application/json' --data-raw '{"type":"BasePreSignConformanceRequest","version":1,"transaction":{"type":"UnsignedBaseTransaction","chainId":8453,"sender":"0x1111111111111111111111111111111111111111","to":"0x2222222222222222222222222222222222222222","valueWei":"0","data":"0x","gasLimit":"21000","nonce":"0"},"policy":{"type":"BasePreSignPolicy","version":1,"clauses":[{"id":"a-chain","type":"ChainIdEquals","chainId":8453}]},"anchor":{"type":"ImmutableBaseBlockAnchor","chainId":8453,"blockNumber":"1","blockHash":"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},"evidence":[],"receiptProfile":"full-v1"}' --url 'https://market.561.group/v1/pre-sign/conformance'

This request authorizes nothing; it returns the live payment terms. Read the full explanation of x402.

Machine-readable