{
"path": "/3mletyxaie22o",
"site": "at://did:plc:5svqtrhheairglgiiyvutzik/site.standard.publication/3lvt33dtzps2a",
"tags": [],
"$type": "site.standard.document",
"title": "Compute Contracts",
"content": {
"$type": "pub.leaflet.content",
"pages": [
{
"id": "019e09d6-e232-7337-84e1-980abed210a2",
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 71,
"byteStart": 18
},
"features": [
{
"uri": "https://github.com/publicdomainrelay/compute-contract",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Marketplace spec: https://github.com/publicdomainrelay/compute-contract"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Alice, Bob, and Eve are on the network"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Alice wants to issue a Compute Contract Request For Proposal (CCRFP)"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://pdsls.dev/at://did:plc:5svqtrhheairglgiiyvutzik/com.publicdomainrelay.ccrfp/3mlf7tjlfjr2d",
"$type": "pub.leaflet.blocks.website",
"title": "at://johnandersen777.bsky.social/com.publicdomainrelay.ccrfp/3mlf7tjlfjr2d",
"description": "",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreifucyzwyu7j4semfxsbtez2gjrfesdoza6zcz4mnihkhke53igkwq"
},
"mimeType": "image/png",
"size": 4575
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Bob has plenty of builder machines"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Eve wants to know what Alice is doing"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Alice has vouched for Bob"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Alice has denounced Eve"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Alice creates a CCRFP manifest"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Alice makes her CCRFP manifest available to the network"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Bob and Eve each issue a Compute Contract Bid (CCB) against the CCRFP"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://pdsls.dev/at://did:plc:5svqtrhheairglgiiyvutzik/com.publicdomainrelay.ccb/3mlf7ttrffk23",
"$type": "pub.leaflet.blocks.website",
"title": "at://johnandersen777.bsky.social/com.publicdomainrelay.ccb/3mlf7ttrffk23",
"description": "",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreibhtuv22bq6dhmr27acokcj6ia4oke765v3yywrrimbkyjowqhbkm"
},
"mimeType": "image/png",
"size": 13326
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Alice's policy engine sees that she's denounced Eve and vouched for Bob"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 139,
"byteStart": 132
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#code"
}
]
}
],
"plaintext": "Alice prepares to accept Bob's bid by configuring her Workload Identity Federation (WIF) Role Based Access Control (RBAC) per Bob's bid.wif information"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://pdsls.dev/at://did:plc:5svqtrhheairglgiiyvutzik/com.fedproxy.rbac/3mlewidctvt2n",
"$type": "pub.leaflet.blocks.website",
"title": "at://johnandersen777.bsky.social/com.fedproxy.rbac/3mlewidctvt2n",
"description": "",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreibvltjzmxgyglfpplticn234ie6kvrsxgndndxoi5hpzm64ansdt4"
},
"mimeType": "image/png",
"size": 12389
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Bob and Eve each issue a Compute Contract Bid (CCB) against the CCRFP"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Alice's policy engine sees that she's denounced Eve and vouched for Bob"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Alice issues a Compute Contract Bid Accept (CCBA) against Bob's CCB."
},
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 10,
"byteStart": 0
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
]
}
],
"plaintext": "TODO: CCBA"
}
}
]
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Alice issues a x402 payment to Bob per info provided in his CCB."
},
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Using the CCBA AT URI and CID."
},
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 45,
"byteStart": 0
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
]
}
],
"plaintext": "TODO: ^ (first pass was using CCB, need CCBA)"
}
}
]
}
]
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "npx awal x402 pay \\\n https://builder.bob.example.com/ccr/${AT_URI}/${CID}"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Bob builds to the CCRFP manifest's spec and issues a Compute Contract Receipt (CCR) over the CCRFP, CCB, and CCBA"
},
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 17,
"byteStart": 0
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
]
}
],
"plaintext": "TODO: CCBA in CCR"
}
}
]
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://pdsls.dev/at://did:plc:5svqtrhheairglgiiyvutzik/com.publicdomainrelay.ccr/3mlf7v5sbyx2m",
"$type": "pub.leaflet.blocks.website",
"title": "at://johnandersen777.bsky.social/com.publicdomainrelay.ccr/3mlf7v5sbyx2m",
"description": "",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreidh2buikzdnfbp2r7yfdzb5bvb3bof3kp566z3up3hgpl5hjldom4"
},
"mimeType": "image/png",
"size": 10847
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 17,
"byteStart": 8
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#code"
}
]
}
],
"plaintext": "Alice's user_data runs within Bob's compute and interacts with Bob's WIF to token exchange to get a token which will interact with the downstream service she configured her RBAC for."
},
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 106,
"byteStart": 94
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#code"
}
]
},
{
"index": {
"byteEnd": 138,
"byteStart": 115
},
"features": [
{
"uri": "https://rp.fedproxy.com",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "In our example we are leveraging a Workload Identity Reverse Proxy which enables calling XRPC createRecord against https://rp.fedproxy.com to proxy the POST to a PDS"
}
}
]
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://john.leaflet.pub/3lz7aymmqqc2l",
"$type": "pub.leaflet.blocks.website",
"title": "Workload Identity Reverse Proxy - Blog",
"description": "Imagine a reverse proxy that provides fine grained RBAC over any API",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreif7qiyrkpvtucf5duigs7v5yfzpv54ord5qiur5okjgawjyqylju4"
},
"mimeType": "image/png",
"size": 27673
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 55,
"byteStart": 30
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#code"
}
]
},
{
"index": {
"byteEnd": 103,
"byteStart": 83
},
"features": [
{
"uri": "https://fedproxy.com",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 216,
"byteStart": 158
},
"features": [
{
"uri": "https://github.com/publicdomainrelay/atproto-reverse-proxy",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "The record we POST is of type com.fedproxy.sshPublicKey which is also for use with https://fedproxy.com (aka the same repo, different service/binary it hits: https://github.com/publicdomainrelay/atproto-reverse-proxy)"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://pdsls.dev/at://did:plc:5svqtrhheairglgiiyvutzik/com.fedproxy.sshPublicKey/3mlf7zbjoax23",
"$type": "pub.leaflet.blocks.website",
"title": "at://johnandersen777.bsky.social/com.fedproxy.sshPublicKey/3mlf7zbjoax23",
"description": "",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreic6vbmvj43wvrh4wgwqlbq6jnej5e427jausxzm3v3k472qffly2y"
},
"mimeType": "image/png",
"size": 7180
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "This SSH key registration allows us to expose an HTTP service to the internet. Also acting as service discovery."
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "ssh -NnT -p 2222 \\\n -o UserKnownHostsFile=/dev/null \\\n -o StrictHostKeyChecking=no \\\n -o PasswordAuthentication=no \\\n -R ${SERVICE}:80:127.0.0.1:8080 \\\n ${HANDLE}@fedproxy.com"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "The end result is auto HTTPS server coming from arbitrary compute"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 57,
"byteStart": 0
},
"features": [
{
"uri": "https://cfb3c8d2.johnandersen777.bsky.social.fedproxy.com/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "https://cfb3c8d2.johnandersen777.bsky.social.fedproxy.com"
}
}
]
}
]
},
"description": "Marketplace Spec",
"publishedAt": "2026-05-08T23:09:39.545Z"
}