561 Group Market

SEN Relate Relations

Relate two settled relations: re-settle their joined cells as one relation.

Price
$0.01 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/relate-relations
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": {
      "left": {
        "type": "object"
      },
      "right": {
        "type": "object"
      }
    },
    "required": [
      "left",
      "right"
    ]
  }
}

Example request

{
  "method": "POST",
  "url": "https://market.561.group/v1/sen/relate-relations",
  "headers": {
    "accept": "application/json",
    "content-type": "application/json"
  },
  "body": {
    "left": {
      "kind": "signcraft.settlement",
      "rules": [],
      "settled": [
        {
          "against": [],
          "for": [
            "alice"
          ],
          "object": "alice",
          "predicate": "trusted",
          "subject": "alice"
        }
      ],
      "site": {
        "base": {
          "converse": [
            {
              "codomain": [
                "alice",
                "trusted",
                "alice"
              ],
              "domain": [
                "alice",
                "trusted",
                "alice"
              ]
            }
          ],
          "kind": "signgraph.base",
          "objectProjection": [
            {
              "codomain": "alice",
              "domain": [
                "alice",
                "trusted",
                "alice"
              ]
            }
          ],
          "objects": [
            {
              "sort": "entity",
              "term": "alice"
            },
            {
              "sort": "predicate",
              "term": "trusted"
            }
          ],
          "specialization": [],
          "subjectProjection": [
            {
              "codomain": "alice",
              "domain": [
                "alice",
                "trusted",
                "alice"
              ]
            }
          ]
        },
        "cells": [
          {
            "object": "alice",
            "predicate": "trusted",
            "subject": "alice"
          }
        ],
        "entities": [
          "alice"
        ],
        "kind": "signgraph.site",
        "predicates": [
          "trusted"
        ],
        "specializations": []
      },
      "stages": [
        {
          "designated": [
            {
              "object": "alice",
              "predicate": "trusted",
              "subject": "alice"
            }
          ],
          "stage": 0,
          "valuation": [
            {
              "against": [],
              "for": [
                "alice"
              ],
              "object": "alice",
              "predicate": "trusted",
              "subject": "alice"
            }
          ]
        }
      ]
    },
    "right": {
      "kind": "signcraft.settlement",
      "rules": [],
      "settled": [
        {
          "against": [],
          "for": [
            "bob"
          ],
          "object": "bob",
          "predicate": "trusted",
          "subject": "bob"
        }
      ],
      "site": {
        "base": {
          "converse": [
            {
              "codomain": [
                "bob",
                "trusted",
                "bob"
              ],
              "domain": [
                "bob",
                "trusted",
                "bob"
              ]
        
… (truncated; the full contract is in /v1/catalog)

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": [
          "alice"
        ],
        "object": "alice",
        "predicate": "trusted",
        "subject": "alice"
      },
      {
        "against": [],
        "for": [
          "bob"
        ],
        "object": "bob",
        "predicate": "trusted",
        "subject": "bob"
      }
    ],
    "settledAt": 0,
    "site": {
      "base": {
        "converse": [
          {
            "codomain": [
              "alice",
              "trusted",
              "alice"
            ],
            "domain": [
              "alice",
              "trusted",
              "alice"
            ]
          },
          {
            "codomain": [
              "bob",
              "trusted",
              "bob"
            ],
            "domain": [
              "bob",
              "trusted",
              "bob"
            ]
          }
        ],
        "kind": "signgraph.base",
        "objectProjection": [
          {
            "codomain": "alice",
            "domain": [
              "alice",
              "trusted",
              "alice"
            ]
          },
          {
            "codomain": "bob",
            "domain": [
              "bob",
              "trusted",
              "bob"
            ]
          }
        ],
        "objects": [
          {
            "sort": "entity",
            "term": "alice"
          },
          {
            "sort": "entity",
            "term": "bob"
          },
          {
            "sort": "predicate",
            "term": "trusted"
          }
        ],
        "specialization": [],
        "subjectProjection": [
          {
            "codomain": "alice",
            "domain": [
              "alice",
              "trusted",
              "alice"
            ]
          },
          {
            "codomain": "bob",
            "domain": [
              "bob",
              "trusted",
              "bob"
            ]
          }
        ]
      },
      "cells": [
        {
          "object": "alice",
          "predicate": "trusted",
          "subject": "alice"
        },
        {
          "object": "bob",
          "predicate": "trusted",
          "subject": "bob"
        }
      ],
      "entities": [
        "alice",
        "bob"
      ],
      "kind": "signgraph.site",
      "predicates": [
        "trusted"
      ],
      "specia
… (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 '{"left":{"kind":"signcraft.settlement","rules":[],"settled":[{"against":[],"for":["alice"],"object":"alice","predicate":"trusted","subject":"alice"}],"site":{"base":{"converse":[{"codomain":["alice","trusted","alice"],"domain":["alice","trusted","alice"]}],"kind":"signgraph.base","objectProjection":[{"codomain":"alice","domain":["alice","trusted","alice"]}],"objects":[{"sort":"entity","term":"alice"},{"sort":"predicate","term":"trusted"}],"specialization":[],"subjectProjection":[{"codomain":"alice","domain":["alice","trusted","alice"]}]},"cells":[{"object":"alice","predicate":"trusted","subject":"alice"}],"entities":["alice"],"kind":"signgraph.site","predicates":["trusted"],"specializations":[]},"stages":[{"designated":[{"object":"alice","predicate":"trusted","subject":"alice"}],"stage":0,"valuation":[{"against":[],"for":["alice"],"object":"alice","predicate":"trusted","subject":"alice"}]}]},"right":{"kind":"signcraft.settlement","rules":[],"settled":[{"against":[],"for":["bob"],"object":"bob","predicate":"trusted","subject":"bob"}],"site":{"base":{"converse":[{"codomain":["bob","trusted","bob"],"domain":["bob","trusted","bob"]}],"kind":"signgraph.base","objectProjection":[{"codomain":"bob","domain":["bob","trusted","bob"]}],"objects":[{"sort":"entity","term":"bob"},{"sort":"predicate","term":"trusted"}],"specialization":[],"subjectProjection":[{"codomain":"bob","domain":["bob","trusted","bob"]}]},"cells":[{"object":"bob","predicate":"trusted","subject":"bob"}],"entities":["bob"],"kind":"signgraph.site","predicates":["trusted"],"specializations":[]},"stages":[{"designated":[{"object":"bob","predicate":"trusted","subject":"bob"}],"stage":0,"valuation":[{"against":[],"for":["bob"],"object":"bob","predicate":"trusted","subject":"bob"}]}]}}' --url 'https://market.561.group/v1/sen/relate-relations'

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

Machine-readable