[{"data":1,"prerenderedAt":1884},["ShallowReactive",2],{"\u002Foffers":3},{"id":4,"title":5,"body":6,"description":1876,"extension":1877,"meta":1878,"navigation":1879,"path":1880,"seo":1881,"stem":1882,"__hash__":1883},"content\u002Foffers.md","Offers",{"type":7,"value":8,"toc":1857},"minimark",[9,14,37,40,44,119,141,145,162,167,228,231,266,269,297,330,334,441,450,454,613,647,660,664,1037,1041,1044,1090,1093,1097,1100,1130,1202,1205,1209,1215,1218,1262,1277,1280,1284,1289,1291,1361,1377,1629,1640,1643,1647,1656,1659,1678,1681,1706,1715,1719,1722,1747,1755,1759,1779,1789,1793,1805,1811,1815,1853],[10,11,13],"h2",{"id":12},"scope","Scope",[15,16,17,18,22,23,30,31,36],"p",{},"An ",[19,20,21],"strong",{},"offer"," is a public, signed statement that a person or organization is willing to provide a product, service, rental, subscription, or other item under described terms. Open Markets uses ",[24,25,29],"a",{"href":26,"rel":27},"https:\u002F\u002Fgithub.com\u002Fnostr-protocol\u002Fnips\u002Fblob\u002Fmaster\u002F99.md",[28],"nofollow","NIP-99"," as the canonical offer primitive and adds the commerce fields developed by the ",[24,32,35],{"href":33,"rel":34},"https:\u002F\u002Fgithub.com\u002FGammaMarkets\u002Fmarket-spec\u002Fblob\u002F5dc79c5db0d41c0bea774debf445cce041192840\u002Fspec.md",[28],"Gamma Markets specification",".",[15,38,39],{},"An offer is not an order, invoice, payment, reservation, or proof of stock. Publishing an offer does not guarantee that the merchant will accept a later order.",[10,41,43],{"id":42},"event-kinds","Event kinds",[45,46,47,63],"table",{},[48,49,50],"thead",{},[51,52,53,57,60],"tr",{},[54,55,56],"th",{},"Kind",[54,58,59],{},"Purpose",[54,61,62],{},"Requirement",[64,65,66,81,94,106],"tbody",{},[51,67,68,75,78],{},[69,70,71],"td",{},[72,73,74],"code",{},"30402",[69,76,77],{},"Active public offer",[69,79,80],{},"Required",[51,82,83,88,91],{},[69,84,85],{},[72,86,87],{},"30403",[69,89,90],{},"Public draft or inactive offer",[69,92,93],{},"Optional",[51,95,96,101,104],{},[69,97,98],{},[72,99,100],{},"30405",[69,102,103],{},"Product collection",[69,105,93],{},[51,107,108,113,116],{},[69,109,110],{},[72,111,112],{},"30406",[69,114,115],{},"Shipping option",[69,117,118],{},"Optional for physical goods",[15,120,121,122,124,125,124,127,129,130,132,133,136,137,140],{},"Kinds ",[72,123,74],{},", ",[72,126,87],{},[72,128,100],{},", and ",[72,131,112],{}," are addressable events. Their stable address is ",[72,134,135],{},"\u003Ckind>:\u003Cauthor-pubkey>:\u003Cd-tag>",". Clients MUST apply the NIP-01 replacement rule: select the event with the greatest ",[72,138,139],{},"created_at",", then the event with the lowest ID when timestamps are equal.",[10,142,144],{"id":143},"offer-event","Offer event",[15,146,147,148,150,151,153,154,156,157,36],{},"A conforming active offer MUST be kind ",[72,149,74],{},". Kind ",[72,152,87],{}," has the same offer structure but indicates that the listing is not active. Kind ",[72,155,87],{}," is still public; private work-in-progress drafts SHOULD instead use ",[24,158,161],{"href":159,"rel":160},"https:\u002F\u002Fgithub.com\u002Fnostr-protocol\u002Fnips\u002Fblob\u002Fmaster\u002F37.md",[28],"NIP-37",[163,164,166],"h3",{"id":165},"required-tags","Required tags",[45,168,169,183],{},[48,170,171],{},[51,172,173,176,180],{},[54,174,175],{},"Tag",[54,177,179],{"align":178},"right","Cardinality",[54,181,182],{},"Meaning",[64,184,185,198,210],{},[51,186,187,192,195],{},[69,188,189],{},[72,190,191],{},"d",[69,193,194],{"align":178},"exactly 1",[69,196,197],{},"Stable identifier chosen by the author",[51,199,200,205,207],{},[69,201,202],{},[72,203,204],{},"title",[69,206,194],{"align":178},[69,208,209],{},"Human-readable offer title",[51,211,212,217,219],{},[69,213,214],{},[72,215,216],{},"price",[69,218,194],{"align":178},[69,220,221,124,224,227],{},[72,222,223],{},"amount",[72,225,226],{},"currency",", and optional recurrence",[15,229,230],{},"The canonical price shape is:",[232,233,238],"pre",{"className":234,"code":235,"language":236,"meta":237,"style":237},"language-json shiki shiki-themes github-light github-dark","[\"price\", \"18.00\", \"USD\"]\n","json","",[72,239,240],{"__ignoreMap":237},[241,242,245,249,253,255,258,260,263],"span",{"class":243,"line":244},"line",1,[241,246,248],{"class":247},"sVt8B","[",[241,250,252],{"class":251},"sZZnC","\"price\"",[241,254,124],{"class":247},[241,256,257],{"class":251},"\"18.00\"",[241,259,124],{"class":247},[241,261,262],{"class":251},"\"USD\"",[241,264,265],{"class":247},"]\n",[15,267,268],{},"Recurring offers MAY add a frequency:",[232,270,272],{"className":234,"code":271,"language":236,"meta":237,"style":237},"[\"price\", \"15\", \"EUR\", \"month\"]\n",[72,273,274],{"__ignoreMap":237},[241,275,276,278,280,282,285,287,290,292,295],{"class":243,"line":244},[241,277,248],{"class":247},[241,279,252],{"class":251},[241,281,124],{"class":247},[241,283,284],{"class":251},"\"15\"",[241,286,124],{"class":247},[241,288,289],{"class":251},"\"EUR\"",[241,291,124],{"class":247},[241,293,294],{"class":251},"\"month\"",[241,296,265],{"class":247},[15,298,299,300,124,303,124,306,124,309,312,313,316,317,124,320,124,323,129,326,329],{},"Implementations SHOULD emit the NIP-99 noun forms ",[72,301,302],{},"hour",[72,304,305],{},"day",[72,307,308],{},"week",[72,310,311],{},"month",", or ",[72,314,315],{},"year",". For Gamma compatibility they SHOULD also accept ",[72,318,319],{},"H",[72,321,322],{},"D",[72,324,325],{},"W",[72,327,328],{},"Y",". A bare unit letter is not a complete ISO 8601 duration and MUST NOT be presented as one.",[163,331,333],{"id":332},"standard-metadata","Standard metadata",[45,335,336,346],{},[48,337,338],{},[51,339,340,342,344],{},[54,341,175],{},[54,343,179],{"align":178},[54,345,182],{},[64,347,348,361,373,392,404,416,429],{},[51,349,350,355,358],{},[69,351,352],{},[72,353,354],{},"summary",[69,356,357],{"align":178},"0 or 1",[69,359,360],{},"Short display description",[51,362,363,368,370],{},[69,364,365],{},[72,366,367],{},"published_at",[69,369,357],{"align":178},[69,371,372],{},"First publication time in Unix seconds",[51,374,375,380,382],{},[69,376,377],{},[72,378,379],{},"status",[69,381,357],{"align":178},[69,383,384,385,388,389],{},"NIP-99 lifecycle: ",[72,386,387],{},"active"," or ",[72,390,391],{},"sold",[51,393,394,399,401],{},[69,395,396],{},[72,397,398],{},"location",[69,400,357],{"align":178},[69,402,403],{},"Human-readable location",[51,405,406,411,413],{},[69,407,408],{},[72,409,410],{},"g",[69,412,357],{"align":178},[69,414,415],{},"Geohash",[51,417,418,423,426],{},[69,419,420],{},[72,421,422],{},"image",[69,424,425],{"align":178},"0 or more",[69,427,428],{},"URL, optional dimensions, optional sort order",[51,430,431,436,438],{},[69,432,433],{},[72,434,435],{},"t",[69,437,425],{"align":178},[69,439,440],{},"Category or discovery term",[15,442,443,444,447,448,36],{},"The event ",[72,445,446],{},"content"," SHOULD contain the complete human-readable description in Markdown. Structured values needed for filtering or validation belong in tags, not only in ",[72,449,446],{},[163,451,453],{"id":452},"commerce-metadata","Commerce metadata",[45,455,456,467],{},[48,457,458],{},[51,459,460,462,465],{},[54,461,175],{},[54,463,464],{},"Shape",[54,466,182],{},[64,468,469,486,507,520,533,546,562,574,587,600],{},[51,470,471,476,483],{},[69,472,473],{},[72,474,475],{},"type",[69,477,478,124,480],{},[72,479,475],{},[72,481,482],{},"format",[69,484,485],{},"Product relationship and delivery format",[51,487,488,493,496],{},[69,489,490],{},[72,491,492],{},"visibility",[69,494,495],{},"value",[69,497,498,124,501,312,504],{},[72,499,500],{},"hidden",[72,502,503],{},"on-sale",[72,505,506],{},"pre-order",[51,508,509,514,517],{},[69,510,511],{},[72,512,513],{},"stock",[69,515,516],{},"integer",[69,518,519],{},"Available quantity claimed by the merchant",[51,521,522,527,530],{},[69,523,524],{},[72,525,526],{},"spec",[69,528,529],{},"key, value",[69,531,532],{},"Repeatable product property",[51,534,535,540,543],{},[69,536,537],{},[72,538,539],{},"weight",[69,541,542],{},"value, unit",[69,544,545],{},"Physical weight using ISO 80000-1 units",[51,547,548,553,559],{},[69,549,550],{},[72,551,552],{},"dim",[69,554,555,558],{},[72,556,557],{},"LxWxH",", unit",[69,560,561],{},"Physical dimensions",[51,563,564,568,571],{},[69,565,566],{},[72,567,24],{},[69,569,570],{},"event address",[69,572,573],{},"Parent offer or collection reference",[51,575,576,581,584],{},[69,577,578],{},[72,579,580],{},"shipping_option",[69,582,583],{},"event address, optional extra cost",[69,585,586],{},"Available delivery option or collection",[51,588,589,594,597],{},[69,590,591],{},[72,592,593],{},"supersedes",[69,595,596],{},"offer address",[69,598,599],{},"Prior product identity replaced by this offer",[51,601,602,607,610],{},[69,603,604],{},[72,605,606],{},"client",[69,608,609],{},"NIP-89 tuple",[69,611,612],{},"Optional software attribution",[15,614,615,616,618,619,124,622,129,625,628,629,632,633,636,637,632,639,641,642,644,645,36],{},"Valid ",[72,617,475],{}," values are ",[72,620,621],{},"simple",[72,623,624],{},"variable",[72,626,627],{},"variation",". Valid formats are ",[72,630,631],{},"digital"," and ",[72,634,635],{},"physical",". If omitted, clients MUST interpret the offer as ",[72,638,621],{},[72,640,631],{},". If ",[72,643,492],{}," is omitted, clients MUST interpret it as ",[72,646,503],{},[15,648,649,632,651,653,654,656,657,659],{},[72,650,379],{},[72,652,492],{}," are separate compatibility fields. Clients MUST NOT silently rewrite one from the other. ",[72,655,379],{}," describes the NIP-99 listing lifecycle; ",[72,658,492],{}," describes Gamma commerce presentation and availability.",[163,661,663],{"id":662},"complete-example","Complete example",[232,665,667],{"className":234,"code":666,"language":236,"meta":237,"style":237},"{\n  \"id\": \"\u003Cevent-id>\",\n  \"pubkey\": \"\u003Cmerchant-pubkey>\",\n  \"created_at\": 1786924800,\n  \"kind\": 30402,\n  \"tags\": [\n    [\"d\", \"coffee-ethiopia-250g\"],\n    [\"title\", \"Ethiopian Coffee, 250 g\"],\n    [\"summary\", \"Whole-bean, light-roast coffee\"],\n    [\"published_at\", \"1786924800\"],\n    [\"price\", \"18.00\", \"USD\"],\n    [\"status\", \"active\"],\n    [\"type\", \"simple\", \"physical\"],\n    [\"visibility\", \"on-sale\"],\n    [\"stock\", \"24\"],\n    [\"image\", \"https:\u002F\u002Fexample.com\u002Fcoffee.jpg\", \"1200x1200\", \"0\"],\n    [\"spec\", \"roast\", \"light\"],\n    [\"weight\", \"250\", \"g\"],\n    [\"shipping_option\", \"30406:\u003Cmerchant-pubkey>:us-standard\"],\n    [\"t\", \"coffee\"],\n    [\"client\", \"Example Market\", \"31990:\u003Capp-pubkey>:market\", \"wss:\u002F\u002Frelay.example.com\"]\n  ],\n  \"content\": \"Floral whole-bean coffee from Ethiopia.\",\n  \"sig\": \"\u003Csignature>\"\n}\n",[72,668,669,674,690,703,716,728,737,754,769,784,799,816,831,851,866,881,906,926,946,961,976,1001,1007,1020,1031],{"__ignoreMap":237},[241,670,671],{"class":243,"line":244},[241,672,673],{"class":247},"{\n",[241,675,677,681,684,687],{"class":243,"line":676},2,[241,678,680],{"class":679},"sj4cs","  \"id\"",[241,682,683],{"class":247},": ",[241,685,686],{"class":251},"\"\u003Cevent-id>\"",[241,688,689],{"class":247},",\n",[241,691,693,696,698,701],{"class":243,"line":692},3,[241,694,695],{"class":679},"  \"pubkey\"",[241,697,683],{"class":247},[241,699,700],{"class":251},"\"\u003Cmerchant-pubkey>\"",[241,702,689],{"class":247},[241,704,706,709,711,714],{"class":243,"line":705},4,[241,707,708],{"class":679},"  \"created_at\"",[241,710,683],{"class":247},[241,712,713],{"class":679},"1786924800",[241,715,689],{"class":247},[241,717,719,722,724,726],{"class":243,"line":718},5,[241,720,721],{"class":679},"  \"kind\"",[241,723,683],{"class":247},[241,725,74],{"class":679},[241,727,689],{"class":247},[241,729,731,734],{"class":243,"line":730},6,[241,732,733],{"class":679},"  \"tags\"",[241,735,736],{"class":247},": [\n",[241,738,740,743,746,748,751],{"class":243,"line":739},7,[241,741,742],{"class":247},"    [",[241,744,745],{"class":251},"\"d\"",[241,747,124],{"class":247},[241,749,750],{"class":251},"\"coffee-ethiopia-250g\"",[241,752,753],{"class":247},"],\n",[241,755,757,759,762,764,767],{"class":243,"line":756},8,[241,758,742],{"class":247},[241,760,761],{"class":251},"\"title\"",[241,763,124],{"class":247},[241,765,766],{"class":251},"\"Ethiopian Coffee, 250 g\"",[241,768,753],{"class":247},[241,770,772,774,777,779,782],{"class":243,"line":771},9,[241,773,742],{"class":247},[241,775,776],{"class":251},"\"summary\"",[241,778,124],{"class":247},[241,780,781],{"class":251},"\"Whole-bean, light-roast coffee\"",[241,783,753],{"class":247},[241,785,787,789,792,794,797],{"class":243,"line":786},10,[241,788,742],{"class":247},[241,790,791],{"class":251},"\"published_at\"",[241,793,124],{"class":247},[241,795,796],{"class":251},"\"1786924800\"",[241,798,753],{"class":247},[241,800,802,804,806,808,810,812,814],{"class":243,"line":801},11,[241,803,742],{"class":247},[241,805,252],{"class":251},[241,807,124],{"class":247},[241,809,257],{"class":251},[241,811,124],{"class":247},[241,813,262],{"class":251},[241,815,753],{"class":247},[241,817,819,821,824,826,829],{"class":243,"line":818},12,[241,820,742],{"class":247},[241,822,823],{"class":251},"\"status\"",[241,825,124],{"class":247},[241,827,828],{"class":251},"\"active\"",[241,830,753],{"class":247},[241,832,834,836,839,841,844,846,849],{"class":243,"line":833},13,[241,835,742],{"class":247},[241,837,838],{"class":251},"\"type\"",[241,840,124],{"class":247},[241,842,843],{"class":251},"\"simple\"",[241,845,124],{"class":247},[241,847,848],{"class":251},"\"physical\"",[241,850,753],{"class":247},[241,852,854,856,859,861,864],{"class":243,"line":853},14,[241,855,742],{"class":247},[241,857,858],{"class":251},"\"visibility\"",[241,860,124],{"class":247},[241,862,863],{"class":251},"\"on-sale\"",[241,865,753],{"class":247},[241,867,869,871,874,876,879],{"class":243,"line":868},15,[241,870,742],{"class":247},[241,872,873],{"class":251},"\"stock\"",[241,875,124],{"class":247},[241,877,878],{"class":251},"\"24\"",[241,880,753],{"class":247},[241,882,884,886,889,891,894,896,899,901,904],{"class":243,"line":883},16,[241,885,742],{"class":247},[241,887,888],{"class":251},"\"image\"",[241,890,124],{"class":247},[241,892,893],{"class":251},"\"https:\u002F\u002Fexample.com\u002Fcoffee.jpg\"",[241,895,124],{"class":247},[241,897,898],{"class":251},"\"1200x1200\"",[241,900,124],{"class":247},[241,902,903],{"class":251},"\"0\"",[241,905,753],{"class":247},[241,907,909,911,914,916,919,921,924],{"class":243,"line":908},17,[241,910,742],{"class":247},[241,912,913],{"class":251},"\"spec\"",[241,915,124],{"class":247},[241,917,918],{"class":251},"\"roast\"",[241,920,124],{"class":247},[241,922,923],{"class":251},"\"light\"",[241,925,753],{"class":247},[241,927,929,931,934,936,939,941,944],{"class":243,"line":928},18,[241,930,742],{"class":247},[241,932,933],{"class":251},"\"weight\"",[241,935,124],{"class":247},[241,937,938],{"class":251},"\"250\"",[241,940,124],{"class":247},[241,942,943],{"class":251},"\"g\"",[241,945,753],{"class":247},[241,947,949,951,954,956,959],{"class":243,"line":948},19,[241,950,742],{"class":247},[241,952,953],{"class":251},"\"shipping_option\"",[241,955,124],{"class":247},[241,957,958],{"class":251},"\"30406:\u003Cmerchant-pubkey>:us-standard\"",[241,960,753],{"class":247},[241,962,964,966,969,971,974],{"class":243,"line":963},20,[241,965,742],{"class":247},[241,967,968],{"class":251},"\"t\"",[241,970,124],{"class":247},[241,972,973],{"class":251},"\"coffee\"",[241,975,753],{"class":247},[241,977,979,981,984,986,989,991,994,996,999],{"class":243,"line":978},21,[241,980,742],{"class":247},[241,982,983],{"class":251},"\"client\"",[241,985,124],{"class":247},[241,987,988],{"class":251},"\"Example Market\"",[241,990,124],{"class":247},[241,992,993],{"class":251},"\"31990:\u003Capp-pubkey>:market\"",[241,995,124],{"class":247},[241,997,998],{"class":251},"\"wss:\u002F\u002Frelay.example.com\"",[241,1000,265],{"class":247},[241,1002,1004],{"class":243,"line":1003},22,[241,1005,1006],{"class":247},"  ],\n",[241,1008,1010,1013,1015,1018],{"class":243,"line":1009},23,[241,1011,1012],{"class":679},"  \"content\"",[241,1014,683],{"class":247},[241,1016,1017],{"class":251},"\"Floral whole-bean coffee from Ethiopia.\"",[241,1019,689],{"class":247},[241,1021,1023,1026,1028],{"class":243,"line":1022},24,[241,1024,1025],{"class":679},"  \"sig\"",[241,1027,683],{"class":247},[241,1029,1030],{"class":251},"\"\u003Csignature>\"\n",[241,1032,1034],{"class":243,"line":1033},25,[241,1035,1036],{"class":247},"}\n",[10,1038,1040],{"id":1039},"validation","Validation",[15,1042,1043],{},"A client accepting an offer MUST:",[1045,1046,1047,1051,1062,1065,1072,1075,1081,1084,1087],"ol",{},[1048,1049,1050],"li",{},"Validate its NIP-01 event ID and signature.",[1048,1052,1053,1054,1056,1057,1059,1060,36],{},"Require exactly one non-empty ",[72,1055,191],{},", one non-empty ",[72,1058,204],{},", and one ",[72,1061,216],{},[1048,1063,1064],{},"Reject repeated singleton tags instead of choosing an arbitrary value.",[1048,1066,1067,1068,1071],{},"Parse prices as non-negative decimal strings. Exponent notation, signs, separators, ",[72,1069,1070],{},"NaN",", and infinity are invalid.",[1048,1073,1074],{},"Require fiat currencies to use uppercase ISO 4217 codes. Bitcoin-like or application currencies MAY use established ISO-like codes.",[1048,1076,1077,1078,1080],{},"Require ",[72,1079,513],{}," and image sort order to be non-negative base-10 integers when present.",[1048,1082,1083],{},"Validate every event address before dereferencing it.",[1048,1085,1086],{},"Ignore unknown tags so extensions remain forward compatible.",[1048,1088,1089],{},"Treat price and stock as claims. The merchant MUST recalculate availability and the payable total when an order arrives.",[15,1091,1092],{},"Clients SHOULD enforce reasonable limits on Markdown length, image count, tag count, and URL size. Clients MUST treat remote media as untrusted content.",[10,1094,1096],{"id":1095},"variable-products","Variable products",[15,1098,1099],{},"A variable product describes a product family. Each purchasable variation is its own offer.",[1101,1102,1103,1109,1115,1124,1127],"ul",{},[1048,1104,1105,1106,36],{},"The parent MUST use ",[72,1107,1108],{},"type=variable",[1048,1110,1111,1112,36],{},"A child MUST use ",[72,1113,1114],{},"type=variation",[1048,1116,1117,1118,1120,1121,1123],{},"A child MUST include exactly one ",[72,1119,24],{}," tag pointing to its kind ",[72,1122,74],{}," parent.",[1048,1125,1126],{},"The child MUST define its own required title and price.",[1048,1128,1129],{},"Order items MUST point to a purchasable child, not an abstract parent, unless the parent is itself orderable.",[232,1131,1133],{"className":234,"code":1132,"language":236,"meta":237,"style":237},"[\"type\", \"variation\", \"physical\"]\n[\"a\", \"30402:\u003Cmerchant-pubkey>:shirt\"]\n[\"spec\", \"size\", \"M\"]\n[\"spec\", \"color\", \"violet\"]\n",[72,1134,1135,1152,1166,1184],{"__ignoreMap":237},[241,1136,1137,1139,1141,1143,1146,1148,1150],{"class":243,"line":244},[241,1138,248],{"class":247},[241,1140,838],{"class":251},[241,1142,124],{"class":247},[241,1144,1145],{"class":251},"\"variation\"",[241,1147,124],{"class":247},[241,1149,848],{"class":251},[241,1151,265],{"class":247},[241,1153,1154,1156,1159,1161,1164],{"class":243,"line":676},[241,1155,248],{"class":247},[241,1157,1158],{"class":251},"\"a\"",[241,1160,124],{"class":247},[241,1162,1163],{"class":251},"\"30402:\u003Cmerchant-pubkey>:shirt\"",[241,1165,265],{"class":247},[241,1167,1168,1170,1172,1174,1177,1179,1182],{"class":243,"line":692},[241,1169,248],{"class":247},[241,1171,913],{"class":251},[241,1173,124],{"class":247},[241,1175,1176],{"class":251},"\"size\"",[241,1178,124],{"class":247},[241,1180,1181],{"class":251},"\"M\"",[241,1183,265],{"class":247},[241,1185,1186,1188,1190,1192,1195,1197,1200],{"class":243,"line":705},[241,1187,248],{"class":247},[241,1189,913],{"class":251},[241,1191,124],{"class":247},[241,1193,1194],{"class":251},"\"color\"",[241,1196,124],{"class":247},[241,1198,1199],{"class":251},"\"violet\"",[241,1201,265],{"class":247},[15,1203,1204],{},"Clients MUST NOT assume that values cascade from the parent. A variation explicitly carries every value required to price and fulfill it.",[10,1206,1208],{"id":1207},"collections","Collections",[15,1210,1211,1212,1214],{},"Kind ",[72,1213,100],{}," organizes offers and may provide reusable references. Collection support is optional; an implementation can conform while rendering and purchasing standalone offers.",[15,1216,1217],{},"Required tags:",[232,1219,1221],{"className":234,"code":1220,"language":236,"meta":237,"style":237},"[\"d\", \"summer-roasts\"]\n[\"title\", \"Summer Roasts\"]\n[\"a\", \"30402:\u003Cmerchant-pubkey>:coffee-ethiopia-250g\"]\n",[72,1222,1223,1236,1249],{"__ignoreMap":237},[241,1224,1225,1227,1229,1231,1234],{"class":243,"line":244},[241,1226,248],{"class":247},[241,1228,745],{"class":251},[241,1230,124],{"class":247},[241,1232,1233],{"class":251},"\"summer-roasts\"",[241,1235,265],{"class":247},[241,1237,1238,1240,1242,1244,1247],{"class":243,"line":676},[241,1239,248],{"class":247},[241,1241,761],{"class":251},[241,1243,124],{"class":247},[241,1245,1246],{"class":251},"\"Summer Roasts\"",[241,1248,265],{"class":247},[241,1250,1251,1253,1255,1257,1260],{"class":243,"line":692},[241,1252,248],{"class":247},[241,1254,1158],{"class":251},[241,1256,124],{"class":247},[241,1258,1259],{"class":251},"\"30402:\u003Cmerchant-pubkey>:coffee-ethiopia-250g\"",[241,1261,265],{"class":247},[15,1263,1264,1265,124,1267,124,1269,124,1271,1273,1274,1276],{},"Optional tags include ",[72,1266,422],{},[72,1268,354],{},[72,1270,398],{},[72,1272,410],{},", and repeatable ",[72,1275,580],{}," references.",[15,1278,1279],{},"Collections do not automatically modify products. An offer MUST explicitly reference a collection resource when it intends to use it. Clients MUST merge direct shipping references with explicitly referenced collection shipping options and MUST NOT infer inheritance merely because a collection lists the offer.",[10,1281,1283],{"id":1282},"shipping-options","Shipping options",[15,1285,1211,1286,1288],{},[72,1287,112],{}," describes one delivery or pickup method. It MAY be authored by the merchant or a third-party carrier.",[15,1290,1217],{},[45,1292,1293,1301],{},[48,1294,1295],{},[51,1296,1297,1299],{},[54,1298,175],{},[54,1300,182],{},[64,1302,1303,1312,1321,1330,1340],{},[51,1304,1305,1309],{},[69,1306,1307],{},[72,1308,191],{},[69,1310,1311],{},"Stable shipping identifier",[51,1313,1314,1318],{},[69,1315,1316],{},[72,1317,204],{},[69,1319,1320],{},"Display name",[51,1322,1323,1327],{},[69,1324,1325],{},[72,1326,216],{},[69,1328,1329],{},"Base cost and currency",[51,1331,1332,1337],{},[69,1333,1334],{},[72,1335,1336],{},"country",[69,1338,1339],{},"One or more ISO 3166-1 alpha-2 codes",[51,1341,1342,1347],{},[69,1343,1344],{},[72,1345,1346],{},"service",[69,1348,1349,124,1352,124,1355,312,1358],{},[72,1350,1351],{},"standard",[72,1353,1354],{},"express",[72,1356,1357],{},"overnight",[72,1359,1360],{},"pickup",[15,1362,1264,1363,124,1366,124,1369,124,1372,124,1374,1376],{},[72,1364,1365],{},"carrier",[72,1367,1368],{},"region",[72,1370,1371],{},"duration",[72,1373,398],{},[72,1375,410],{},", minimum and maximum weight or dimensions, and variable price components.",[232,1378,1380],{"className":234,"code":1379,"language":236,"meta":237,"style":237},"{\n  \"kind\": 30406,\n  \"created_at\": 1786924800,\n  \"content\": \"Standard regional shipping\",\n  \"tags\": [\n    [\"d\", \"us-standard\"],\n    [\"title\", \"Standard shipping\"],\n    [\"price\", \"5.99\", \"USD\"],\n    [\"country\", \"US\"],\n    [\"region\", \"US-FL\", \"US-GA\"],\n    [\"service\", \"standard\"],\n    [\"carrier\", \"Example Post\"],\n    [\"duration\", \"2\", \"5\", \"D\"],\n    [\"weight-max\", \"30\", \"kg\"],\n    [\"price-weight\", \"0.75\", \"USD\", \"kg\"]\n  ],\n  \"pubkey\": \"\u003Cshipping-author-pubkey>\",\n  \"id\": \"\u003Cevent-id>\",\n  \"sig\": \"\u003Csignature>\"\n}\n",[72,1381,1382,1386,1396,1406,1417,1423,1436,1449,1466,1480,1499,1513,1527,1551,1570,1592,1596,1607,1617,1625],{"__ignoreMap":237},[241,1383,1384],{"class":243,"line":244},[241,1385,673],{"class":247},[241,1387,1388,1390,1392,1394],{"class":243,"line":676},[241,1389,721],{"class":679},[241,1391,683],{"class":247},[241,1393,112],{"class":679},[241,1395,689],{"class":247},[241,1397,1398,1400,1402,1404],{"class":243,"line":692},[241,1399,708],{"class":679},[241,1401,683],{"class":247},[241,1403,713],{"class":679},[241,1405,689],{"class":247},[241,1407,1408,1410,1412,1415],{"class":243,"line":705},[241,1409,1012],{"class":679},[241,1411,683],{"class":247},[241,1413,1414],{"class":251},"\"Standard regional shipping\"",[241,1416,689],{"class":247},[241,1418,1419,1421],{"class":243,"line":718},[241,1420,733],{"class":679},[241,1422,736],{"class":247},[241,1424,1425,1427,1429,1431,1434],{"class":243,"line":730},[241,1426,742],{"class":247},[241,1428,745],{"class":251},[241,1430,124],{"class":247},[241,1432,1433],{"class":251},"\"us-standard\"",[241,1435,753],{"class":247},[241,1437,1438,1440,1442,1444,1447],{"class":243,"line":739},[241,1439,742],{"class":247},[241,1441,761],{"class":251},[241,1443,124],{"class":247},[241,1445,1446],{"class":251},"\"Standard shipping\"",[241,1448,753],{"class":247},[241,1450,1451,1453,1455,1457,1460,1462,1464],{"class":243,"line":756},[241,1452,742],{"class":247},[241,1454,252],{"class":251},[241,1456,124],{"class":247},[241,1458,1459],{"class":251},"\"5.99\"",[241,1461,124],{"class":247},[241,1463,262],{"class":251},[241,1465,753],{"class":247},[241,1467,1468,1470,1473,1475,1478],{"class":243,"line":771},[241,1469,742],{"class":247},[241,1471,1472],{"class":251},"\"country\"",[241,1474,124],{"class":247},[241,1476,1477],{"class":251},"\"US\"",[241,1479,753],{"class":247},[241,1481,1482,1484,1487,1489,1492,1494,1497],{"class":243,"line":786},[241,1483,742],{"class":247},[241,1485,1486],{"class":251},"\"region\"",[241,1488,124],{"class":247},[241,1490,1491],{"class":251},"\"US-FL\"",[241,1493,124],{"class":247},[241,1495,1496],{"class":251},"\"US-GA\"",[241,1498,753],{"class":247},[241,1500,1501,1503,1506,1508,1511],{"class":243,"line":801},[241,1502,742],{"class":247},[241,1504,1505],{"class":251},"\"service\"",[241,1507,124],{"class":247},[241,1509,1510],{"class":251},"\"standard\"",[241,1512,753],{"class":247},[241,1514,1515,1517,1520,1522,1525],{"class":243,"line":818},[241,1516,742],{"class":247},[241,1518,1519],{"class":251},"\"carrier\"",[241,1521,124],{"class":247},[241,1523,1524],{"class":251},"\"Example Post\"",[241,1526,753],{"class":247},[241,1528,1529,1531,1534,1536,1539,1541,1544,1546,1549],{"class":243,"line":833},[241,1530,742],{"class":247},[241,1532,1533],{"class":251},"\"duration\"",[241,1535,124],{"class":247},[241,1537,1538],{"class":251},"\"2\"",[241,1540,124],{"class":247},[241,1542,1543],{"class":251},"\"5\"",[241,1545,124],{"class":247},[241,1547,1548],{"class":251},"\"D\"",[241,1550,753],{"class":247},[241,1552,1553,1555,1558,1560,1563,1565,1568],{"class":243,"line":853},[241,1554,742],{"class":247},[241,1556,1557],{"class":251},"\"weight-max\"",[241,1559,124],{"class":247},[241,1561,1562],{"class":251},"\"30\"",[241,1564,124],{"class":247},[241,1566,1567],{"class":251},"\"kg\"",[241,1569,753],{"class":247},[241,1571,1572,1574,1577,1579,1582,1584,1586,1588,1590],{"class":243,"line":868},[241,1573,742],{"class":247},[241,1575,1576],{"class":251},"\"price-weight\"",[241,1578,124],{"class":247},[241,1580,1581],{"class":251},"\"0.75\"",[241,1583,124],{"class":247},[241,1585,262],{"class":251},[241,1587,124],{"class":247},[241,1589,1567],{"class":251},[241,1591,265],{"class":247},[241,1593,1594],{"class":243,"line":883},[241,1595,1006],{"class":247},[241,1597,1598,1600,1602,1605],{"class":243,"line":908},[241,1599,695],{"class":679},[241,1601,683],{"class":247},[241,1603,1604],{"class":251},"\"\u003Cshipping-author-pubkey>\"",[241,1606,689],{"class":247},[241,1608,1609,1611,1613,1615],{"class":243,"line":928},[241,1610,680],{"class":679},[241,1612,683],{"class":247},[241,1614,686],{"class":251},[241,1616,689],{"class":247},[241,1618,1619,1621,1623],{"class":243,"line":948},[241,1620,1025],{"class":679},[241,1622,683],{"class":247},[241,1624,1030],{"class":251},[241,1626,1627],{"class":243,"line":963},[241,1628,1036],{"class":247},[15,1630,1631,1632,1635,1636,1639],{},"Open Markets resolves a Gamma inconsistency by defining variable pricing as ",[72,1633,1634],{},"[price, currency, unit]",", matching Gamma's example. Clients SHOULD accept the older ambiguous ",[72,1637,1638],{},"[price, unit]"," form only when the currency can be determined safely from the base price.",[15,1641,1642],{},"Referencing a third-party shipping event is not an endorsement or guarantee. The merchant remains responsible for presenting the final shipping choice and amount in the order flow.",[10,1644,1646],{"id":1645},"product-identity","Product identity",[15,1648,1649,1650,1652,1653,1655],{},"Addressable offers can be updated in place. Operational changes such as price, stock, shipping, and presentation MAY reuse the same ",[72,1651,191],{},". When the underlying product or service materially changes, the merchant SHOULD publish a new ",[72,1654,191],{}," so reviews and references do not silently move to a different subject.",[15,1657,1658],{},"The new offer MAY identify its predecessor:",[232,1660,1662],{"className":234,"code":1661,"language":236,"meta":237,"style":237},"[\"supersedes\", \"30402:\u003Cmerchant-pubkey>:old-product-id\"]\n",[72,1663,1664],{"__ignoreMap":237},[241,1665,1666,1668,1671,1673,1676],{"class":243,"line":244},[241,1667,248],{"class":247},[241,1669,1670],{"class":251},"\"supersedes\"",[241,1672,124],{"class":247},[241,1674,1675],{"class":251},"\"30402:\u003Cmerchant-pubkey>:old-product-id\"",[241,1677,265],{"class":247},[15,1679,1680],{},"Rules:",[1101,1682,1683,1688,1694,1697,1700,1703],{},[1048,1684,1685,1687],{},[72,1686,593],{}," MUST appear at most once.",[1048,1689,1690,1691,1693],{},"It MUST contain a syntactically valid kind ",[72,1692,74],{}," address.",[1048,1695,1696],{},"It MUST NOT point to the event's own address.",[1048,1698,1699],{},"Clients traversing a chain MUST detect cycles.",[1048,1701,1702],{},"The tag is advisory. It does not delete the predecessor, transfer ownership, authorize a different author, or move reviews.",[1048,1704,1705],{},"Cross-author supersession MUST be shown as an unverified claim unless separately authorized.",[15,1707,1708,1709,1714],{},"This incorporates ",[24,1710,1713],{"href":1711,"rel":1712},"https:\u002F\u002Fgithub.com\u002FGammaMarkets\u002Fmarket-spec\u002Fpull\u002F8",[28],"Gamma PR #8"," without making historical ratings appear to describe a materially different product.",[10,1716,1718],{"id":1717},"client-attribution","Client attribution",[15,1720,1721],{},"Publishing software MAY include the NIP-89 tuple:",[232,1723,1725],{"className":234,"code":1724,"language":236,"meta":237,"style":237},"[\"client\", \"Example Market\", \"31990:\u003Capp-pubkey>:market\", \"wss:\u002F\u002Frelay.example.com\"]\n",[72,1726,1727],{"__ignoreMap":237},[241,1728,1729,1731,1733,1735,1737,1739,1741,1743,1745],{"class":243,"line":244},[241,1730,248],{"class":247},[241,1732,983],{"class":251},[241,1734,124],{"class":247},[241,1736,988],{"class":251},[241,1738,124],{"class":247},[241,1740,993],{"class":251},[241,1742,124],{"class":247},[241,1744,998],{"class":251},[241,1746,265],{"class":247},[15,1748,1749,1750,36],{},"Clients SHOULD include attribution when the user has enabled it and MUST provide an opt-out. Missing or malformed attribution MUST NOT invalidate an offer. Attribution does not prove merchant approval, product authenticity, payment validity, or authorization. This incorporates the non-authoritative attribution model proposed by ",[24,1751,1754],{"href":1752,"rel":1753},"https:\u002F\u002Fgithub.com\u002FGammaMarkets\u002Fmarket-spec\u002Fpull\u002F11",[28],"Gamma PR #11",[10,1756,1758],{"id":1757},"nip-15-compatibility","NIP-15 compatibility",[15,1760,1761,1766,1767,1770,1771,1774,1775,1778],{},[24,1762,1765],{"href":1763,"rel":1764},"https:\u002F\u002Fgithub.com\u002Fnostr-protocol\u002Fnips\u002Fblob\u002Fmaster\u002F15.md",[28],"NIP-15"," is marked ",[72,1768,1769],{},"unrecommended"," and is not the Open Markets offer format. Its stalls (",[72,1772,1773],{},"30017","), products (",[72,1776,1777],{},"30018","), NIP-04 checkout messages, and embedded shipping structures are legacy inputs.",[15,1780,1781,1782,1784,1785,1788],{},"An implementation MAY import a NIP-15 product, but it MUST publish a newly signed kind ",[72,1783,74],{}," event before presenting it as an Open Markets offer. A bridge MUST NOT claim lossless round-trip conversion. Legacy NIP-15 checkout JSON MUST NOT be treated as a kind ",[72,1786,1787],{},"16"," order without explicit conversion and fresh authorization.",[10,1790,1792],{"id":1791},"nip-69-compatibility","NIP-69 compatibility",[15,1794,1795,1800,1801,1804],{},[24,1796,1799],{"href":1797,"rel":1798},"https:\u002F\u002Fgithub.com\u002Fnostr-protocol\u002Fnips\u002Fblob\u002Fmaster\u002F69.md",[28],"NIP-69"," kind ",[72,1802,1803],{},"38383"," describes public P2P Bitcoin\u002Ffiat liquidity orders. Despite its name, it is closer to a public exchange offer than a private product checkout order.",[15,1806,1807,1808,1810],{},"Applications MAY expose both protocols, but they MUST keep them distinct. Open Markets does not reuse NIP-69 premiums, bonds, ratings, statuses, expiration rules, or escrow assumptions. Kind ",[72,1809,1803],{}," MUST NOT be used for a product purchase order.",[10,1812,1814],{"id":1813},"sources","Sources",[1101,1816,1817,1823,1829,1835,1841,1847],{},[1048,1818,1819],{},[24,1820,1822],{"href":26,"rel":1821},[28],"NIP-99: Classified Listings",[1048,1824,1825],{},[24,1826,1828],{"href":33,"rel":1827},[28],"Gamma Markets specification at the consolidated base",[1048,1830,1831],{},[24,1832,1834],{"href":1711,"rel":1833},[28],"Gamma PR #8: Product identity and supersession",[1048,1836,1837],{},[24,1838,1840],{"href":1752,"rel":1839},[28],"Gamma PR #11: Client preferences and attribution",[1048,1842,1843],{},[24,1844,1846],{"href":1763,"rel":1845},[28],"NIP-15: Nostr Marketplace",[1048,1848,1849],{},[24,1850,1852],{"href":1797,"rel":1851},[28],"NIP-69: P2P Order Events",[1854,1855,1856],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":237,"searchDepth":676,"depth":676,"links":1858},[1859,1860,1861,1867,1868,1869,1870,1871,1872,1873,1874,1875],{"id":12,"depth":676,"text":13},{"id":42,"depth":676,"text":43},{"id":143,"depth":676,"text":144,"children":1862},[1863,1864,1865,1866],{"id":165,"depth":692,"text":166},{"id":332,"depth":692,"text":333},{"id":452,"depth":692,"text":453},{"id":662,"depth":692,"text":663},{"id":1039,"depth":676,"text":1040},{"id":1095,"depth":676,"text":1096},{"id":1207,"depth":676,"text":1208},{"id":1282,"depth":676,"text":1283},{"id":1645,"depth":676,"text":1646},{"id":1717,"depth":676,"text":1718},{"id":1757,"depth":676,"text":1758},{"id":1791,"depth":676,"text":1792},{"id":1813,"depth":676,"text":1814},"The public offer model: NIP-99 listings, Gamma commerce metadata, product variations, collections, shipping, identity, and legacy interoperability.","md",{},true,"\u002Foffers",{"title":5,"description":1876},"offers","5yUUAtbcJRQlctr4FfETRD2ph_yg-G2MObyrAHGx8Qo",1787278106357]