Files
agents-marketplace/contracts/marketplace/plutus.json
jelisaveta-talbot cbab81efbd M1-F: end-to-end LLM marketplace lifecycle on Vector testnet
Bonded-escrow marketplace for prompt → response between buyers and
local-LLM suppliers, settling on Vector (UTxO) via Aiken Plutus V3
validators. Lifecycle PostEscrow → Claim → Submit → Accept proven on
Vector testnet 2026-05-06; AcceptEscrow tx 125e3cfe…7dc100d distributes
payment + bonds per the validator's distribution rule.

Workspace layout (pnpm + TypeScript):
  contracts/marketplace/      Aiken validators (advert + escrow) + plutus.json
  packages/shared/            Tx-builders (lucid-evolution), CBOR codecs,
                              chain providers (mock / read-only / live Ogmios)
  supplier/                   OpenAI-compatible HTTP node (Ollama by default;
                              vLLM / llama.cpp / OpenRouter / OpenClaw all
                              swap-in via OLLAMA_URL); 202+poll chat handler
  buyer/                      Express + React SPA; server-side runs the full
                              chain lifecycle via /v1/submit-prompt and
                              /v1/accept; SPA never holds the buyer key
  indexer/                    Chain-follower (extends apex-dashboard pattern),
                              SSE event stream + REST queries
  indexer-ui/                 Operator dashboard (events + suppliers + escrow
                              lookup)
  tests/                      1098 vitest unit + integration tests (10 skipped
                              under M1-F-D-defer for UPLC test plumbing)
  deploy/testnet/             Per-service docker-compose for the Hetzner stack
  docs/EXECUTIVE_SUMMARY.*    Marp deck (PDF + PPTX) — 11 slides, mermaid
                              diagrams pre-rendered for portable export
  docs/CLOUDFLARE_WAF_BYPASS.md  CF Skip-rule runbook for /v1/* paths
  docs/ARCHITECTURE.md        canonical spec

Live demo (testnet, 2026-05-06):
  https://mp-buyers.vector.testnet.apexfusion.org      (buyer SPA)
  https://mp-suppliers.vector.testnet.apexfusion.org   (supplier API)
  https://mp-indexer.vector.testnet.apexfusion.org     (indexer + UI)
2026-05-06 13:27:48 +02:00

404 lines
30 KiB
JSON

{
"preamble": {
"title": "local-agents/marketplace",
"description": "Local Agents Marketplace — AdvertScript and EscrowScript validators (v1, happy-path only).",
"version": "0.1.0",
"plutusVersion": "v3",
"compiler": {
"name": "Aiken",
"version": "v1.1.21+42babe5"
},
"license": "Apache-2.0"
},
"validators": [
{
"title": "advert.advert.spend",
"datum": {
"title": "datum",
"schema": {
"$ref": "#/definitions/marketplace~1types~1AdvertDatum"
}
},
"redeemer": {
"title": "redeemer",
"schema": {
"$ref": "#/definitions/marketplace~1types~1AdvertRedeemer"
}
},
"compiledCode": "59040901010029800aba2aba1aba0aab9faab9eaab9dab9a488888896600264653001300800198041804800cdc3a400530080024888966002600460106ea800e2653001300d00198069807000cdc3a400091119912cc004c00c0062b3001300f37540150028b20208acc004c0200062b3001300f37540150028b20208acc004cdc3a400800315980098079baa00a80145901045900d201a40342b30013001300c375400519800980818069baa002911919800800801912cc00400629422b30013371e6eb8c05000400e2946266004004602a002807901248c044c048c048c048c048c048c048c048c0480064602260246024003300c3754010911112cc004c01800629422b3001300b0018994c004c00400664660020026eb0c05cc050dd5006112cc0040062980103d87a80008992cc004cdd7980c980b1baa00100c899ba548000cc0600052f5c1133003003301a0024050603000280b24602e603060306030603060306030603060306030603060300029112cc004c028c054dd500144c8c9660026018602e6ea800a26464646464646464646464653001375a604e00330280019bae302700c9bae302700b9bae302700a9bad30270099bad30270089bad30270079bad30270069bad30270059bae30270049bae30270039bae30270024888888888888966002606a01913232598009813800c56600260666ea800a0391640d11598009816000c56600260666ea800a0391640d11640c48188c0c4dd5000981a0064590320c09c004c098004c094004c090004c08c004c088004c084004c080004c07c004c078004c074004c060dd50014590160acc004cc024dd61804180b9baa00f375c6034602e6ea802a2b30013371e6eb8c068c05cdd50009bae301a301737540151337126eb4c008c05cdd50051bad30023017375400314a080aa2941015192cc004cdc3a4008602c6ea800626034602e6ea80062c80a8c018c058dd51991192cc0040062d159800980e800c4c0700062c80d101a194c0040060074bd7020022225980080144cc0200052f5c1133225980099baf3020301d37546040603a6ea800801a33001005800ccc07c00800d00546600200b001801a00a406c603c004603e00480e0dd61803180b1baa00e3019301637546032602c6ea8c064c068c058dd5180c980b1baa0028b20281112cc00400a200319800801cc06400a6602e603000400280190164566002660086eb0c00cc048dd50051bae30153012375400b1323322330020020012259800800c528456600264b3001300a3015375400313371e6eb8c064c058dd5000802452820283018301537546030602a6ea8c0600062946266004004603200280990161bac3003301337540166eb8c054c048dd5002c52820204040808116402c60186ea802060126ea800e2c8038601000260066ea802229344d95900101",
"hash": "9929fa4eed8b66b30b8608e601ed2a4b7b413a2413dd13ab275594da"
},
{
"title": "advert.advert.else",
"redeemer": {
"schema": {}
},
"compiledCode": "59040901010029800aba2aba1aba0aab9faab9eaab9dab9a488888896600264653001300800198041804800cdc3a400530080024888966002600460106ea800e2653001300d00198069807000cdc3a400091119912cc004c00c0062b3001300f37540150028b20208acc004c0200062b3001300f37540150028b20208acc004cdc3a400800315980098079baa00a80145901045900d201a40342b30013001300c375400519800980818069baa002911919800800801912cc00400629422b30013371e6eb8c05000400e2946266004004602a002807901248c044c048c048c048c048c048c048c048c0480064602260246024003300c3754010911112cc004c01800629422b3001300b0018994c004c00400664660020026eb0c05cc050dd5006112cc0040062980103d87a80008992cc004cdd7980c980b1baa00100c899ba548000cc0600052f5c1133003003301a0024050603000280b24602e603060306030603060306030603060306030603060300029112cc004c028c054dd500144c8c9660026018602e6ea800a26464646464646464646464653001375a604e00330280019bae302700c9bae302700b9bae302700a9bad30270099bad30270089bad30270079bad30270069bad30270059bae30270049bae30270039bae30270024888888888888966002606a01913232598009813800c56600260666ea800a0391640d11598009816000c56600260666ea800a0391640d11640c48188c0c4dd5000981a0064590320c09c004c098004c094004c090004c08c004c088004c084004c080004c07c004c078004c074004c060dd50014590160acc004cc024dd61804180b9baa00f375c6034602e6ea802a2b30013371e6eb8c068c05cdd50009bae301a301737540151337126eb4c008c05cdd50051bad30023017375400314a080aa2941015192cc004cdc3a4008602c6ea800626034602e6ea80062c80a8c018c058dd51991192cc0040062d159800980e800c4c0700062c80d101a194c0040060074bd7020022225980080144cc0200052f5c1133225980099baf3020301d37546040603a6ea800801a33001005800ccc07c00800d00546600200b001801a00a406c603c004603e00480e0dd61803180b1baa00e3019301637546032602c6ea8c064c068c058dd5180c980b1baa0028b20281112cc00400a200319800801cc06400a6602e603000400280190164566002660086eb0c00cc048dd50051bae30153012375400b1323322330020020012259800800c528456600264b3001300a3015375400313371e6eb8c064c058dd5000802452820283018301537546030602a6ea8c0600062946266004004603200280990161bac3003301337540166eb8c054c048dd5002c52820204040808116402c60186ea802060126ea800e2c8038601000260066ea802229344d95900101",
"hash": "9929fa4eed8b66b30b8608e601ed2a4b7b413a2413dd13ab275594da"
},
{
"title": "escrow.escrow.spend",
"datum": {
"title": "datum",
"schema": {
"$ref": "#/definitions/marketplace~1types~1EscrowDatum"
}
},
"redeemer": {
"title": "redeemer",
"schema": {
"$ref": "#/definitions/marketplace~1types~1EscrowRedeemer"
}
},
"compiledCode": "590d6f01010029800aba2aba1aba0aab9faab9eaab9dab9a488888896600264653001300800198041804800cdc3a400530080024888966002600460106ea800e3300130093754007370e90034dc3a4001370e90024c020dd5002244444664464b300130060048acc004c044dd500640062c80922b3001300a004899192cc004c05c00a0071640506eb8c054004c044dd50064566002600a00915980098089baa00c800c590124566002600e00915980098089baa00c800c59012456600266e1d20080048acc004c044dd500640062c80922c807900f201e403c8078566002600a601e6ea8006330013013301037540032232330010010032259800800c528456600266e3cdd7180b800801c528c4cc008008c060005012202a9180a180a980a980a980a980a980a980a980a980a980a980a980a980a800c8c050c05400646028602a602a602a602a602a602a602a00323014301530153015301530153015301530150019180a180a980a980a980a980a980a980a980a980a980a980a800c8c050c054c054c054c054c054c05400646028602a602a003300f3754017222598008014400633001003980b8014cc054c05800800500320289ba5480024466ebcdd30011ba60019180a180a980a980a980a980a980a980a980a980a800c8c050c054c054c05400646028602a602a602a602a00323014301530153015301530150019180a180a980a980a980a980a980a980a980a980a980a800c8c050c054c054c054c054c054c054c054c054c054c054c054c0540066ebd300103d87a800048888888888888888888a6002446464b300130210018992cc004c088c0a0dd5180b18149baa302c3029375400b13371200800313371266e000112001001409c6eb4c0acc0a0dd50014566002603800314a314a0813102618131baa0013029302637546052604c6ea800a44653001001801d20004004444b30010028800c4cc896600264b30013021302b375400313371e6eb8c0bcc0b0dd5000803c5282054302e302b3754605c60566ea800a33001005800ccdc000199199119801001000912cc004006007132325980099b914881000018acc004cdc7a4410000189bad3030002802a05c899802002181a001a05c375c605c00260620028178c8c8cc004004dd5980d98171baa0052259800800c00e26464b300133722911000018acc004cdc7a4410000189bab3031002802a05e899802002181a801a05e375c605e0026064002818052f5bded8c029000200a8cc00401600300340148148c0b0008c0b400902a488c8c966002604200313259800981118141baa301630293754602c60526ea8016266e24004012266e24004cdc0002240048138dd6981598141baa0028acc004c07400629462941026204c302637540026052604c6ea8c04cc098dd50014c02802a44646600200200644b30010018a6103d87a80008992cc004cdd7981618149baa0010048980719815800a5eb82266006006605a0048138c0ac0050292444446644b30013020012899192cc004cc070dd6180c18169baa025375c6034605a6ea80762b30013375e6036605a6ea807530103d87980008acc004c028c06cc0b4dd5000c566002660226eacc068c0b4dd518180011980180f812c566002b30013371e6eb8c0c0c0b4dd50009bae3030302d375403b15980099b8f375c6034605a6ea8004dd7180d18169baa01d8acc004cdd7980a98169baa0013015302d375403b15980099b8f375c601e605a6ea8004dd7180798169baa01d8acc004cdc79bae300e302d37540026eb8c038c0b4dd500ec56600266e3cdd7180698169baa001375c601a605a6ea80762b30013370e6eb4c058c0b4dd50009bad3016302d375403b15980099b87375a6032605a6ea8004dd6980c98169baa01d8acc004cdc39bad3018302d37540026eb4c060c0b4dd500ec56600266e1cdd6980818169baa001375a6020605a6ea80762b30013370e6eb4c030c0b4dd50009bad300c302d375403b15980099baf3017302d3754002602e605a6ea8076266ebcc02cc0b4dd5000980598169baa01d8a5040ad14a0815a294102b452820568a5040ad14a0815a294102b452820568a5040ad14a0815a294102b45282056899803980c98169baa025375a6020605a6ea8076294102b452820568a5040ad14a0815a294102b181798180009980100e811c4c966002604a027132980098181818800cc966002604e605a6ea800626026660606062605c6ea80052f5c114c0103d87a800040b06060605a6ea8c068c0b4dd5180c98169baa0259bae3030302d37540509112cc004c094c0bcdd500145660026603e6eb0c06cc0c0dd50141bae301d303037540411598009806980f18181baa0208acc004c014c078c0c0dd5001c566002660286eacc074c0c0dd51819802198030110144566002b30013375e601c60606ea800cc054cc0c8dd4800a5eb82266e1cdc6800a408114a081722b30013375e603460606ea800cc054cc0c8c0ccc0c0dd500125eb822b30013300a301c303037540506eb4c04cc0c0dd5010456600266e3cdd7181998181baa003375c606660606ea80822b30013371e6eb8c074c0c0dd50019bae301d3030375404115980099baf301830303754006603060606ea80822b30013371e6eb8c048c0c0dd50019bae30123030375404115980099b8f375c602260606ea800cdd7180898181baa0208acc004cdc79bae3010303037540066eb8c040c0c0dd5010456600266e1cdd6980c98181baa003375a603260606ea80822b30013370e6eb4c070c0c0dd50019bad301c3030375404115980099b87375a603660606ea800cdd6980d98181baa0208acc004cdc39bad3013303037540066eb4c04cc0c0dd501044cdc39bad300f303037540066eb4c03cc0c0dd50104528205c8a5040b914a08172294102e4528205c8a5040b914a08172294102e4528205c8a5040b914a08172294102e4528205c8a5040b914a08172294102e4528205c8b205c1980180f01244c966002604202913259800981198169baa0018acc004cc074dd6180c98171baa026375c6062605c6ea807a2b30013003301c302e375403d159800acc004cdc498011bad3019302e375403c660126eb0c058c0b8dd50131bae301b302e375403d1337126eb4c068c0b8dd500f198049bac3016302e375404c6eb8c0c4c0b8dd500f45282058899804180d18171baa026337006eb4c0c4c0b8dd5000a41013e9314a08162294102c452820588b20583017302d375403b159800981180a4566002660386eb0c060c0b4dd50129bae3030302d375403b159800acc004cdd7980d98169baa01d4c0103d87980008a5189805180d98169baa01d40ad15980099804980c98169baa025375a6020605a6ea8076266e24cdc018009bad3019302d375403a6eb4c060c0b4dd500e998041bac3015302d375404a6eb8c0c0c0b4dd500ec52820568a5040ad14a0815a264b30013023302d37540031598009980e9bac3019302e375404c6eb8c06cc0b8dd500f456600260066038605c6ea807a2b30013300a301a302e375404c66e00dd6981898171baa001482027d26266e24cdc018011bad3019302e375403c6eb4c068c0b8dd500f198049bac3016302e375404c6eb8c06cc0b8dd500f452820588a5040b114a081622c8160c05cc0b4dd500ea05640ac6e00dd6980a98161baa01c40a86ebd300103d87b800040a44464b30013021302b3754003132323259800981218171baa002899191919191919191919191919194c004c1000066eb8c10003a6eb8c1000366eb8c10002e6eb8c10002a6eb8c1000266eb4c1000226eb4c10001e6eb4c10001a6eb4c1000166eb4c100012608000730400024888888888888966002609c01d13259800982018251baa0018991919912cc004c14c00e26644b30013046001899192cc004c15c00a0091641506eb4c154004c144dd5004c566002609400315980098289baa00980145905245904f209e13322598009823000c4c8c96600260ae0050048b20a8375c60aa00260a26ea80222b3001304a0018acc004c144dd5004400a2c82922c827904f0992cc004c1140062b3001305037540270228b20a28acc004c1240062b3001305037540270228b20a28acc004c1100062b3001305037540270228b20a28acc004c1180062b3001305037540270228b20a28acc004cdc3a401000315980098281baa013811459051456600266e1d200a0018acc004c140dd5009c08a2c828a2c827104e209c4138827104e18271baa012304e375400c609c6ea801e2c8280dd698280009bae30500023050001304b3754003164124609a03316412c3040001303f001303e001303d001303c001303b001303a001303900130380013037001303600130350013034001302f37540051640b42660600046606000297ae03259800981118169baa0018981898171baa0018b20583015302d3754002664464b30010018b45660026066003130320018b206040c0653001001801d2f5c080088896600200513300a0014bd7044cc896600266ebcc0d8c0ccdd5181b18199baa0020068cc00401600333035002003401519800802c0060068029031181a001181a80120643758602860586ea8008c0bcc0b0dd5181798161baa3019302c3754605e60586ea80062c8150cc00cdd6181718159baa001002223259800981098159baa00189bab3019302c3754603260586ea8c0bcc0b0dd5000c5902a198019bac302e302b375400200445900e180880298089809002a2c8038601000260066ea802229344d9590011",
"hash": "810ee059cd7819ce8f995ae438bbb06fef10017b4a17929cf971a912"
},
{
"title": "escrow.escrow.else",
"redeemer": {
"schema": {}
},
"compiledCode": "590d6f01010029800aba2aba1aba0aab9faab9eaab9dab9a488888896600264653001300800198041804800cdc3a400530080024888966002600460106ea800e3300130093754007370e90034dc3a4001370e90024c020dd5002244444664464b300130060048acc004c044dd500640062c80922b3001300a004899192cc004c05c00a0071640506eb8c054004c044dd50064566002600a00915980098089baa00c800c590124566002600e00915980098089baa00c800c59012456600266e1d20080048acc004c044dd500640062c80922c807900f201e403c8078566002600a601e6ea8006330013013301037540032232330010010032259800800c528456600266e3cdd7180b800801c528c4cc008008c060005012202a9180a180a980a980a980a980a980a980a980a980a980a980a980a980a800c8c050c05400646028602a602a602a602a602a602a602a00323014301530153015301530153015301530150019180a180a980a980a980a980a980a980a980a980a980a980a800c8c050c054c054c054c054c054c05400646028602a602a003300f3754017222598008014400633001003980b8014cc054c05800800500320289ba5480024466ebcdd30011ba60019180a180a980a980a980a980a980a980a980a980a800c8c050c054c054c05400646028602a602a602a602a00323014301530153015301530150019180a180a980a980a980a980a980a980a980a980a980a800c8c050c054c054c054c054c054c054c054c054c054c054c054c0540066ebd300103d87a800048888888888888888888a6002446464b300130210018992cc004c088c0a0dd5180b18149baa302c3029375400b13371200800313371266e000112001001409c6eb4c0acc0a0dd50014566002603800314a314a0813102618131baa0013029302637546052604c6ea800a44653001001801d20004004444b30010028800c4cc896600264b30013021302b375400313371e6eb8c0bcc0b0dd5000803c5282054302e302b3754605c60566ea800a33001005800ccdc000199199119801001000912cc004006007132325980099b914881000018acc004cdc7a4410000189bad3030002802a05c899802002181a001a05c375c605c00260620028178c8c8cc004004dd5980d98171baa0052259800800c00e26464b300133722911000018acc004cdc7a4410000189bab3031002802a05e899802002181a801a05e375c605e0026064002818052f5bded8c029000200a8cc00401600300340148148c0b0008c0b400902a488c8c966002604200313259800981118141baa301630293754602c60526ea8016266e24004012266e24004cdc0002240048138dd6981598141baa0028acc004c07400629462941026204c302637540026052604c6ea8c04cc098dd50014c02802a44646600200200644b30010018a6103d87a80008992cc004cdd7981618149baa0010048980719815800a5eb82266006006605a0048138c0ac0050292444446644b30013020012899192cc004cc070dd6180c18169baa025375c6034605a6ea80762b30013375e6036605a6ea807530103d87980008acc004c028c06cc0b4dd5000c566002660226eacc068c0b4dd518180011980180f812c566002b30013371e6eb8c0c0c0b4dd50009bae3030302d375403b15980099b8f375c6034605a6ea8004dd7180d18169baa01d8acc004cdd7980a98169baa0013015302d375403b15980099b8f375c601e605a6ea8004dd7180798169baa01d8acc004cdc79bae300e302d37540026eb8c038c0b4dd500ec56600266e3cdd7180698169baa001375c601a605a6ea80762b30013370e6eb4c058c0b4dd50009bad3016302d375403b15980099b87375a6032605a6ea8004dd6980c98169baa01d8acc004cdc39bad3018302d37540026eb4c060c0b4dd500ec56600266e1cdd6980818169baa001375a6020605a6ea80762b30013370e6eb4c030c0b4dd50009bad300c302d375403b15980099baf3017302d3754002602e605a6ea8076266ebcc02cc0b4dd5000980598169baa01d8a5040ad14a0815a294102b452820568a5040ad14a0815a294102b452820568a5040ad14a0815a294102b45282056899803980c98169baa025375a6020605a6ea8076294102b452820568a5040ad14a0815a294102b181798180009980100e811c4c966002604a027132980098181818800cc966002604e605a6ea800626026660606062605c6ea80052f5c114c0103d87a800040b06060605a6ea8c068c0b4dd5180c98169baa0259bae3030302d37540509112cc004c094c0bcdd500145660026603e6eb0c06cc0c0dd50141bae301d303037540411598009806980f18181baa0208acc004c014c078c0c0dd5001c566002660286eacc074c0c0dd51819802198030110144566002b30013375e601c60606ea800cc054cc0c8dd4800a5eb82266e1cdc6800a408114a081722b30013375e603460606ea800cc054cc0c8c0ccc0c0dd500125eb822b30013300a301c303037540506eb4c04cc0c0dd5010456600266e3cdd7181998181baa003375c606660606ea80822b30013371e6eb8c074c0c0dd50019bae301d3030375404115980099baf301830303754006603060606ea80822b30013371e6eb8c048c0c0dd50019bae30123030375404115980099b8f375c602260606ea800cdd7180898181baa0208acc004cdc79bae3010303037540066eb8c040c0c0dd5010456600266e1cdd6980c98181baa003375a603260606ea80822b30013370e6eb4c070c0c0dd50019bad301c3030375404115980099b87375a603660606ea800cdd6980d98181baa0208acc004cdc39bad3013303037540066eb4c04cc0c0dd501044cdc39bad300f303037540066eb4c03cc0c0dd50104528205c8a5040b914a08172294102e4528205c8a5040b914a08172294102e4528205c8a5040b914a08172294102e4528205c8a5040b914a08172294102e4528205c8b205c1980180f01244c966002604202913259800981198169baa0018acc004cc074dd6180c98171baa026375c6062605c6ea807a2b30013003301c302e375403d159800acc004cdc498011bad3019302e375403c660126eb0c058c0b8dd50131bae301b302e375403d1337126eb4c068c0b8dd500f198049bac3016302e375404c6eb8c0c4c0b8dd500f45282058899804180d18171baa026337006eb4c0c4c0b8dd5000a41013e9314a08162294102c452820588b20583017302d375403b159800981180a4566002660386eb0c060c0b4dd50129bae3030302d375403b159800acc004cdd7980d98169baa01d4c0103d87980008a5189805180d98169baa01d40ad15980099804980c98169baa025375a6020605a6ea8076266e24cdc018009bad3019302d375403a6eb4c060c0b4dd500e998041bac3015302d375404a6eb8c0c0c0b4dd500ec52820568a5040ad14a0815a264b30013023302d37540031598009980e9bac3019302e375404c6eb8c06cc0b8dd500f456600260066038605c6ea807a2b30013300a301a302e375404c66e00dd6981898171baa001482027d26266e24cdc018011bad3019302e375403c6eb4c068c0b8dd500f198049bac3016302e375404c6eb8c06cc0b8dd500f452820588a5040b114a081622c8160c05cc0b4dd500ea05640ac6e00dd6980a98161baa01c40a86ebd300103d87b800040a44464b30013021302b3754003132323259800981218171baa002899191919191919191919191919194c004c1000066eb8c10003a6eb8c1000366eb8c10002e6eb8c10002a6eb8c1000266eb4c1000226eb4c10001e6eb4c10001a6eb4c1000166eb4c100012608000730400024888888888888966002609c01d13259800982018251baa0018991919912cc004c14c00e26644b30013046001899192cc004c15c00a0091641506eb4c154004c144dd5004c566002609400315980098289baa00980145905245904f209e13322598009823000c4c8c96600260ae0050048b20a8375c60aa00260a26ea80222b3001304a0018acc004c144dd5004400a2c82922c827904f0992cc004c1140062b3001305037540270228b20a28acc004c1240062b3001305037540270228b20a28acc004c1100062b3001305037540270228b20a28acc004c1180062b3001305037540270228b20a28acc004cdc3a401000315980098281baa013811459051456600266e1d200a0018acc004c140dd5009c08a2c828a2c827104e209c4138827104e18271baa012304e375400c609c6ea801e2c8280dd698280009bae30500023050001304b3754003164124609a03316412c3040001303f001303e001303d001303c001303b001303a001303900130380013037001303600130350013034001302f37540051640b42660600046606000297ae03259800981118169baa0018981898171baa0018b20583015302d3754002664464b30010018b45660026066003130320018b206040c0653001001801d2f5c080088896600200513300a0014bd7044cc896600266ebcc0d8c0ccdd5181b18199baa0020068cc00401600333035002003401519800802c0060068029031181a001181a80120643758602860586ea8008c0bcc0b0dd5181798161baa3019302c3754605e60586ea80062c8150cc00cdd6181718159baa001002223259800981098159baa00189bab3019302c3754603260586ea8c0bcc0b0dd5000c5902a198019bac302e302b375400200445900e180880298089809002a2c8038601000260066ea802229344d9590011",
"hash": "810ee059cd7819ce8f995ae438bbb06fef10017b4a17929cf971a912"
}
],
"definitions": {
"ByteArray": {
"title": "ByteArray",
"dataType": "bytes"
},
"Int": {
"dataType": "integer"
},
"Option<ByteArray>": {
"title": "Option",
"anyOf": [
{
"title": "Some",
"description": "An optional value.",
"dataType": "constructor",
"index": 0,
"fields": [
{
"$ref": "#/definitions/ByteArray"
}
]
},
{
"title": "None",
"description": "Nothing.",
"dataType": "constructor",
"index": 1,
"fields": []
}
]
},
"Option<Int>": {
"title": "Option",
"anyOf": [
{
"title": "Some",
"description": "An optional value.",
"dataType": "constructor",
"index": 0,
"fields": [
{
"$ref": "#/definitions/Int"
}
]
},
{
"title": "None",
"description": "Nothing.",
"dataType": "constructor",
"index": 1,
"fields": []
}
]
},
"aiken/crypto/VerificationKeyHash": {
"title": "VerificationKeyHash",
"dataType": "bytes"
},
"cardano/transaction/OutputReference": {
"title": "OutputReference",
"description": "An `OutputReference` is a unique reference to an output on-chain. The `output_index`\n corresponds to the position in the output list of the transaction (identified by its id)\n that produced that output",
"anyOf": [
{
"title": "OutputReference",
"dataType": "constructor",
"index": 0,
"fields": [
{
"title": "transaction_id",
"$ref": "#/definitions/ByteArray"
},
{
"title": "output_index",
"$ref": "#/definitions/Int"
}
]
}
]
},
"marketplace/types/AdvertDatum": {
"title": "AdvertDatum",
"description": "AdvertDatum — ARCHITECTURE.md §4.1. 13 fields, declaration order matches\n the TS encoder in `packages/shared/src/cbor/AdvertDatum.ts`.\n\n 0 supplier_pkh ByteArray(28)\n 1 capability_id ByteArray (UTF-8)\n 2 model ByteArray (UTF-8)\n 3 max_output_tokens Int\n 4 max_processing_ms Int\n 5 price_lovelace Int\n 6 supplier_bond_lovelace Int\n 7 buyer_bond_lovelace Int\n 8 endpoint_url ByteArray (UTF-8)\n 9 detail_uri ByteArray (UTF-8)\n 10 detail_hash ByteArray(32)\n 11 advertised_at Int (POSIX ms)\n 12 status AdvertStatus",
"anyOf": [
{
"title": "AdvertDatum",
"dataType": "constructor",
"index": 0,
"fields": [
{
"title": "supplier_pkh",
"$ref": "#/definitions/aiken~1crypto~1VerificationKeyHash"
},
{
"title": "capability_id",
"$ref": "#/definitions/ByteArray"
},
{
"title": "model",
"$ref": "#/definitions/ByteArray"
},
{
"title": "max_output_tokens",
"$ref": "#/definitions/Int"
},
{
"title": "max_processing_ms",
"$ref": "#/definitions/Int"
},
{
"title": "price_lovelace",
"$ref": "#/definitions/Int"
},
{
"title": "supplier_bond_lovelace",
"$ref": "#/definitions/Int"
},
{
"title": "buyer_bond_lovelace",
"$ref": "#/definitions/Int"
},
{
"title": "endpoint_url",
"$ref": "#/definitions/ByteArray"
},
{
"title": "detail_uri",
"$ref": "#/definitions/ByteArray"
},
{
"title": "detail_hash",
"$ref": "#/definitions/ByteArray"
},
{
"title": "advertised_at",
"$ref": "#/definitions/Int"
},
{
"title": "status",
"$ref": "#/definitions/marketplace~1types~1AdvertStatus"
}
]
}
]
},
"marketplace/types/AdvertRedeemer": {
"title": "AdvertRedeemer",
"description": "AdvertScript redeemer set. Declaration order is informational here — the\n tx builder constructs the redeemer Data; tags 121/122/123 in declaration\n order match the M1-B encoder.",
"anyOf": [
{
"title": "PostAdvert",
"dataType": "constructor",
"index": 0,
"fields": []
},
{
"title": "UpdateAdvert",
"dataType": "constructor",
"index": 1,
"fields": []
},
{
"title": "RetireAdvert",
"dataType": "constructor",
"index": 2,
"fields": []
}
]
},
"marketplace/types/AdvertStatus": {
"title": "AdvertStatus",
"description": "AdvertStatus mirrors the TS literal type:\n Active -> Constr 121 []\n Retired -> Constr 122 []\n Declaration order MUST stay Active, then Retired.",
"anyOf": [
{
"title": "Active",
"dataType": "constructor",
"index": 0,
"fields": []
},
{
"title": "Retired",
"dataType": "constructor",
"index": 1,
"fields": []
}
]
},
"marketplace/types/EscrowDatum": {
"title": "EscrowDatum",
"description": "EscrowDatum — ARCHITECTURE.md §4.2. 14 fields, declaration order matches\n the TS encoder in `packages/shared/src/cbor/EscrowDatum.ts`.\n\n 0 buyer_pkh ByteArray(28)\n 1 supplier_pkh ByteArray(28)\n 2 advert_ref OutputReference (Constr0[bytes, int])\n 3 capability_id ByteArray (UTF-8)\n 4 request_spec_hash ByteArray(32)\n 5 prompt_hash ByteArray(32)\n 6 payment_lovelace Int\n 7 buyer_bond_lovelace Int\n 8 supplier_bond_lovelace Int\n 9 deliver_by Int (POSIX ms)\n 10 posted_at Int (POSIX ms)\n 11 submitted_at Option<Int>\n 12 result_receipt_hash Option<ByteArray>\n 13 state EscrowState",
"anyOf": [
{
"title": "EscrowDatum",
"dataType": "constructor",
"index": 0,
"fields": [
{
"title": "buyer_pkh",
"$ref": "#/definitions/aiken~1crypto~1VerificationKeyHash"
},
{
"title": "supplier_pkh",
"$ref": "#/definitions/aiken~1crypto~1VerificationKeyHash"
},
{
"title": "advert_ref",
"$ref": "#/definitions/cardano~1transaction~1OutputReference"
},
{
"title": "capability_id",
"$ref": "#/definitions/ByteArray"
},
{
"title": "request_spec_hash",
"$ref": "#/definitions/ByteArray"
},
{
"title": "prompt_hash",
"$ref": "#/definitions/ByteArray"
},
{
"title": "payment_lovelace",
"$ref": "#/definitions/Int"
},
{
"title": "buyer_bond_lovelace",
"$ref": "#/definitions/Int"
},
{
"title": "supplier_bond_lovelace",
"$ref": "#/definitions/Int"
},
{
"title": "deliver_by",
"$ref": "#/definitions/Int"
},
{
"title": "posted_at",
"$ref": "#/definitions/Int"
},
{
"title": "submitted_at",
"$ref": "#/definitions/Option<Int>"
},
{
"title": "result_receipt_hash",
"$ref": "#/definitions/Option<ByteArray>"
},
{
"title": "state",
"$ref": "#/definitions/marketplace~1types~1EscrowState"
}
]
}
]
},
"marketplace/types/EscrowRedeemer": {
"title": "EscrowRedeemer",
"description": "EscrowScript redeemer set. Tags 121..125 in declaration order:\n Claim=121, Submit=122, Accept=123, Reclaim=124, Release=125.\n `Submit` carries the receipt-hash payload chosen by the supplier; the\n validator binds it into `result_receipt_hash` of the new datum.",
"anyOf": [
{
"title": "Claim",
"dataType": "constructor",
"index": 0,
"fields": []
},
{
"title": "Submit",
"dataType": "constructor",
"index": 1,
"fields": [
{
"title": "receipt_hash",
"$ref": "#/definitions/ByteArray"
}
]
},
{
"title": "Accept",
"dataType": "constructor",
"index": 2,
"fields": []
},
{
"title": "Reclaim",
"dataType": "constructor",
"index": 3,
"fields": []
},
{
"title": "Release",
"dataType": "constructor",
"index": 4,
"fields": []
}
]
},
"marketplace/types/EscrowState": {
"title": "EscrowState",
"description": "EscrowState mirrors the TS string-union, tag layout 121..126:\n Open=121, Claimed=122, Submitted=123,\n Accepted=124, Reclaimed=125, Released=126\n Declaration order MUST match this exact sequence — it is checked against\n `STATE_TAGS` in `packages/shared/src/cbor/EscrowDatum.ts`.",
"anyOf": [
{
"title": "Open",
"dataType": "constructor",
"index": 0,
"fields": []
},
{
"title": "Claimed",
"dataType": "constructor",
"index": 1,
"fields": []
},
{
"title": "Submitted",
"dataType": "constructor",
"index": 2,
"fields": []
},
{
"title": "Accepted",
"dataType": "constructor",
"index": 3,
"fields": []
},
{
"title": "Reclaimed",
"dataType": "constructor",
"index": 4,
"fields": []
},
{
"title": "Released",
"dataType": "constructor",
"index": 5,
"fields": []
}
]
}
}
}