561 Group Market

Trashpanda Market Action Admission

Deterministically evaluates one proposed market action against the buyer's exact policy, immutable snapshot, fees, risk limits, and customer-declared public evidence, returning a replayable ADMIT, REFUSE, or ESCALATE receipt. It does not predict markets, handle keys, hold custody, sign, place orders, or execute trades.

Price
$0.04 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/market-action/admission
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",
      "candidate",
      "anchor",
      "evidence",
      "policy",
      "receiptProfile"
    ],
    "properties": {
      "type": {
        "const": "MarketActionAdmissionRequest"
      },
      "version": {
        "const": 1
      },
      "candidate": {
        "type": "object",
        "description": "One proposed BUY, SELL, CLOSE, REDUCE, or HOLD action; never an order or execution grant."
      },
      "anchor": {
        "type": "object",
        "description": "One immutable content-addressed snapshot and bounded decision-validity window."
      },
      "evidence": {
        "type": "array",
        "description": "Sorted customer-declared, publicly referenceable observations bound to the snapshot."
      },
      "policy": {
        "type": "object",
        "description": "Sorted deterministic admission clauses for venue, instrument, action, notional, leverage, evidence thresholds, and freshness."
      },
      "receiptProfile": {
        "const": "full-v1"
      }
    }
  }
}

Example request

{
  "method": "POST",
  "url": "https://market.561.group/v1/market-action/admission",
  "headers": {
    "accept": "application/json",
    "content-type": "application/json"
  },
  "body": {
    "type": "MarketActionAdmissionRequest",
    "version": 1,
    "candidate": {
      "type": "CandidateMarketAction",
      "action": "SELL",
      "venue": "urn:venue:gmx-v2:eip155:42161",
      "instrument": "urn:instrument:gmx:eth-usd-perpetual",
      "side": "LONG",
      "notionalUsdMicros": "25000000",
      "leverageBps": "20000"
    },
    "anchor": {
      "type": "ImmutableMarketDecisionAnchor",
      "snapshot": "ni:///sha-256;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
      "decisionAt": "2026-07-22T18:00:30.000Z",
      "expiresAt": "2026-07-22T18:05:30.000Z"
    },
    "evidence": [],
    "policy": {
      "type": "MarketActionAdmissionPolicy",
      "version": 1,
      "clauses": [
        {
          "id": "a-action",
          "type": "ActionIn",
          "actions": [
            "SELL"
          ]
        },
        {
          "id": "b-notional",
          "type": "NotionalUsdMicrosAtMost",
          "value": "50000000"
        },
        {
          "id": "c-leverage",
          "type": "LeverageBpsAtMost",
          "value": "30000"
        }
      ]
    },
    "receiptProfile": "full-v1"
  }
}

Output

{
  "schema": {
    "type": "object",
    "required": [
      "id",
      "type",
      "requestDigest",
      "candidateDigest",
      "policyDigest",
      "snapshot",
      "decisionAt",
      "validUntil",
      "engine",
      "clauseResults",
      "verdict",
      "replay",
      "forbiddenEffects"
    ],
    "properties": {
      "id": {
        "type": "string"
      },
      "type": {
        "const": "MarketActionAdmissionReceipt"
      },
      "verdict": {
        "enum": [
          "ADMIT",
          "REFUSE",
          "ESCALATE"
        ]
      },
      "clauseResults": {
        "type": "array"
      },
      "forbiddenEffects": {
        "type": "object"
      }
    }
  },
  "example": {
    "id": "ni:///sha-256;mshiVXmzYJ5NKzaGyYPYr_YsMJrUHlbN-aMWxiLG5K8",
    "type": "MarketActionAdmissionReceipt",
    "version": 1,
    "requestDigest": "ni:///sha-256;hM-CWdx0B6FiU_m1YW9T_zszoYVPLhKvS0iTlUYepMw",
    "candidateDigest": "ni:///sha-256;-IV8qW8_dh30Y6LDm-COWPxvAbLW06C_Lg_dr7U8U98",
    "policyDigest": "ni:///sha-256;LvzlDtQN4eARgJ51OOiLwkSwVf_w8VFkgm57sMDpHmA",
    "snapshot": "ni:///sha-256;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
    "decisionAt": "2026-07-22T18:00:30.000Z",
    "validUntil": "2026-07-22T18:05:30.000Z",
    "engine": {
      "id": "ni:///sha-256;-nztTB51d0leDDsL9bBVvvkNzWrTmRRgmOAZG-k2aiE",
      "version": 1
    },
    "clauseResults": [
      {
        "clauseId": "a-action",
        "clauseType": "ActionIn",
        "disposition": "PASS",
        "actual": "SELL",
        "expected": [
          "SELL"
        ],
        "evidenceReferences": []
      },
      {
        "clauseId": "b-notional",
        "clauseType": "NotionalUsdMicrosAtMost",
        "disposition": "PASS",
        "actual": "25000000",
        "expected": "50000000",
        "evidenceReferences": []
      },
      {
        "clauseId": "c-leverage",
        "clauseType": "LeverageBpsAtMost",
        "disposition": "PASS",
        "actual": "20000",
        "expected": "30000",
        "evidenceReferences": []
      }
    ],
    "verdict": "ADMIT",
    "evidenceReferences": [],
    "evidenceAssurance": "customer-declared-unverified",
    "decisionScope": "policy-admission-only-not-prediction-or-execution",
    "replay": {
      "operation": "evaluateMarketActionAdmission",
      "engineId": "ni:///sha-256;-nztTB51d0leDDsL9bBVvvkNzWrTmRRgmOAZG-k2aiE",
      "module": "@red-cup-engineering/blockchain-trashpanda",
      "export": "evaluateMarketActionAdmission",
      "runtime": "node>=22.18",
      "normalizedRequest": {
        "type": "MarketActionAdmissionRequest",
        "version": 1,
        "candidate": {
          "type": "CandidateMarketAction",
          "action": "SELL",
          "venue": "urn:venue:gmx-v2:eip155:42161",
          "instrument": "urn:instrument:gmx:eth-usd-perpetual",
          "side": "LONG",
          "notionalUsdMicros": "25000000",
          "leverageBps": "20000"
        },
        "anchor": {
          "
… (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":"MarketActionAdmissionRequest","version":1,"candidate":{"type":"CandidateMarketAction","action":"SELL","venue":"urn:venue:gmx-v2:eip155:42161","instrument":"urn:instrument:gmx:eth-usd-perpetual","side":"LONG","notionalUsdMicros":"25000000","leverageBps":"20000"},"anchor":{"type":"ImmutableMarketDecisionAnchor","snapshot":"ni:///sha-256;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA","decisionAt":"2026-07-22T18:00:30.000Z","expiresAt":"2026-07-22T18:05:30.000Z"},"evidence":[],"policy":{"type":"MarketActionAdmissionPolicy","version":1,"clauses":[{"id":"a-action","type":"ActionIn","actions":["SELL"]},{"id":"b-notional","type":"NotionalUsdMicrosAtMost","value":"50000000"},{"id":"c-leverage","type":"LeverageBpsAtMost","value":"30000"}]},"receiptProfile":"full-v1"}' --url 'https://market.561.group/v1/market-action/admission'

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

Machine-readable