Orvyn Toolkit
Orvyn’s signed numbers inside the tools people already use: a spreadsheet cell, a page on a site, an automation step, a sensor at home. Each tool reads the same feeds the marketplace sells, so a number in a sheet can be checked the same way as one read by a smart contract.
- Google Sheets add-on
- Excel add-in
- WordPress plugin
- n8n node
- Make app
- Zapier app
- Home Assistant integration
Every tool below works today: download it and install it yourself, or paste a recipe. The store listings, where a click installs, follow one by one. An AI agent can already use every feed through the MCP server, and anything that sends an HTTP request can use the API.
The tools
Recipes
LiveAnyone
Ready to paste templates: an HTTP request for n8n, Zapier and Make, a sensor for Home Assistant, a formula for a spreadsheet, a curl line. No install.
Read the recipes. Copy, paste, done.
Google Sheets add-on
ReadySpreadsheets
Five formulas: the signed value with your key, the delayed preview for free, the value with its unit, the report itself, and a proof link. Cached per heartbeat so a busy sheet does not spend a pack.
Download the script. Unzip, then Extensions, Apps Script, and paste the files in. The Workspace Marketplace listing follows.
Excel add-in
ReadySpreadsheets
The same formulas under the ORVYN namespace, on the web and desktop, with a task pane that keeps your key.
Download the manifest. Save it, then Home, Add-ins, More Add-ins, Upload My Add-in. The AppSource listing follows.
WordPress plugin
ReadySites and blogs
A shortcode that shows a live number with its time, its source and a link to check the report. A thousand readers are one request.
Download the plugin. Plugins, Add New, Upload Plugin, then [orvyn feed="provider/slug"] in any post. The directory listing follows.
n8n node
ReadyAutomation
A Feed node with search, get, preview, latest and history, and a trigger that fires once per new report and spends nothing while it waits.
Download the package. npm install <the download URL> inside your n8n, or Settings, Community nodes once it is on npm.
Make app
ReadyAutomation
Modules to search, read and watch a feed, as a custom app you import yourself.
Download the app files. In the Make developer hub, create an app and paste each file in. The public listing follows.
Zapier app
Waiting on listingAutomation
A New report trigger, a Find feed search and a Read feed action, built on the Zapier platform.
Zapier apps reach users through Zapier alone. Ours is built and goes up as a private app first, by invite link, then public after review.
Home Assistant integration
ReadySmart home
A feed as a sensor with its unit and history, polled at its own heartbeat, for automations like heating water when electricity is cheap.
Download the integration. Unzip into config/custom_components, restart, then Add integration, Orvyn. HACS follows once it has its own repository.
Recipes: paste and go
Each recipe reads orvyn/eur-usd-ecb-reference, a feed on sale today. Swap in any other address from Explore. Two things every recipe does: it scales value by decimals (the report says 10062 with 2 decimals for 100.62), and it asks no more than once per heartbeat, which for this feed is 86,400 seconds.
Terminal
# Free: the delayed preview, no key. curl "https://orvyn.me/gw/v1/feeds/orvyn/eur-usd-ecb-reference/preview" # Signed: the latest report, with a key that carries the read scope (Dashboard > API keys). curl "https://orvyn.me/gw/v1/feeds/orvyn/eur-usd-ecb-reference/latest" -H "Authorization: Bearer lk_…" # The number is report.value scaled by report.decimals. The whole body is the proof: # paste it at https://orvyn.me/verify, or open https://orvyn.me/verify#r=<base64url of the body>.
Google Sheets, without the add-on
Extensions, then Apps Script. Paste, save, and type =ORVYN_PREVIEW("orvyn/eur-usd-ecb-reference") in a cell. The cache keeps a busy sheet at one request per heartbeat.
const ORVYN = 'https://orvyn.me/gw'
/** The delayed, unsigned value of an Orvyn feed. @customfunction */
function ORVYN_PREVIEW(feed) {
const cache = CacheService.getScriptCache()
const hit = cache.get('preview:' + feed)
if (hit) return Number(hit)
const res = UrlFetchApp.fetch(ORVYN + '/v1/feeds/' + feed + '/preview', {muteHttpExceptions: true})
const body = JSON.parse(res.getContentText())
if (res.getResponseCode() !== 200) throw new Error(body.error ? body.error.message : 'Orvyn answered ' + res.getResponseCode())
if (!body.preview) throw new Error('This feed has no report yet')
const value = Number(body.preview.value) / Math.pow(10, body.decimals)
cache.put('preview:' + feed, String(value), 21600)
return value
}n8n, Make, Zapier: one HTTP request step
The same three fields in any of them. Put the key in the tool's credential store, not in the URL. Schedule the step once per heartbeat; a faster poll spends calls for the same report.
Method GET URL https://orvyn.me/gw/v1/feeds/orvyn/eur-usd-ecb-reference/latest Header Authorization: Bearer lk_… (a key with the read scope) Then, in a Set, Code or Formula step: value = Number(report.value) / 10 ** report.decimals observedAt = new Date(Number(report.observedAtMs)) No key? Use https://orvyn.me/gw/v1/feeds/orvyn/eur-usd-ecb-reference/preview instead, and read preview.value with decimals.
Home Assistant
A rest sensor in configuration.yaml. For the signed report, point resource at /latest, add Authorization: Bearer lk_… under headers (from secrets.yaml), and read value_json.report instead of value_json.preview.
rest:
- resource: https://orvyn.me/gw/v1/feeds/orvyn/eur-usd-ecb-reference/preview
scan_interval: 86400
sensor:
- name: "Orvyn orvyn/eur-usd-ecb-reference"
unit_of_measurement: ""
value_template: "{{ (value_json.preview.value | float) / (10 ** value_json.decimals) }}"
json_attributes_path: "$.preview"
json_attributes:
- observedAtMs
- changeBpsExcel, with Power Query
Data, Get Data, From Other Sources, Blank Query, then the Advanced Editor. Refresh on a schedule no shorter than the heartbeat. For the signed report, add Headers=[Authorization="Bearer lk_…"] to Web.Contents and read report.
let
Source = Json.Document(Web.Contents("https://orvyn.me/gw/v1/feeds/orvyn/eur-usd-ecb-reference/preview")),
Value = Number.From(Source[preview][value]) / Number.Power(10, Source[decimals])
in
ValueHow every tool works
01
Free without a key
Each feed has a delayed public preview, unsigned, for display. A tool shows it to anyone who has not paid.
02
Signed with a key
An API key from the dashboard reads the latest signed report from the packs you bought. The tool passes the report on as it is, so it can be checked on the site or on chain.
03
One read per heartbeat
A feed changes at most once per heartbeat, so a tool caches the report until the next one. A sheet that recalculates a hundred times spends one call.
Every tool asks for a key with the read scope only, made under API keys in the dashboard: a leaked read key can spend the calls you already bought and nothing more, and you revoke it there. No tool holds a wallet or pays by itself; packs are bought on the feed’s page.
Tell us what you use
The store listings go up in the order people ask for them. If your tool is missing, or you hit something that does not work, say so.