diff --git a/85.md b/85.md new file mode 100644 index 0000000000..46e3b0fd00 --- /dev/null +++ b/85.md @@ -0,0 +1,61 @@ +NIP-85 +====== + +Asset Prices +------------ + +`draft` `optional` + +This NIP defines event kinds to host asset prices. + +## Latest Price + +Kind `31892` stores the latest conversion price. The `d` tag contains the commonly used ticket conversion symbol for the pair. The `value` tag contains the amount, parseable to a Decimal. `n` tags separate the pair into the two ticket symbols. The event's `created_at` field MUST be used as the date/time of the conversion value. + +```js +{ + "kind": 31892, + "tags": [ + ["d", "BTCUSD"], + ["n", "BTC"], + ["n", "USD"], + ["value", "100000"] + ], + // other fields +} +``` + +Since this is a replaceable event, only the latest price will be available. + +## Historical Data + +Historical prices can be found as `1892` events with the same structure as `31892`. Historical queries can then use Nostr's `since` and `until` filters to narrow the search. + +```js +{ + "kind": 1892, + "tags": [ + ["d", "BTCUSD"], + ["n", "BTC"], + ["n", "USD"], + ["value", "100000"] + ], + // other fields +} +``` + +Even though these events use the `d` tag, they are not replaceable. + +## Declaring Pricing Providers + +Kind 10041 lists the user's authorized providers for pricing services. It contains `s` tags with the provider's pubkey and the relay where those events are stored. + +```js +{ + "kind": 10041, + "tags": [ + ["s", "4fd5e210530e4f6b2cb083795834bfe5108324f1ed9f00ab73b9e8fcfe5f12fe", "wss://bitagent.prices"], + ], + //... +} +```