561 Group Market

SEN Settle

Settle a posited SignGraph presheaf to its SignCraft least fixed point: the coordination-free settlement of what was told.

Price
$0.008 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/sen/settle
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",
    "$id": "relating/articulating/predicating/positing/presheaf",
    "additionalProperties": true,
    "description": "A SignGraph presheaf: a site and the valuations posited over it.",
    "properties": {
      "kind": {
        "const": "signgraph.presheaf"
      }
    },
    "required": [
      "kind"
    ],
    "title": "PositPresheaf"
  }
}

Example request

{
  "method": "POST",
  "url": "https://market.561.group/v1/sen/settle",
  "headers": {
    "accept": "application/json",
    "content-type": "application/json"
  },
  "body": {
    "kind": "signgraph.presheaf",
    "site": {
      "base": {
        "converse": [
          {
            "codomain": [
              "my-token",
              "the claim text",
              "my-token"
            ],
            "domain": [
              "my-token",
              "the claim text",
              "my-token"
            ]
          }
        ],
        "kind": "signgraph.base",
        "objectProjection": [
          {
            "codomain": "my-token",
            "domain": [
              "my-token",
              "the claim text",
              "my-token"
            ]
          }
        ],
        "objects": [
          {
            "sort": "entity",
            "term": "my-token"
          },
          {
            "sort": "predicate",
            "term": "the claim text"
          }
        ],
        "specialization": [],
        "subjectProjection": [
          {
            "codomain": "my-token",
            "domain": [
              "my-token",
              "the claim text",
              "my-token"
            ]
          }
        ]
      },
      "cells": [
        {
          "object": "my-token",
          "predicate": "the claim text",
          "subject": "my-token"
        }
      ],
      "entities": [
        "my-token"
      ],
      "kind": "signgraph.site",
      "predicates": [
        "the claim text"
      ],
      "specializations": []
    },
    "traces": [
      [
        {
          "against": [],
          "for": [
            "my-token"
          ],
          "object": "my-token",
          "predicate": "the claim text",
          "subject": "my-token"
        }
      ]
    ]
  }
}

Output

{
  "schema": {
    "$id": "relating/articulating/predicating/positing/settling/filtration",
    "additionalProperties": true,
    "description": "A SignCraft settlement, or a presented settlement filtration (stages with shapes and a cofinality).",
    "properties": {
      "kind": {
        "enum": [
          "signcraft.settlement",
          "signcraft.filtration"
        ]
      }
    },
    "required": [
      "kind"
    ],
    "title": "SettlementFiltration",
    "type": "object"
  },
  "example": {
    "kind": "signcraft.settlement",
    "regime": "strict",
    "rules": [],
    "settled": [
      {
        "against": [],
        "for": [
          "my-token"
        ],
        "object": "my-token",
        "predicate": "the claim text",
        "subject": "my-token"
      }
    ],
    "settledAt": 0,
    "site": {
      "base": {
        "converse": [
          {
            "codomain": [
              "my-token",
              "the claim text",
              "my-token"
            ],
            "domain": [
              "my-token",
              "the claim text",
              "my-token"
            ]
          }
        ],
        "kind": "signgraph.base",
        "objectProjection": [
          {
            "codomain": "my-token",
            "domain": [
              "my-token",
              "the claim text",
              "my-token"
            ]
          }
        ],
        "objects": [
          {
            "sort": "entity",
            "term": "my-token"
          },
          {
            "sort": "predicate",
            "term": "the claim text"
          }
        ],
        "specialization": [],
        "subjectProjection": [
          {
            "codomain": "my-token",
            "domain": [
              "my-token",
              "the claim text",
              "my-token"
            ]
          }
        ]
      },
      "cells": [
        {
          "object": "my-token",
          "predicate": "the claim text",
          "subject": "my-token"
        }
      ],
      "entities": [
        "my-token"
      ],
      "kind": "signgraph.site",
      "predicates": [
        "the claim text"
      ],
      "specializations": []
    },
    "stages": [
      {
        "designated": [
          {
            "object": "my-token",
            "predicate": "the claim text",
            "subject": "my-token"
          }
        ],
        "stage": 0,
        "valuation": [
          {
            "against": [],
            "for": [
              "my-token"
            ],
            "object": "my-token",
            "predicate": "the claim text",
            "subject": "my-token"
          }
        ]
      }
    ]
  }
}

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 '{"kind":"signgraph.presheaf","site":{"base":{"converse":[{"codomain":["my-token","the claim text","my-token"],"domain":["my-token","the claim text","my-token"]}],"kind":"signgraph.base","objectProjection":[{"codomain":"my-token","domain":["my-token","the claim text","my-token"]}],"objects":[{"sort":"entity","term":"my-token"},{"sort":"predicate","term":"the claim text"}],"specialization":[],"subjectProjection":[{"codomain":"my-token","domain":["my-token","the claim text","my-token"]}]},"cells":[{"object":"my-token","predicate":"the claim text","subject":"my-token"}],"entities":["my-token"],"kind":"signgraph.site","predicates":["the claim text"],"specializations":[]},"traces":[[{"against":[],"for":["my-token"],"object":"my-token","predicate":"the claim text","subject":"my-token"}]]}' --url 'https://market.561.group/v1/sen/settle'

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

Machine-readable