Datafeeds
Morpheus Datafeeds provide high-integrity price records synchronized directly to Neo N3 Mainnet. Feed publication is isolated onto the dedicated DataFeed CVM so market updates are not delayed by slower request/response workloads.
Operational Architecture
Unlike the request-callback Oracle model, Datafeeds are pre-synchronized state. They operate on an automated operator pipeline:
- The control plane or scheduler triggers a feed tick.
- The dedicated DataFeed CVM fetches and normalizes source quotes.
- Only materially changed quantized values are prepared for publication.
- The relayer pushes the update to the on-chain
MorpheusDataFeed registry.
The DataFeed CVM is the highest-priority Morpheus runtime lane. It stays separate from Oracle request/response execution so continuous price publication remains stable under bursty load.
Supported Assets
Configured Default Pair Catalog (34)
TWELVEDATA:NEO-USDTWELVEDATA:GAS-USDTWELVEDATA:FLM-USDTWELVEDATA:BTC-USDTWELVEDATA:ETH-USDTWELVEDATA:SOL-USDTWELVEDATA:TRX-USDTWELVEDATA:PAXG-USDTWELVEDATA:WTI-USDTWELVEDATA:BRENT-USDTWELVEDATA:NATGAS-USDTWELVEDATA:COPPER-USDTWELVEDATA:WHEAT-USDTWELVEDATA:CORN-USDTWELVEDATA:SOY-USDTWELVEDATA:USDT-USDTWELVEDATA:USDC-USDTWELVEDATA:BNB-USDTWELVEDATA:XRP-USDTWELVEDATA:DOGE-USDTWELVEDATA:AAPL-USDTWELVEDATA:GOOGL-USDTWELVEDATA:MSFT-USDTWELVEDATA:AMZN-USDTWELVEDATA:TSLA-USDTWELVEDATA:META-USDTWELVEDATA:NVDA-USDTWELVEDATA:SPY-USDTWELVEDATA:QQQ-USDTWELVEDATA:GLD-USDTWELVEDATA:EUR-USDTWELVEDATA:GBP-USDTWELVEDATA:JPY-USDTWELVEDATA:CNY-USD
Data Storage Format
All prices are stored as scaled USD integers with a global precision of 1 USD = 1,000,000 units.
- A price of
$12.50 is stored as 12500000. - A price of
$65,000.00 is stored as 65000000000. - A price of
$0.002437 is stored as 2437, which is enough to represent low-priced assets such as FLM directly. - The 0.1% sync threshold is evaluated against the quantized on-chain integer value. The canonical storage key keeps the source prefix, for example
TWELVEDATA:FLM-USD and TWELVEDATA:JPY-USD.
Canonical Pair Meanings
Contracts and users should use the pair keys exactly as written below. The canonical key format is provider-scoped, so the standard catalog uses identifiers such as TWELVEDATA:NEO-USD and TWELVEDATA:BTC-USD.
| Pair | Category | Meaning | TwelveData Symbol | On-Chain Unit |
|---|
| TWELVEDATA:NEO-USD | Crypto | Price of 1 NEO in USD | NEO/USD | 1 NEO |
| TWELVEDATA:GAS-USD | Crypto | Price of 1 GAS in USD | GAS/USD | 1 GAS |
| TWELVEDATA:FLM-USD | Crypto | Price of 1 FLM in USD With the global 1 USD = 1,000,000 scale, FLM is represented directly without a basket multiplier. | FLM/USD | 1 FLM |
| TWELVEDATA:BTC-USD | Crypto | Price of 1 BTC in USD | BTC/USD | 1 BTC |
| TWELVEDATA:ETH-USD | Crypto | Price of 1 ETH in USD | ETH/USD | 1 ETH |
| TWELVEDATA:SOL-USD | Crypto | Price of 1 SOL in USD | SOL/USD | 1 SOL |
| TWELVEDATA:TRX-USD | Crypto | Price of 1 TRX in USD | TRX/USD | 1 TRX |
| TWELVEDATA:PAXG-USD | Crypto | Price of 1 PAXG token in USD | PAXG/USD | 1 PAXG |
| TWELVEDATA:WTI-USD | Commodity | WTI crude oil reference price in USD | WTI/USD | WTI reference unit |
| TWELVEDATA:BRENT-USD | Commodity | Brent crude spot reference price in USD | XBR/USD | Brent spot reference unit |
| TWELVEDATA:NATGAS-USD | Commodity | Natural gas reference price in USD | NG/USD | Natural gas reference unit |
| TWELVEDATA:COPPER-USD | Commodity | Copper front-month futures proxy in USD Uses TwelveData copper futures symbol HG1. | HG1 | 1 copper futures reference unit |
| TWELVEDATA:WHEAT-USD | Commodity | Wheat front-month futures proxy in USD Uses TwelveData agricultural futures symbol W_1. | W_1 | 1 wheat futures reference unit |
| TWELVEDATA:CORN-USD | Commodity | Corn front-month futures proxy in USD Uses TwelveData agricultural futures symbol C_1. | C_1 | 1 corn futures reference unit |
| TWELVEDATA:SOY-USD | Commodity | Soybean front-month futures proxy in USD Uses TwelveData agricultural futures symbol S_1. | S_1 | 1 soybean futures reference unit |
| TWELVEDATA:USDT-USD | Crypto | Price of 1 USDT in USD | USDT/USD | 1 USDT |
| TWELVEDATA:USDC-USD | Crypto | Price of 1 USDC in USD | USDC/USD | 1 USDC |
| TWELVEDATA:BNB-USD | Crypto | Price of 1 BNB in USD | BNB/USD | 1 BNB |
| TWELVEDATA:XRP-USD | Crypto | Price of 1 XRP in USD | XRP/USD | 1 XRP |
| TWELVEDATA:DOGE-USD | Crypto | Price of 1 DOGE in USD | DOGE/USD | 1 DOGE |
| TWELVEDATA:AAPL-USD | Equity | Price of 1 AAPL share in USD | AAPL | 1 share |
| TWELVEDATA:GOOGL-USD | Equity | Price of 1 GOOGL share in USD | GOOGL | 1 share |
| TWELVEDATA:MSFT-USD | Equity | Price of 1 MSFT share in USD | MSFT | 1 share |
| TWELVEDATA:AMZN-USD | Equity | Price of 1 AMZN share in USD | AMZN | 1 share |
| TWELVEDATA:TSLA-USD | Equity | Price of 1 TSLA share in USD | TSLA | 1 share |
| TWELVEDATA:META-USD | Equity | Price of 1 META share in USD | META | 1 share |
| TWELVEDATA:NVDA-USD | Equity | Price of 1 NVDA share in USD | NVDA | 1 share |
| TWELVEDATA:SPY-USD | ETF | Price of 1 SPY share in USD | SPY | 1 ETF share |
| TWELVEDATA:QQQ-USD | ETF | Price of 1 QQQ share in USD | QQQ | 1 ETF share |
| TWELVEDATA:GLD-USD | ETF | Price of 1 GLD share in USD | GLD | 1 ETF share |
| TWELVEDATA:EUR-USD | FX | Price of 1 EUR in USD | EUR/USD | 1 EUR |
| TWELVEDATA:GBP-USD | FX | Price of 1 GBP in USD | GBP/USD | 1 GBP |
| TWELVEDATA:JPY-USD | FX | Price of 1 JPY in USD Fetched as USD/JPY, then inverted. | USD/JPY | 1 JPY |
| TWELVEDATA:CNY-USD | FX | Price of 1 CNY in USD Fetched as USD/CNY, then inverted. | USD/CNY | 1 CNY |
Contract Integration
Neo N3 (C#)
Use the contract hash 0x03013f49c42a14546c8bbe58f9d434c3517fccab or resolve the NeoNS alias pricefeed.morpheus.neo to the same script hash.
public static void CheckLiquidation() {
object[] record = (object[])Contract.Call(
DataFeedHash,
"getLatest",
CallFlags.ReadOnly,
"TWELVEDATA:NEO-USD"
);
BigInteger priceUnits = (BigInteger)record[2];
BigInteger lastUpdate = (BigInteger)record[3];
}
|
Public documentation currently covers the Neo N3 feed read path only. Any Neo X datafeed interfaces left in-repo are archived reference material and are not the supported integration target.
Mainnet feeds are automatically scanned every 60 seconds. For each storage pair, the relayer compares the fresh source quote against the current on-chain stored integer value using the global 1 USD = 1,000,000 scale. Only pairs whose change versus the quantized on-chain value is at least 0.1% are submitted, and all qualifying pairs are batched into a single updateFeeds transaction.