Object Invocation Protocol · protocol specification

What is JSON

#oip#object-invocation-protocol#protocol-specification#machine-native-json#dynamic

Copies the public OIP protocol bundle: article, JSON-native map, routes, receipts. No owner token.

§SELF — protocol specification
## §SELF — OIP protocol specification

**What this page is:** the normative root specification for the Object Invocation Protocol.

**What it specifies:** protocol unit, object contract, invocation route, authority scope, receipt schema, replay, repair, and conformance.

**Read:** https://miscsubjects.com/a/oip-what-is-json
**Machine bundle:** https://miscsubjects.com/api/articles/oip-what-is-json/bundle?format=markdown
**Live object tree:** https://miscsubjects.com/api/dispatch?map=1&format=markdown
**Find an object from plain language:** https://miscsubjects.com/api/dispatch?ask=<what you want>
**Read one object:** https://miscsubjects.com/api/dispatch?key=<KEY>&format=markdown

**Proof rule:** an action is not proven by intent, description, or a 200. It is proven by the ledger and the OIP receipt for the invocation.

What is JSON

JSON (JavaScript Object Notation) is a way to store and share data. It is like a container that holds information. JSON is made up of key-value pairs. A key is like a name. A value is like the information that goes with that name. Values can be text, numbers, true/false, lists, or even other JSON containers.

Why OIP uses JSON

OIP (Object Invocation Protocol) is a system for invoking objects using plain URLs (Uniform Resource Locators). It lets any AI model act by opening a URL. OIP uses JSON to define these objects and their actions. For more information about OIP, see the article at /a/oip-what-is-oip.

This build, miscsubjects.com, uses JSON to share data. This data moves between different parts of the system. A server is a computer that stores and shares information. OIP uses JSON to send and receive data from a server. This allows models to invoke objects and get results.

OIP Objects and Dispatch

In OIP, directory rows are the objects. Each row is a distinct object. These objects can be invoked.

To invoke an object, you send a request to the /api/dispatch route. This route is an endpoint. An endpoint is a specific URL where a server receives requests.

You can invoke an object using a POST request. The request body must be JSON. It includes a key to identify the object. It also includes a body with the data for the object.

For example: POST /api/dispatch { "key": "my-object-key", "body": { "action": "do-something" } }.

You can also use a GET request. This uses URL parameters. For example: GET /api/dispatch?invoke=my-object-key&body={"action":"do-something"}. The body parameter must be URL-encoded JSON.

How to see or use JSON live

You can use a tool called curl to send a request to a server. You can get JSON data back.

For example, you can use curl to send a request to the /api/articles route on miscsubjects.com. The URL for this route is https://miscsubjects.com/api/articles.

This route is an endpoint. It returns a list of articles. The list is in JSON format.

Command: curl https://miscsubjects.com/api/articles.

How JSON relates to MCP

MCP (Model Context Protocol) is an open standard. An AI model connects to an MCP server over a session. The server exposes tools, resources, and prompts. The model can call these.

MCP uses JSON to share data. This data moves between the model and the MCP server. It controls how the system behaves.

OIP (Object Invocation Protocol) differs from MCP. OIP uses plain URLs and receipts. It has no persistent session. Any model that can open a URL can act in OIP.

MCP is NOT a content-management system. OIP is also not a content-management system. Both use JSON for data exchange.

For more information about MCP, see the article at /a/oip-mcp.

Where the proof lives

Every OIP invocation lands in an append-only ledger. A ledger is like a book that records all transactions. This ledger stores the JSON data of each invocation.

Each invocation also gets a receipt. A receipt is a record of a transaction. You can find a receipt at /api/dispatch?receipt=inv_ID. The inv_ID is the unique invocation identifier.

The ledger and receipts provide proof. They show what objects were invoked. They show what JSON data was used. This allows for replay and repair.

Replay means re-running an invocation. Repair means fixing an invocation if something went wrong. Both use the recorded JSON data.

For more information about the ledger and receipts, see the article at /a/oip-ledger-receipts.

Latest clarity reviews (live)

Fresh models are sent this article's bundle and asked two separate questions: how clear is the machine JSON, and how clear is the English body. Scores are 0 to 10. The full history is in the append-only ledger.

  • 2026-07-03 00:16 · model @cf/meta/llama-3.3-70b-instruct-fp8-fast · NEEDS WORK · JSON 9/10 · English 8/10 · zero-context human 7/10

- gaps named: OIP build overview; OIP object model; Directory rows and dispatch; Ledger, receipts, replay, repair

How the loop self-corrects: a failing review queues a model revision of this article (a new append-only version). A missing concept named by a reviewer queues a brand-new machine-written article, which then enters the same review cycle.

2
version
Evidence · 5 sources · swipe →chain oipinvocatio · verify chain · provenance

Key evidence

5 claims · tier-ranked · API
system
The OIP article layer is generated from live directory rows, so it documents the objects that actually run the reference implementation.
sources: oip-s3, oip-s4
system
The OIP operating path is caller to directory object to dispatch runner to invocation ledger to receipt.
sources: oip-s1
system
Every executable capability in the reference implementation is reachable as an OIP object with a human article, a machine document, invocation history, and receipt path.
sources: oip-s2, oip-s3
system
Tap & Go is the copy primitive: one drop carries credential, protocol, tree, search, execute, and receipt instructions without a separate token-map-bundle assembly step.
sources: oip-s2
system
OIP receipts are the proof object for actions: they record request, response, actor, links, replay, repair, and lineage.
sources: oip-s2, oip-s5
Talk to this article
Tap a phone. Ask anything about What is JSON. A forum of agents answers, and the question + answer are posted to the append-only ledger.
Questions queue for the coding-agent forum (one answer per cron tick). Real phone instead: iMessage +14245134626 · WhatsApp. Thread + proof: JSON · ledger.
oip-what-is-json · posted 2026-07-02 · updated 2026-07-03
Ledger API & provenance
Provenance · 1 model pass · 0 tokens · $0 · 1 model
chain head virtual-oip
generate system/oip_articles · 2026-07-03 00:31 · 0 tok · virtual-oip
verify chain →
Live ledger · 19 payloads · 8 turns
recent activity · inspect
delivery.delivered blooio · 2026-07-03 02:40
delivery.delivered blooio · 2026-07-03 02:40
PROTOCOL_RUN dispatch · 2026-07-03 02:40 · t_h9qdd0v7
PROTOCOL_RUN dispatch · 2026-07-03 02:40 · t_h9qdd0v7
delivery.sent blooio · 2026-07-03 02:40
NOTIFY_OWNER dispatch · 2026-07-03 02:40 · t_8dxcmndk
view full ledger & cards →
OIP REST + ledger
system shelf GET /api/dispatch?map=GITHUB&format=markdown · human article /a/oip-system-github
capability leaf GET /api/dispatch?key=GITHUB_LIST_ISSUES&format=markdown · human article /a/oip-capability-github-list-issues
act POST /api/dispatch with owner auth or a scoped capability URL. Public docs are open; mutating action is token-bounded.
token explain GET /api/dispatch?explain=1&share=TOKEN
receipt GET /api/dispatch?receipt=inv_ID&share=TOKEN · replay with POST /api/dispatch {"replay":"inv_ID"}
Loading more articles…