@jonathanbulkeley/plugin-mycelia-signal 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,190 +1,209 @@
1
- # @elizaos/plugin-mycelia-signal
1
+ # @jonathanbulkeley/plugin-mycelia-signal
2
2
 
3
- Mycelia Signal sovereign price oracle plugin for ElizaOS.
3
+ **Mycelia Signal sovereign price oracle plugin for ElizaOS.**
4
4
 
5
- Provides cryptographically signed price attestations for BTC, ETH, SOL, XAU, and EUR pairs. Every response is a canonical signed payload pair, price, sources, aggregation method, timestamp, and nonce independently verifiable against a known public key. No vendor trust required.
5
+ 56 endpoints covering crypto pairs, FX rates, economic indicators, and commodities. Every response is cryptographically signed and independently verifiable. No API keys. No accounts. Pay per query via Lightning (L402) or USDC on Base (x402).
6
6
 
7
- **Payment options:**
8
- - **L402** — pay per query in Bitcoin sats via Lightning Network
9
- - **x402** — pay per query in USDC on Base
7
+ [![npm version](https://img.shields.io/npm/v/@jonathanbulkeley/plugin-mycelia-signal.svg)](https://www.npmjs.com/package/@jonathanbulkeley/plugin-mycelia-signal)
8
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
10
9
 
11
- No API keys. No subscriptions. No accounts.
10
+ ---
11
+
12
+ ## What is Mycelia Signal?
13
+
14
+ Mycelia Signal is a sovereign oracle — a price and data attestation service that signs every response with a cryptographic key. Agents and applications can verify that data came from Mycelia Signal and has not been tampered with, without trusting any intermediary.
15
+
16
+ - **L402 (Lightning):** Pay in sats. secp256k1 ECDSA signatures. Bitcoin-native.
17
+ - **x402 (USDC on Base):** Pay in USDC. Ed25519 signatures. EVM-native.
18
+ - **56 endpoints:** Crypto, FX, economic indicators, commodities.
19
+ - **Preview mode:** Append `/preview` to any endpoint for free unsigned sample data.
20
+
21
+ Docs: [myceliasignal.com/docs](https://myceliasignal.com/docs)
12
22
 
13
23
  ---
14
24
 
15
- ## Supported Pairs
16
-
17
- | Pair | Description | Cost (L402) | Cost (x402) |
18
- |------|-------------|-------------|-------------|
19
- | BTC/USD | Bitcoin / US Dollar spot | 10 sats | $0.001 |
20
- | BTC/USD VWAP | Bitcoin / US Dollar 5-min VWAP | 20 sats | $0.002 |
21
- | ETH/USD | Ethereum / US Dollar spot | 10 sats | $0.001 |
22
- | EUR/USD | Euro / US Dollar spot | 10 sats | $0.001 |
23
- | XAU/USD | Gold / US Dollar spot | 10 sats | $0.001 |
24
- | SOL/USD | Solana / US Dollar spot | 10 sats | $0.001 |
25
- | BTC/EUR | Bitcoin / Euro spot | 10 sats | $0.001 |
26
- | BTC/EUR VWAP | Bitcoin / Euro 5-min VWAP | 20 sats | $0.002 |
27
- | ETH/EUR | Ethereum / Euro spot | 10 sats | $0.001 |
28
- | SOL/EUR | Solana / Euro spot | 10 sats | $0.001 |
29
- | XAU/EUR | Gold / Euro spot | 10 sats | $0.001 |
25
+ ## Endpoints
26
+
27
+ ### Crypto Pairs (18 pairs including VWAP)
28
+ BTC/USD, BTC/EUR, BTC/JPY (spot + VWAP), ETH/USD, ETH/EUR, ETH/JPY, SOL/USD, SOL/EUR, SOL/JPY, XRP/USD, ADA/USD, DOGE/USD
29
+
30
+ ### Precious Metals (3 pairs)
31
+ XAU/USD, XAU/EUR, XAU/JPY
32
+
33
+ ### FX Rates (16 pairs)
34
+ EUR/USD, EUR/JPY, EUR/GBP, EUR/CHF, EUR/CNY, EUR/CAD, GBP/USD, GBP/JPY, GBP/CHF, GBP/CNY, GBP/CAD, USD/JPY, USD/CHF, USD/CNY, USD/CAD, CHF/JPY, CHF/CAD, CNY/JPY, CNY/CAD, CAD/JPY
35
+
36
+ ### US Economic Indicators (8 indicators)
37
+ CPI, CPI Core, Unemployment Rate, Nonfarm Payrolls, Fed Funds Rate, GDP, PCE, Yield Curve
38
+
39
+ ### EU Economic Indicators (6 indicators)
40
+ HICP, HICP Core, HICP Services, Unemployment Rate, GDP, Employment
41
+
42
+ ### Commodities (5 indicators)
43
+ WTI Crude, Brent Crude, Natural Gas, Copper, US Dollar Index (DXY)
44
+
45
+ ### Pricing
46
+ | Category | x402 (USDC) | L402 (sats) |
47
+ |----------|-------------|-------------|
48
+ | Price pairs & FX | $0.01 | 10 sats |
49
+ | VWAP pairs | $0.02 | 20 sats |
50
+ | Economic indicators | $0.10 | 1000 sats |
51
+ | Commodities | $0.10 | 1000 sats |
30
52
 
31
53
  ---
32
54
 
33
55
  ## Installation
34
56
 
35
57
  ```bash
36
- npm install @elizaos/plugin-mycelia-signal
58
+ npm install @jonathanbulkeley/plugin-mycelia-signal
37
59
  ```
38
60
 
39
61
  ---
40
62
 
41
63
  ## Usage
42
64
 
43
- ### Basic (no paymentfree endpoints only)
44
-
45
- ```typescript
46
- import { myceliaSignalPlugin } from "@elizaos/plugin-mycelia-signal";
47
-
48
- // In your agent character config:
49
- {
50
- plugins: [myceliaSignalPlugin]
51
- }
52
- ```
65
+ ### Free mode (preview datano payment required)
53
66
 
54
- ### With x402 (USDC on Base)
67
+ The plugin works out of the box with no configuration. Agents can query any supported pair using natural language. Without a payment handler configured, the plugin fetches free unsigned preview data (up to 5 minutes stale).
55
68
 
56
69
  ```typescript
57
- import { createMyceliaSignalPlugin } from "@elizaos/plugin-mycelia-signal";
70
+ import { myceliaSignalPlugin } from '@jonathanbulkeley/plugin-mycelia-signal';
58
71
 
59
- const plugin = createMyceliaSignalPlugin({
60
- x402PaymentHandler: async (paymentDetails) => {
61
- // Use Coinbase AgentKit, Viem, or any EVM wallet to pay USDC on Base
62
- // Returns the X-Payment header value
63
- const payment = await yourWallet.payX402(paymentDetails);
64
- return payment.header;
65
- }
72
+ const agent = new AgentRuntime({
73
+ plugins: [myceliaSignalPlugin],
74
+ // ... other config
66
75
  });
67
76
  ```
68
77
 
69
- ### With L402 (Lightning)
78
+ ### Paid mode — L402 (Lightning)
79
+
80
+ Configure a Lightning payment handler to receive signed attestations:
70
81
 
71
82
  ```typescript
72
- import { createMyceliaSignalPlugin } from "@elizaos/plugin-mycelia-signal";
83
+ import { createMyceliaSignalPlugin } from '@jonathanbulkeley/plugin-mycelia-signal';
73
84
 
74
85
  const plugin = createMyceliaSignalPlugin({
75
- preferL402: true,
76
- lightningMacaroon: "your-macaroon",
77
- lightningPreimageFetcher: async (invoice) => {
78
- // Use your Lightning wallet SDK to pay the invoice
79
- // Returns the payment preimage
80
- const result = await yourLightningWallet.payInvoice(invoice);
81
- return result.preimage;
82
- }
86
+ lightningPreimageFetcher: async (invoice: string) => {
87
+ // Pay the invoice with your Lightning node/wallet and return the preimage
88
+ const preimage = await yourLightningNode.payInvoice(invoice);
89
+ return preimage;
90
+ },
83
91
  });
84
92
  ```
85
93
 
86
- ### With Coinbase AgentKit (recommended for AI agents)
94
+ ### Paid mode x402 (USDC on Base)
87
95
 
88
96
  ```typescript
89
- import { createMyceliaSignalPlugin } from "@elizaos/plugin-mycelia-signal";
90
- import { CdpWalletProvider } from "@coinbase/agentkit";
91
-
92
- // AgentKit wallet on Base — pays x402 natively
93
- const walletProvider = await CdpWalletProvider.configureWithWallet({ /* ... */ });
97
+ import { createMyceliaSignalPlugin } from '@jonathanbulkeley/plugin-mycelia-signal';
94
98
 
95
99
  const plugin = createMyceliaSignalPlugin({
96
- x402PaymentHandler: async (paymentDetails) => {
97
- // AgentKit handles x402 payment automatically
98
- return await walletProvider.payX402(paymentDetails);
99
- }
100
+ x402PaymentHandler: async (paymentDetails: unknown) => {
101
+ // Sign and submit the USDC transfer on Base, return the X-Payment header value
102
+ const header = await yourWallet.signX402Payment(paymentDetails);
103
+ return header;
104
+ },
100
105
  });
101
106
  ```
102
107
 
103
108
  ---
104
109
 
105
- ## Agent Actions
110
+ ## Example Queries
106
111
 
107
- Once installed, your ElizaOS agent will respond to natural language queries about prices:
112
+ Agents respond to natural language. Examples:
108
113
 
109
- - *"What's the Bitcoin price?"* → fetches BTC/USD signed attestation
110
- - *"Get me the ETH USD price"* → fetches ETH/USD signed attestation
111
- - *"What's gold trading at?"* → fetches XAU/USD signed attestation
112
- - *"SOL price in euros"* → fetches SOL/EUR signed attestation
113
- - *"BTC VWAP"* → fetches BTC/USD 5-minute VWAP attestation
114
-
115
- Each response includes:
116
- - Current price
117
- - UTC timestamp
118
- - Sources used (exchange names)
119
- - Aggregation method (median or VWAP)
120
- - Cryptographic signature for independent verification
121
- - Public key reference
114
+ - *"What's the Bitcoin price?"*
115
+ - *"Get me the BTC/USD VWAP"*
116
+ - *"What's the current EUR/USD rate?"*
117
+ - *"What's the gold price in USD?"*
118
+ - *"What's US CPI?"*
119
+ - *"Get the Fed Funds Rate"*
120
+ - *"What's the WTI crude oil price?"*
121
+ - *"What's the DXY?"*
122
122
 
123
123
  ---
124
124
 
125
125
  ## Response Format
126
126
 
127
- The plugin returns structured content alongside the natural language response:
127
+ Every paid response includes a signed canonical attestation:
128
128
 
129
129
  ```json
130
130
  {
131
- "pair": "BTCUSD",
132
- "price": "67125.10",
133
- "currency": "USD",
134
- "timestamp": "2026-03-05T14:07:07Z",
135
- "sources": ["binance", "bitstamp", "coinbase", "gemini", "kraken"],
136
- "method": "median",
137
- "signature": "<base64>",
138
- "pubkey": "<hex>",
139
- "canonical": "v1|BTCUSD|67125.10|USD|2|2026-03-05T14:07:07Z|890123|binance,bitstamp,coinbase,gemini,kraken|median"
131
+ "domain": "BTCUSD",
132
+ "canonical": "v1|PRICE|BTCUSD|84231.50|USD|2|binance,bitstamp,coinbase,kraken,...|median|1741514400|482910",
133
+ "signature": "<base64-encoded-signature>",
134
+ "pubkey": "<public-key-hex>",
135
+ "signing_scheme": "secp256k1_ecdsa"
140
136
  }
141
137
  ```
142
138
 
143
- The `canonical` field is the exact string that was signed. To verify independently:
139
+ The `canonical` string is the signed payload. Verify it independently using the public key at [myceliasignal.com/docs/keys](https://myceliasignal.com/docs/keys).
140
+
141
+ ### Canonical Format
142
+ ```
143
+ v1|PRICE|PAIR|PRICE|CURRENCY|DECIMALS|SOURCES|METHOD|TIMESTAMP|NONCE
144
+ ```
145
+
146
+ See [Canonical Format docs](https://myceliasignal.com/docs/canonical-format) for full specification.
147
+
148
+ ---
149
+
150
+ ## Signature Verification
151
+
152
+ ### L402 (secp256k1 ECDSA) — Python
144
153
 
145
154
  ```python
146
- import base64, hashlib
155
+ import hashlib, base64
147
156
  from coincurve import PublicKey
148
157
 
149
- canonical = "v1|BTCUSD|67125.10|..."
150
- signature_b64 = "<signature from response>"
151
- pubkey_hex = "<pubkey from response>"
152
-
153
- msg_hash = hashlib.sha256(canonical.encode()).digest()
154
- pub = PublicKey(bytes.fromhex(pubkey_hex))
155
- sig = base64.b64decode(signature_b64)
156
- valid = pub.verify(sig, msg_hash, hasher=None)
158
+ def verify_l402(response: dict) -> bool:
159
+ msg_hash = hashlib.sha256(response["canonical"].encode()).digest()
160
+ pubkey = PublicKey(bytes.fromhex(response["pubkey"]))
161
+ return pubkey.verify(base64.b64decode(response["signature"]), msg_hash, hasher=None)
157
162
  ```
158
163
 
159
- Full verification guide: https://myceliasignal.com/docs/verification
164
+ ### x402 (Ed25519) — Python
160
165
 
161
- ---
162
-
163
- ## Payment Protocols
166
+ ```python
167
+ import hashlib, base64
168
+ from nacl.signing import VerifyKey
169
+ from nacl.encoding import RawEncoder
170
+
171
+ def verify_x402(response: dict) -> bool:
172
+ msg_hash = hashlib.sha256(response["canonical"].encode()).digest()
173
+ vk = VerifyKey(bytes.fromhex(response["pubkey"]), encoder=RawEncoder)
174
+ try:
175
+ vk.verify(msg_hash, base64.b64decode(response["signature"]))
176
+ return True
177
+ except Exception:
178
+ return False
179
+ ```
164
180
 
165
- ### x402 (USDC on Base) — recommended for AI agents
181
+ Full verification guide: [myceliasignal.com/docs/verification](https://myceliasignal.com/docs/verification)
166
182
 
167
- The x402 protocol is purpose-built for machine-to-machine payments. The agent pays USDC on Base Mainnet and receives the signed attestation in the same HTTP exchange. Compatible with Coinbase AgentKit Agentic Wallets.
183
+ ---
168
184
 
169
- - Asset: USDC on Base (`0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`)
170
- - Docs: https://myceliasignal.com/docs/x402
185
+ ## Public Keys
171
186
 
172
- ### L402 (Lightning Network) for Bitcoin-native agents
187
+ Each GC node uses its own per-instance keypair:
173
188
 
174
- The L402 protocol uses HTTP 402 with a Lightning invoice and macaroon. Pay the invoice, extract the preimage, resend the request.
189
+ | Node | Protocol | Public Key |
190
+ |------|----------|------------|
191
+ | US GC | L402 (secp256k1) | `03c1955b8c543494c4ecd86d167105bcc7ca9a91b8e06cb9d6601f2f55a89abfbf` |
192
+ | Asia GC | L402 (secp256k1) | `02b1377c30c7dcfcba428cf299c18782856a12eb4fab32b87081460f4ba2deab73` |
193
+ | US GC | x402 (Ed25519) | `f4f0e52b5f7b54831f965632bf1ebf72769beda4c4e3d36a593f7729ec812615` |
194
+ | Asia GC | x402 (Ed25519) | `7ab07fbe7d08cd16823e5eb0db0e21f3f38e9366d5fd00d14e95df0fb9b51a1a` |
175
195
 
176
- - Cost: 10–20 sats per query
177
- - Docs: https://myceliasignal.com/docs/l402
196
+ Full public keys page: [myceliasignal.com/docs/keys](https://myceliasignal.com/docs/keys)
178
197
 
179
198
  ---
180
199
 
181
200
  ## Links
182
201
 
183
- - **Documentation:** https://myceliasignal.com/docs
184
- - **API Reference:** https://myceliasignal.com/openapi.json
185
- - **Public Keys:** https://myceliasignal.com/docs/keys
186
- - **GitHub:** https://github.com/jonathanbulkeley/mycelia-signal-sovereign-oracle
187
- - **Support:** info@myceliasignal.com
202
+ - **Website:** [myceliasignal.com](https://myceliasignal.com)
203
+ - **Docs:** [myceliasignal.com/docs](https://myceliasignal.com/docs)
204
+ - **npm:** [npmjs.com/package/@jonathanbulkeley/plugin-mycelia-signal](https://www.npmjs.com/package/@jonathanbulkeley/plugin-mycelia-signal)
205
+ - **GitHub:** [github.com/jonathanbulkeley/elizaos-plugin-mycelia-signal](https://github.com/jonathanbulkeley/elizaos-plugin-mycelia-signal)
206
+ - **API:** [api.myceliasignal.com](https://api.myceliasignal.com)
188
207
 
189
208
  ---
190
209
 
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * Mycelia Signal Plugin for ElizaOS
3
3
  *
4
- * Cryptographically signed price attestations for BTC, ETH, SOL, XAU, EUR pairs.
4
+ * Cryptographically signed price attestations for 56 endpoints:
5
+ * crypto pairs, FX rates, economic indicators, and commodities.
5
6
  * Pay per query via Lightning (L402) or USDC on Base (x402).
6
7
  * Every response is independently verifiable. No vendor trust required.
7
8
  *
@@ -9,13 +10,21 @@
9
10
  */
10
11
  import type { Plugin } from "@elizaos/core";
11
12
  interface OracleResponse {
12
- domain: string;
13
- canonical: string;
13
+ domain?: string;
14
+ canonical?: string;
15
+ canonicalstring?: string;
14
16
  signature: string;
15
17
  pubkey: string;
18
+ signing_scheme?: string;
19
+ region?: string;
20
+ indicator?: string;
21
+ value?: string;
22
+ unit?: string;
23
+ period?: string;
16
24
  }
17
25
  interface ParsedAttestation {
18
26
  version: string;
27
+ type: string;
19
28
  pair: string;
20
29
  price: string;
21
30
  currency: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,MAAM,EASP,MAAM,eAAe,CAAC;AAkBvB,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAkND,wBAAgB,yBAAyB,CAAC,MAAM,GAAE,YAAiB,GAAG,MAAM,CAQ3E;AAED,eAAO,MAAM,mBAAmB,QAA8B,CAAC;AAC/D,eAAe,mBAAmB,CAAC;AACnC,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,MAAM,EASP,MAAM,eAAe,CAAC;AAsEvB,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAsSD,wBAAgB,yBAAyB,CAAC,MAAM,GAAE,YAAiB,GAAG,MAAM,CAQ3E;AAED,eAAO,MAAM,mBAAmB,QAA8B,CAAC;AAC/D,eAAe,mBAAmB,CAAC;AACnC,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -2,7 +2,8 @@
2
2
  /**
3
3
  * Mycelia Signal Plugin for ElizaOS
4
4
  *
5
- * Cryptographically signed price attestations for BTC, ETH, SOL, XAU, EUR pairs.
5
+ * Cryptographically signed price attestations for 56 endpoints:
6
+ * crypto pairs, FX rates, economic indicators, and commodities.
6
7
  * Pay per query via Lightning (L402) or USDC on Base (x402).
7
8
  * Every response is independently verifiable. No vendor trust required.
8
9
  *
@@ -13,39 +14,112 @@ exports.myceliaSignalPlugin = void 0;
13
14
  exports.createMyceliaSignalPlugin = createMyceliaSignalPlugin;
14
15
  const BASE_URL = "https://api.myceliasignal.com";
15
16
  const PAIRS = {
16
- BTCUSD: { endpoint: "/oracle/btcusd", description: "Bitcoin / US Dollar spot price" },
17
- BTCUSD_VWAP: { endpoint: "/oracle/btcusd/vwap", description: "Bitcoin / US Dollar 5-min VWAP" },
18
- ETHUSD: { endpoint: "/oracle/ethusd", description: "Ethereum / US Dollar spot price" },
19
- EURUSD: { endpoint: "/oracle/eurusd", description: "Euro / US Dollar spot price" },
20
- XAUUSD: { endpoint: "/oracle/xauusd", description: "Gold / US Dollar spot price" },
21
- SOLUSD: { endpoint: "/oracle/solusd", description: "Solana / US Dollar spot price" },
22
- BTCEUR: { endpoint: "/oracle/btceur", description: "Bitcoin / Euro spot price" },
23
- BTCEUR_VWAP: { endpoint: "/oracle/btceur/vwap", description: "Bitcoin / Euro 5-min VWAP" },
24
- ETHEUR: { endpoint: "/oracle/etheur", description: "Ethereum / Euro spot price" },
25
- SOLEUR: { endpoint: "/oracle/soleur", description: "Solana / Euro spot price" },
26
- XAUEUR: { endpoint: "/oracle/xaueur", description: "Gold / Euro spot price" },
17
+ // ── Crypto spot ──────────────────────────────────────────────────────────
18
+ BTCUSD: { endpoint: "/oracle/price/btc/usd", description: "Bitcoin / US Dollar spot price" },
19
+ BTCUSD_VWAP: { endpoint: "/oracle/price/btc/usd/vwap", description: "Bitcoin / US Dollar 5-min VWAP" },
20
+ BTCEUR: { endpoint: "/oracle/price/btc/eur", description: "Bitcoin / Euro spot price" },
21
+ BTCEUR_VWAP: { endpoint: "/oracle/price/btc/eur/vwap", description: "Bitcoin / Euro 5-min VWAP" },
22
+ BTCJPY: { endpoint: "/oracle/price/btc/jpy", description: "Bitcoin / Japanese Yen spot price" },
23
+ BTCJPY_VWAP: { endpoint: "/oracle/price/btc/jpy/vwap", description: "Bitcoin / Japanese Yen 5-min VWAP" },
24
+ ETHUSD: { endpoint: "/oracle/price/eth/usd", description: "Ethereum / US Dollar spot price" },
25
+ ETHEUR: { endpoint: "/oracle/price/eth/eur", description: "Ethereum / Euro spot price" },
26
+ ETHJPY: { endpoint: "/oracle/price/eth/jpy", description: "Ethereum / Japanese Yen spot price" },
27
+ SOLUSD: { endpoint: "/oracle/price/sol/usd", description: "Solana / US Dollar spot price" },
28
+ SOLEUR: { endpoint: "/oracle/price/sol/eur", description: "Solana / Euro spot price" },
29
+ SOLJPY: { endpoint: "/oracle/price/sol/jpy", description: "Solana / Japanese Yen spot price" },
30
+ XRPUSD: { endpoint: "/oracle/price/xrp/usd", description: "XRP / US Dollar spot price" },
31
+ ADAUSD: { endpoint: "/oracle/price/ada/usd", description: "Cardano / US Dollar spot price" },
32
+ DOGEUSD: { endpoint: "/oracle/price/doge/usd", description: "Dogecoin / US Dollar spot price" },
33
+ // ── Precious metals ───────────────────────────────────────────────────────
34
+ XAUUSD: { endpoint: "/oracle/price/xau/usd", description: "Gold / US Dollar spot price" },
35
+ XAUEUR: { endpoint: "/oracle/price/xau/eur", description: "Gold / Euro spot price" },
36
+ XAUJPY: { endpoint: "/oracle/price/xau/jpy", description: "Gold / Japanese Yen spot price" },
37
+ // ── FX pairs ──────────────────────────────────────────────────────────────
38
+ EURUSD: { endpoint: "/oracle/price/eur/usd", description: "Euro / US Dollar spot price" },
39
+ EURJPY: { endpoint: "/oracle/price/eur/jpy", description: "Euro / Japanese Yen spot price" },
40
+ EURGBP: { endpoint: "/oracle/price/eur/gbp", description: "Euro / British Pound spot price" },
41
+ EURCHF: { endpoint: "/oracle/price/eur/chf", description: "Euro / Swiss Franc spot price" },
42
+ EURCNY: { endpoint: "/oracle/price/eur/cny", description: "Euro / Chinese Yuan spot price" },
43
+ EURCAD: { endpoint: "/oracle/price/eur/cad", description: "Euro / Canadian Dollar spot price" },
44
+ GBPUSD: { endpoint: "/oracle/price/gbp/usd", description: "British Pound / US Dollar spot price" },
45
+ GBPJPY: { endpoint: "/oracle/price/gbp/jpy", description: "British Pound / Japanese Yen spot price" },
46
+ GBPCHF: { endpoint: "/oracle/price/gbp/chf", description: "British Pound / Swiss Franc spot price" },
47
+ GBPCNY: { endpoint: "/oracle/price/gbp/cny", description: "British Pound / Chinese Yuan spot price" },
48
+ GBPCAD: { endpoint: "/oracle/price/gbp/cad", description: "British Pound / Canadian Dollar spot price" },
49
+ USDJPY: { endpoint: "/oracle/price/usd/jpy", description: "US Dollar / Japanese Yen spot price" },
50
+ USDCHF: { endpoint: "/oracle/price/usd/chf", description: "US Dollar / Swiss Franc spot price" },
51
+ USDCNY: { endpoint: "/oracle/price/usd/cny", description: "US Dollar / Chinese Yuan spot price" },
52
+ USDCAD: { endpoint: "/oracle/price/usd/cad", description: "US Dollar / Canadian Dollar spot price" },
53
+ CHFJPY: { endpoint: "/oracle/price/chf/jpy", description: "Swiss Franc / Japanese Yen spot price" },
54
+ CHFCAD: { endpoint: "/oracle/price/chf/cad", description: "Swiss Franc / Canadian Dollar spot price" },
55
+ CNYJPY: { endpoint: "/oracle/price/cny/jpy", description: "Chinese Yuan / Japanese Yen spot price" },
56
+ CNYCAD: { endpoint: "/oracle/price/cny/cad", description: "Chinese Yuan / Canadian Dollar spot price" },
57
+ CADJPY: { endpoint: "/oracle/price/cad/jpy", description: "Canadian Dollar / Japanese Yen spot price" },
58
+ // ── US Economic Indicators ────────────────────────────────────────────────
59
+ US_CPI: { endpoint: "/oracle/econ/us/cpi", description: "US CPI (headline inflation, BLS)" },
60
+ US_CPI_CORE: { endpoint: "/oracle/econ/us/cpi_core", description: "US CPI Core (ex food & energy, BLS)" },
61
+ US_UNRATE: { endpoint: "/oracle/econ/us/unrate", description: "US Unemployment Rate (BLS)" },
62
+ US_NFP: { endpoint: "/oracle/econ/us/nfp", description: "US Nonfarm Payrolls (BLS)" },
63
+ US_FEDFUNDS: { endpoint: "/oracle/econ/us/fedfunds", description: "US Federal Funds Rate (FRED)" },
64
+ US_GDP: { endpoint: "/oracle/econ/us/gdp", description: "US GDP (BEA/FRED)" },
65
+ US_PCE: { endpoint: "/oracle/econ/us/pce", description: "US PCE Price Index (BEA/FRED)" },
66
+ US_YIELD_CURVE: { endpoint: "/oracle/econ/us/yield_curve", description: "US 10Y-2Y Yield Curve Spread (FRED)" },
67
+ // ── EU Economic Indicators ────────────────────────────────────────────────
68
+ EU_HICP: { endpoint: "/oracle/econ/eu/hicp", description: "EU HICP Headline Inflation (Eurostat)" },
69
+ EU_HICP_CORE: { endpoint: "/oracle/econ/eu/hicp_core", description: "EU HICP Core Inflation (Eurostat)" },
70
+ EU_HICP_SERVICES: { endpoint: "/oracle/econ/eu/hicp_services", description: "EU HICP Services Inflation (Eurostat)" },
71
+ EU_UNRATE: { endpoint: "/oracle/econ/eu/unrate", description: "EU Unemployment Rate (Eurostat)" },
72
+ EU_GDP: { endpoint: "/oracle/econ/eu/gdp", description: "EU GDP (Eurostat)" },
73
+ EU_EMPLOYMENT: { endpoint: "/oracle/econ/eu/employment", description: "EU Employment (Eurostat)" },
74
+ // ── Commodities ───────────────────────────────────────────────────────────
75
+ WTI: { endpoint: "/oracle/econ/commodities/wti", description: "WTI Crude Oil price (EIA/FRED)" },
76
+ BRENT: { endpoint: "/oracle/econ/commodities/brent", description: "Brent Crude Oil price (EIA/FRED)" },
77
+ NATGAS: { endpoint: "/oracle/econ/commodities/natgas", description: "Henry Hub Natural Gas price (EIA/FRED)" },
78
+ COPPER: { endpoint: "/oracle/econ/commodities/copper", description: "Copper price (FRED)" },
79
+ DXY: { endpoint: "/oracle/econ/commodities/dxy", description: "US Dollar Index (Federal Reserve)" },
27
80
  };
28
81
  function parseCanonical(canonical) {
29
82
  const parts = canonical.split("|");
83
+ // v1|TYPE|<payload>|TIMESTAMP|NONCE
84
+ // PRICE: v1|PRICE|PAIR|PRICE|CURRENCY|DECIMALS|SOURCES|METHOD|TIMESTAMP|NONCE
85
+ const type = parts[1] ?? "";
86
+ if (type === "PRICE") {
87
+ return {
88
+ version: parts[0],
89
+ type: parts[1],
90
+ pair: parts[2],
91
+ price: parts[3],
92
+ currency: parts[4],
93
+ decimals: parts[5],
94
+ sources: parts[6]?.split(",") ?? [],
95
+ method: parts[7],
96
+ timestamp: parts[8],
97
+ nonce: parts[9],
98
+ };
99
+ }
100
+ // ECON/COMMODITIES — return best-effort
30
101
  return {
31
102
  version: parts[0],
32
- pair: parts[1],
33
- price: parts[2],
34
- currency: parts[3],
35
- decimals: parts[4],
36
- timestamp: parts[5],
37
- nonce: parts[6],
38
- sources: parts[7]?.split(",") ?? [],
39
- method: parts[8],
103
+ type: parts[1],
104
+ pair: `${parts[2]}/${parts[3]}`,
105
+ price: parts[4],
106
+ currency: parts[5],
107
+ decimals: "",
108
+ sources: [parts[8] ?? ""],
109
+ method: parts[10] ?? "",
110
+ timestamp: parts[11] ?? "",
111
+ nonce: parts[12] ?? "",
40
112
  };
41
113
  }
114
+ function getCanonical(raw) {
115
+ return raw.canonical ?? raw.canonicalstring ?? "";
116
+ }
42
117
  function isOracleResponse(data) {
43
118
  return (typeof data === "object" &&
44
119
  data !== null &&
45
- "domain" in data &&
46
- "canonical" in data &&
47
120
  "signature" in data &&
48
- "pubkey" in data);
121
+ "pubkey" in data &&
122
+ (("canonical" in data) || ("canonicalstring" in data)));
49
123
  }
50
124
  async function fetchAttestation(endpoint, config = {}) {
51
125
  const url = `${BASE_URL}${endpoint}`;
@@ -55,7 +129,7 @@ async function fetchAttestation(endpoint, config = {}) {
55
129
  const raw = await response.json();
56
130
  if (!isOracleResponse(raw))
57
131
  return null;
58
- return { attestation: raw, parsed: parseCanonical(raw.canonical) };
132
+ return { attestation: raw, parsed: parseCanonical(getCanonical(raw)) };
59
133
  }
60
134
  if (response.status === 402) {
61
135
  const wwwAuth = response.headers.get("WWW-Authenticate");
@@ -73,7 +147,7 @@ async function fetchAttestation(endpoint, config = {}) {
73
147
  const raw = await paid.json();
74
148
  if (!isOracleResponse(raw))
75
149
  return null;
76
- return { attestation: raw, parsed: parseCanonical(raw.canonical) };
150
+ return { attestation: raw, parsed: parseCanonical(getCanonical(raw)) };
77
151
  }
78
152
  }
79
153
  }
@@ -88,7 +162,7 @@ async function fetchAttestation(endpoint, config = {}) {
88
162
  const raw = await paid.json();
89
163
  if (!isOracleResponse(raw))
90
164
  return null;
91
- return { attestation: raw, parsed: parseCanonical(raw.canonical) };
165
+ return { attestation: raw, parsed: parseCanonical(getCanonical(raw)) };
92
166
  }
93
167
  }
94
168
  }
@@ -100,31 +174,90 @@ async function fetchAttestation(endpoint, config = {}) {
100
174
  }
101
175
  }
102
176
  function formatMessage(parsed, raw) {
177
+ const isEcon = parsed.type === "ECON" || parsed.type === "COMMODITIES";
178
+ if (isEcon) {
179
+ return [
180
+ `**${parsed.pair}**: ${parsed.price} ${parsed.currency}`,
181
+ `Period: ${parsed.method}`,
182
+ `Source: ${parsed.sources.join(", ")}`,
183
+ `Signature: ${raw.signature.substring(0, 16)}...`,
184
+ `Verify: https://myceliasignal.com/docs/verification`,
185
+ ].join("\n");
186
+ }
103
187
  const price = parseFloat(parsed.price).toLocaleString("en-US", {
104
188
  minimumFractionDigits: 2,
105
189
  maximumFractionDigits: 2,
106
190
  });
107
191
  const symbol = parsed.currency === "USD" ? "$" : parsed.currency === "EUR" ? "€" : "";
192
+ const ts = parseInt(parsed.timestamp)
193
+ ? new Date(parseInt(parsed.timestamp) * 1000).toUTCString()
194
+ : parsed.timestamp;
108
195
  return [
109
196
  `**${parsed.pair}** ${parsed.method.toUpperCase()}: ${symbol}${price} ${parsed.currency}`,
110
- `Timestamp: ${new Date(parsed.timestamp).toUTCString()}`,
197
+ `Timestamp: ${ts}`,
111
198
  `Sources (${parsed.sources.length}): ${parsed.sources.join(", ")}`,
112
- `Signature: ${raw.signature.substring(0, 16)}...`,
199
+ `Signature: ${raw.signature.substring(0, 16)}... (${raw.signing_scheme ?? "secp256k1_ecdsa"})`,
113
200
  `Verify: https://myceliasignal.com/docs/verification`,
114
201
  ].join("\n");
115
202
  }
116
203
  const PAIR_KEYWORDS = {
117
- BTCUSD: ["btc", "bitcoin", "btcusd", "bitcoin price", "btc price"],
118
- BTCUSD_VWAP: ["btc vwap", "bitcoin vwap", "vwap bitcoin"],
119
- ETHUSD: ["eth", "ethereum", "ethusd", "eth price", "ethereum price"],
120
- EURUSD: ["eurusd", "eur/usd", "euro dollar", "euro usd"],
121
- XAUUSD: ["gold", "xau", "xauusd", "gold price"],
122
- SOLUSD: ["sol", "solana", "solusd", "sol price", "solana price"],
123
- BTCEUR: ["btceur", "btc eur", "bitcoin euro"],
204
+ BTCUSD: ["btc", "bitcoin", "btcusd", "bitcoin price", "btc price", "btc usd"],
205
+ BTCUSD_VWAP: ["btc vwap", "bitcoin vwap", "vwap bitcoin", "btc usd vwap"],
206
+ BTCEUR: ["btceur", "btc eur", "bitcoin euro", "btc euro"],
124
207
  BTCEUR_VWAP: ["btceur vwap", "bitcoin euro vwap"],
208
+ BTCJPY: ["btcjpy", "btc jpy", "bitcoin yen", "btc yen"],
209
+ BTCJPY_VWAP: ["btcjpy vwap", "bitcoin yen vwap"],
210
+ ETHUSD: ["eth", "ethereum", "ethusd", "eth price", "ethereum price", "eth usd"],
125
211
  ETHEUR: ["etheur", "eth eur", "ethereum euro"],
212
+ ETHJPY: ["ethjpy", "eth jpy", "ethereum yen"],
213
+ SOLUSD: ["sol", "solana", "solusd", "sol price", "solana price", "sol usd"],
126
214
  SOLEUR: ["soleur", "sol eur", "solana euro"],
215
+ SOLJPY: ["soljpy", "sol jpy", "solana yen"],
216
+ XRPUSD: ["xrp", "ripple", "xrpusd", "xrp price"],
217
+ ADAUSD: ["ada", "cardano", "adausd", "ada price", "cardano price"],
218
+ DOGEUSD: ["doge", "dogecoin", "dogeusd", "doge price"],
219
+ XAUUSD: ["gold", "xau", "xauusd", "gold price", "xau usd"],
127
220
  XAUEUR: ["xaueur", "xau eur", "gold euro"],
221
+ XAUJPY: ["xaujpy", "xau jpy", "gold yen"],
222
+ EURUSD: ["eurusd", "eur/usd", "euro dollar", "euro usd", "eur usd"],
223
+ EURJPY: ["eurjpy", "eur jpy", "euro yen"],
224
+ EURGBP: ["eurgbp", "eur gbp", "euro pound"],
225
+ EURCHF: ["eurchf", "eur chf", "euro franc"],
226
+ EURCNY: ["eurcny", "eur cny", "euro yuan"],
227
+ EURCAD: ["eurcad", "eur cad", "euro cad"],
228
+ GBPUSD: ["gbpusd", "gbp usd", "pound dollar", "cable"],
229
+ GBPJPY: ["gbpjpy", "gbp jpy", "pound yen"],
230
+ GBPCHF: ["gbpchf", "gbp chf", "pound franc"],
231
+ GBPCNY: ["gbpcny", "gbp cny", "pound yuan"],
232
+ GBPCAD: ["gbpcad", "gbp cad", "pound cad"],
233
+ USDJPY: ["usdjpy", "usd jpy", "dollar yen", "usd/jpy"],
234
+ USDCHF: ["usdchf", "usd chf", "dollar franc"],
235
+ USDCNY: ["usdcny", "usd cny", "dollar yuan"],
236
+ USDCAD: ["usdcad", "usd cad", "dollar cad", "loonie"],
237
+ CHFJPY: ["chfjpy", "chf jpy", "franc yen"],
238
+ CHFCAD: ["chfcad", "chf cad"],
239
+ CNYJPY: ["cnyjpy", "cny jpy", "yuan yen"],
240
+ CNYCAD: ["cnycad", "cny cad"],
241
+ CADJPY: ["cadjpy", "cad jpy", "cad yen"],
242
+ US_CPI: ["us cpi", "cpi", "inflation", "us inflation", "consumer price"],
243
+ US_CPI_CORE: ["core cpi", "cpi core", "core inflation"],
244
+ US_UNRATE: ["us unemployment", "unemployment rate", "jobless rate"],
245
+ US_NFP: ["nfp", "nonfarm payrolls", "payrolls", "jobs report"],
246
+ US_FEDFUNDS: ["fed funds", "federal funds", "fed rate", "interest rate"],
247
+ US_GDP: ["us gdp", "gdp", "economic growth"],
248
+ US_PCE: ["pce", "personal consumption", "pce inflation"],
249
+ US_YIELD_CURVE: ["yield curve", "10y 2y", "10y-2y", "treasury spread"],
250
+ EU_HICP: ["eu hicp", "hicp", "eu inflation", "eurozone inflation"],
251
+ EU_HICP_CORE: ["eu core inflation", "hicp core"],
252
+ EU_HICP_SERVICES: ["eu services inflation", "hicp services"],
253
+ EU_UNRATE: ["eu unemployment", "eurozone unemployment"],
254
+ EU_GDP: ["eu gdp", "eurozone gdp"],
255
+ EU_EMPLOYMENT: ["eu employment", "eurozone employment"],
256
+ WTI: ["wti", "crude oil", "oil price", "west texas"],
257
+ BRENT: ["brent", "brent crude", "brent oil"],
258
+ NATGAS: ["natgas", "natural gas", "henry hub"],
259
+ COPPER: ["copper", "copper price"],
260
+ DXY: ["dxy", "dollar index", "us dollar index"],
128
261
  };
129
262
  function createPriceAction(pair, config) {
130
263
  const pairInfo = PAIRS[pair];
@@ -147,7 +280,7 @@ function createPriceAction(pair, config) {
147
280
  if (!result) {
148
281
  if (callback) {
149
282
  await callback({
150
- text: `Unable to fetch ${pair} price. Payment may be required — configure L402 or x402 handler. See https://myceliasignal.com/docs/quickstart`,
283
+ text: `Unable to fetch ${pair}. Payment may be required — configure L402 or x402 handler. See https://myceliasignal.com/docs/quickstart`,
151
284
  });
152
285
  }
153
286
  return;
@@ -164,7 +297,7 @@ function createPriceAction(pair, config) {
164
297
  method: result.parsed.method,
165
298
  signature: result.attestation.signature,
166
299
  pubkey: result.attestation.pubkey,
167
- canonical: result.attestation.canonical,
300
+ canonical: getCanonical(result.attestation),
168
301
  },
169
302
  });
170
303
  }
@@ -196,7 +329,7 @@ function createPriceProvider(config) {
196
329
  currency: result.parsed.currency,
197
330
  timestamp: result.parsed.timestamp,
198
331
  sources: result.parsed.sources,
199
- canonical: result.attestation.canonical,
332
+ canonical: getCanonical(result.attestation),
200
333
  },
201
334
  };
202
335
  },
@@ -205,7 +338,7 @@ function createPriceProvider(config) {
205
338
  function createMyceliaSignalPlugin(config = {}) {
206
339
  return {
207
340
  name: "@elizaos/plugin-mycelia-signal",
208
- description: "Mycelia Signal sovereign price oracle — cryptographically signed price attestations for BTC, ETH, SOL, XAU, EUR pairs via Lightning (L402) or USDC on Base (x402). Every response is independently verifiable. No vendor trust required.",
341
+ description: "Mycelia Signal sovereign oracle — 56 endpoints covering crypto pairs, FX rates, economic indicators, and commodities. Cryptographically signed attestations via Lightning (L402, secp256k1 ECDSA) or USDC on Base (x402, Ed25519). Every response independently verifiable. No vendor trust required.",
209
342
  actions: Object.keys(PAIRS).map(pair => createPriceAction(pair, config)),
210
343
  providers: [createPriceProvider(config)],
211
344
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jonathanbulkeley/plugin-mycelia-signal",
3
- "version": "1.0.0",
4
- "description": "Mycelia Signal sovereign price oracle plugin for ElizaOS — cryptographically signed price attestations for BTC, ETH, SOL, XAU, EUR pairs via Lightning (L402) or USDC on Base (x402)",
3
+ "version": "1.1.1",
4
+ "description": "Mycelia Signal sovereign oracle plugin for ElizaOS — 56 endpoints covering crypto pairs, FX rates, economic indicators, and commodities. Cryptographically signed attestations via Lightning (L402) or USDC on Base (x402)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
@@ -17,6 +17,10 @@
17
17
  "price-feed",
18
18
  "bitcoin",
19
19
  "crypto",
20
+ "fx",
21
+ "forex",
22
+ "economic-indicators",
23
+ "commodities",
20
24
  "lightning",
21
25
  "l402",
22
26
  "x402",