561 Group Market

Brokerage Paper Intent

Mandate-bound paper portfolio and typed order intent, for paper (non-live) venue accounts. No live venue effect.

Price
$2.00 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/paper-intent
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",
    "properties": {
      "request": {
        "type": "object",
        "required": [
          "contract",
          "evidencePackets",
          "symbol",
          "notional",
          "maximumLoss",
          "thesis",
          "falsifier",
          "liquidityPremise",
          "executionPremise",
          "scenarios"
        ],
        "properties": {
          "contract": {
            "type": "object"
          },
          "evidencePackets": {
            "type": "array",
            "minItems": 1
          },
          "symbol": {
            "type": "string"
          },
          "side": {
            "type": "string",
            "enum": [
              "buy",
              "sell"
            ]
          },
          "notional": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "maximumLoss": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "thesis": {
            "type": "string"
          },
          "falsifier": {
            "type": "string"
          },
          "liquidityPremise": {
            "type": "string"
          },
          "executionPremise": {
            "type": "string"
          },
          "scenarios": {
            "type": "array",
            "minItems": 2
          }
        }
      }
    },
    "required": [
      "request"
    ]
  }
}

Example request

{
  "method": "POST",
  "url": "https://market.561.group/v1/paper-intent",
  "headers": {
    "accept": "application/json",
    "content-type": "application/json"
  },
  "body": {
    "request": {
      "contract": {
        "type": "PrincipalBrokerageServiceContract",
        "id": "urn:example:discovery-contract",
        "scopes": [
          "orders:intent"
        ],
        "capital": {
          "amount": 100,
          "currency": "USD"
        },
        "risk": {
          "maximumOrderNotional": 100,
          "maximumLossAmount": 100,
          "concentrationLimit": 1
        }
      },
      "evidencePackets": [
        {
          "type": "IssuerEvidencePacket",
          "id": "sha256:public-example-evidence"
        }
      ],
      "symbol": "AAPL",
      "notional": 1,
      "maximumLoss": 1,
      "thesis": "Public discovery example only.",
      "falsifier": "Public discovery example only.",
      "liquidityPremise": "Public discovery example only.",
      "executionPremise": "Public discovery example only.",
      "scenarios": [
        {
          "pnl": -1
        },
        {
          "pnl": 1
        }
      ]
    }
  }
}

Output

{
  "schema": {
    "type": "object",
    "required": [
      "id",
      "type",
      "symbol",
      "notional",
      "maximumLoss",
      "effect",
      "liveVenueEffect"
    ],
    "properties": {
      "id": {
        "type": "string"
      },
      "type": {
        "const": "AggressiveBrokerageOrderIntent"
      },
      "symbol": {
        "type": "string"
      },
      "notional": {
        "type": "number"
      },
      "maximumLoss": {
        "type": "number"
      },
      "effect": {
        "const": "intent-only"
      },
      "liveVenueEffect": {
        "const": false
      }
    }
  },
  "example": {
    "id": "ni:///sha-256;QWPsvpnxG_tYdvupkwH8h6E6An5ysUgFouP3ErIjn_g",
    "type": "AggressiveBrokerageOrderIntent",
    "version": 1,
    "contract": "urn:example:discovery-contract",
    "evidence": [
      "sha256:public-example-evidence"
    ],
    "symbol": "AAPL",
    "side": "buy",
    "notional": 1,
    "currency": "USD",
    "maximumLoss": 1,
    "concentration": 0.01,
    "thesis": "Public discovery example only.",
    "falsifier": "Public discovery example only.",
    "liquidityPremise": "Public discovery example only.",
    "executionPremise": "Public discovery example only.",
    "scenarios": [
      {
        "pnl": -1
      },
      {
        "pnl": 1
      }
    ],
    "strategyCandidate": null,
    "promotionCertificate": null,
    "effect": "intent-only",
    "liveVenueEffect": false,
    "policyDigest": "ni:///sha-256;Z28F18zleSGiXrxHwSqP5pyHxLp7fj9AG0gTmFtB0WY"
  }
}

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 '{"request":{"contract":{"type":"PrincipalBrokerageServiceContract","id":"urn:example:discovery-contract","scopes":["orders:intent"],"capital":{"amount":100,"currency":"USD"},"risk":{"maximumOrderNotional":100,"maximumLossAmount":100,"concentrationLimit":1}},"evidencePackets":[{"type":"IssuerEvidencePacket","id":"sha256:public-example-evidence"}],"symbol":"AAPL","notional":1,"maximumLoss":1,"thesis":"Public discovery example only.","falsifier":"Public discovery example only.","liquidityPremise":"Public discovery example only.","executionPremise":"Public discovery example only.","scenarios":[{"pnl":-1},{"pnl":1}]}}' --url 'https://market.561.group/v1/paper-intent'

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

Machine-readable