EXTENDED DOCUMENTATION

Testing Ledger

Last updated: 2026-03-11

This document is the canonical test ledger for the current Neo Morpheus Oracle repository state.

It answers four questions:

  1. What code was used for validation?
  2. What network / contracts / TEE deployment were tested?
  3. Which on-chain transactions were produced by the tests?
  4. What exact results were accepted?

Use this document together with:

  • text
    docs/ACCEPTANCE_REPORT_2026-03-10.md
  • text
    docs/MAINNET_PRIVACY_VALIDATION_2026-03-11.md
  • text
    examples/deployments/mainnet-privacy-validation.latest.json

1. Canonical Environment

Neo N3 Mainnet

  • Oracle contract:
    text
    0x017520f068fd602082fe5572596185e62a4ad991
  • Oracle NeoNS:
    text
    oracle.morpheus.neo
  • Datafeed contract:
    text
    0x03013f49c42a14546c8bbe58f9d434c3517fccab
  • Datafeed NeoNS:
    text
    pricefeed.morpheus.neo
  • Callback consumer:
    text
    0xe1226268f2fe08bea67fb29e1c8fda0d7c8e9844
  • Example validation consumer:
    text
    0x89b05cac00804648c666b47ecb1c57bc185821b7
  • Example reader:
    text
    0x11e454261c21a32f1c9262472ca72a3156f9051f
  • Request fee:
    text
    1000000
    datoshi =
    text
    0.01 GAS
  • Public confidential payload algorithm:
    text
    X25519-HKDF-SHA256-AES-256-GCM
  • Oracle encryption metadata publish tx:
    text
    0xb68299bbc0aa1b8529acdcda3877378ded1f0f29500a2e13f5638e3ec081bd2a

Phala Runtime

  • App id:
    text
    966f16610bdfe1794a503e16c5ae0bc69a1d92f1
  • Public endpoint:
    text
    https://966f16610bdfe1794a503e16c5ae0bc69a1d92f1-80.dstack-pha-prod9.phala.network
  • Verified
    text
    /oracle/public-key
    response:
    • text
      algorithm = X25519-HKDF-SHA256-AES-256-GCM
    • text
      public_key_format = raw
    • text
      key_source = dstack-sealed
  • Current validated compose hash from the latest mainnet privacy matrix:
    • text
      0529396fc1e09cbb7b0078ef960a0d26d2cf4a04550378057702026de7423615

2. Code Under Test

AreaPrimary codeSupporting codeWhat it validates
N3 Oracle callback example
text
examples/scripts/test-n3-examples.mjs
text
examples/contracts/n3/UserConsumerN3.cs
,
text
examples/contracts/n3/FeedReaderN3.cs
Provider callback, encrypted compute callback, sponsored callback, custom URL callback, on-chain feed read
Mainnet privacy matrix
text
examples/scripts/test-n3-privacy-matrix.mjs
text
examples/scripts/common.mjs
Public params, encrypted params, encrypted payloads, custom URL, custom JS, callback verification envelope
N3 builtin suite
text
examples/scripts/test-n3-builtins.mjs
text
examples/scripts/lib-builtins.mjs
All builtin compute families and expected outputs
N3 automation
text
examples/scripts/test-n3-automation.mjs
Supabase-backed automation tablesOne-shot registration, queued execution, interval registration, cancellation, Supabase persistence
Worker runtime
text
workers/phala-worker/worker.test.mjs
worker runtime modules under
text
workers/phala-worker/src/
X25519 transport, timeouts, script isolation, WASM runtime, feed batching, relayer helpers
Frontend / docs consistency
text
scripts/check-web-consistency.mjs
text
apps/web/
,
text
workers/phala-worker/src/
,
text
config/networks/mainnet.json
Builtin catalog parity, feed pair parity, mainnet address parity, stale-doc regression detection
Frontend production build
text
npm run build:web
text
apps/web/
Type-safe production frontend build and route generation

3. Artifact Index

ArtifactKindNetworkNotes
text
docs/MAINNET_PRIVACY_VALIDATION_2026-03-11.md
Human reportNeo N3 mainnetFull 7-case confidential Oracle / compute matrix
text
examples/deployments/mainnet-privacy-validation.latest.json
Machine-readable reportNeo N3 mainnetSame matrix as JSON
text
docs/N3_EXAMPLES_VALIDATION_MAINNET_2026-03-11.md
Human reportNeo N3 mainnetLatest mainnet example-consumer provider / compute / sponsored / custom URL / feed read run
text
examples/deployments/n3-examples-validation.mainnet.latest.json
Machine-readable reportNeo N3 mainnetSame latest example-consumer run as JSON
text
docs/FEED_SOURCE_VALIDATION_MAINNET_2026-03-11.md
Human reportTwelveData source validationVerifies current canonical feed catalog mappings against the live source API
text
examples/deployments/feed-source-validation.mainnet.latest.json
Machine-readable reportTwelveData source validationSame source-validation run as JSON
text
docs/ACCEPTANCE_REPORT_2026-03-10.md
Acceptance reportNeo N3 mainnetSmoke, example consumer, builtins, automation, feed sync, operational fixes
text
examples/deployments/test-n3.latest.json
Machine-readable sample reportNeo N3 testnetProvider / compute / custom URL / on-chain feed read
text
examples/deployments/test-neox.latest.json
Partial log onlyNeo X testnetNot a canonical structured validation artifact

Current report generator outputs after the latest script upgrade:

  • text
    examples/scripts/test-n3-examples.mjs
    • JSON latest:
      text
      examples/deployments/n3-examples-validation.<network>.latest.json
    • Markdown:
      text
      docs/N3_EXAMPLES_VALIDATION_<NETWORK>_<DATE>.md
  • text
    examples/scripts/test-n3-builtins.mjs
    • JSON latest:
      text
      examples/deployments/n3-builtins-validation.<network>.latest.json
    • Markdown:
      text
      docs/N3_BUILTINS_VALIDATION_<NETWORK>_<DATE>.md
  • text
    examples/scripts/test-n3-automation.mjs
    • JSON latest:
      text
      examples/deployments/n3-automation-validation.<network>.latest.json
    • Markdown:
      text
      docs/N3_AUTOMATION_VALIDATION_<NETWORK>_<DATE>.md

Catalog note:

  • The historical mainnet acceptance evidence in this ledger still reflects the 14-pair synchronized catalog that was live during the recorded validation window.
  • The repository default feed catalog may be expanded further in code and env configuration after that point; treat new configured pairs as pending sync until a fresh deployment / validation report records them on-chain.

4. Neo N3 Mainnet Transaction Ledger

4.1 Mainnet Privacy Matrix

Source:

  • Script:
    text
    examples/scripts/test-n3-privacy-matrix.mjs
  • JSON:
    text
    examples/deployments/mainnet-privacy-validation.latest.json
  • Markdown:
    text
    docs/MAINNET_PRIVACY_VALIDATION_2026-03-11.md
Case idRequest typeCode pathTxidRequest idResultStatus
text
provider_plain
text
privacy_oracle
builtin provider, public params
text
0x4fb49cff2356fa7b0bb378c294aa0eeac1ddc07b5791ebe7b4c36bd4223bc984
text
108
text
"2.503"
pass
text
provider_encrypted_params
text
privacy_oracle
builtin provider, encrypted
text
json_path
text
0xb23f818efa9a792ecda0e5ee7c6fdea6cbbe2b63a8d2e0462e8227e900dde9cc
text
109
text
"2.503"
pass
text
compute_builtin_encrypted
text
compute
encrypted builtin payload
text
0x6785367384bba7f398a9cdcf3170c702df7cb5b67dbac8d781397bd773d10f85
text
110
text
{"value":"4"}
pass
text
compute_custom_script_encrypted
text
compute
encrypted custom JS compute
text
0xb4ba994236103643d7610ca7b9b7366ee134c65d87fc09fe0ad89603bff0ad14
text
111
text
42
pass
text
oracle_custom_url_encrypted_params
text
oracle
custom URL + encrypted params
text
0x731f9061e56509a795082f4575cf1636bb1c902d628b75186ff6d7e12feed956
text
112
text
"neo-morpheus"
pass
text
oracle_custom_url_encrypted_script
text
oracle
custom URL + encrypted params + custom JS
text
0x57b9618406863a1ed15c6e660900228c40ed695d3dff8de9807b2894171c2d7e
text
113
text
"neo-morpheus-script"
pass
text
provider_encrypted_script
text
privacy_oracle
builtin provider + encrypted custom JS
text
0x4393b903844d51822f28192937652bcc0eb63d400824f3b9bfb34a9e24045d83
text
114
text
true
pass

Operational notes from the same run:

  • text
    request_fee = 1000000
  • text
    request_credit_deposited = 7000000
  • text
    request_credit_remaining = 0
  • All 7 requests produced successful callback envelopes with verification metadata.

4.2 Mainnet Smoke And Example Consumer

Source:

  • text
    docs/ACCEPTANCE_REPORT_2026-03-10.md
  • text
    examples/scripts/test-n3-examples.mjs

Initial live mainnet smoke

CaseTxidRequest idResult
Fresh smoke request
text
0xa7552a5f315caca6ecb1739e9213733cbd0087297173301350123ddacf958759
text
32
text
privacy_oracle
, callback success, extracted value
text
2.509

Mainnet example consumer cases

CaseTxidRequest idResult
Provider callback
text
0x3aacbf7e12e87c73a9d983bf9d2d44fe0de2d2b5df8507df3ee3b825c88bfe8f
text
8
success
Hybrid encrypted compute callback
text
0x8c08206a10bbfe35eb5cf2319adc4294f32b0266dd4cd727047dd464fe746702
text
9
success
Sponsored provider callback
text
0x04e3050db92046b623d8d7634a876b81f28b1b967a4eff75311e443437097e87
text
10
success
Custom URL oracle callback
text
0x16ef1e5be1bea2c6c325ceede7aec0397f5b01eb0f7eab35db4f3d94e3da8a1b
text
11
success
On-chain feed readN/AN/A
text
TWELVEDATA:NEO-USD
, stored integer price
text
252
, display
text
2.52

Latest regenerated mainnet example consumer run

Source:

  • text
    docs/N3_EXAMPLES_VALIDATION_MAINNET_2026-03-11.md
  • text
    examples/deployments/n3-examples-validation.mainnet.latest.json
CaseTxidRequest idResult
Provider callback
text
0x44041c38781f89abbf8ccbaceb6289c00ce23e858272b330fe72be1c6592ba5f
text
115
extracted value
text
2.517
Encrypted compute callback
text
0xb39d14fd8b6fbc4f1adfd9c06de57f7ed83859c58e563088bb5f5081b5375e78
text
116
builtin result
text
4
Sponsored provider callback
text
0x7a9ad19ef845787e4039d25f445fde8773f0b0ce96575bf3d20e81a4adcbfce6
text
117
extracted value
text
2.51
Custom URL oracle callback
text
0x138715d83bf16ecddc3fc94a30c15ee09652f9f8e6fd579a239c72121e195e76
text
118
result
text
neo-morpheus
On-chain feed readN/AN/Areader observed 14 currently synced pairs at report time

Additional mainnet Oracle validation after live hot patch

CaseTxidRequest idResult
Smoke request
text
0xc58a40a1c0153678b6f11d738bb954d11465a2c695fadd5ccd871eceea731b26
text
59
success
Provider callback
text
0xee45e7769dbd148ae461ce7a5441d7a3a8805a9d976878d84ab60a3bb3227994
text
62
success
Hybrid encrypted compute callback
text
0xc82ad15daee3a3a9311b7c675c242856ae2bd121b915bb8f60268bc7742509a0
text
63
success
Sponsored provider callback
text
0x3ef5fd24800e7fb66baffe249c3c217057d31828c0b5f346211f707b35640a07
text
64
success
Custom URL + encrypted params
text
0x070858b7a8802daa4ded16fc85dfde429a6efdb799c27d412fbd3fa0b5c1b1d5
text
65
extracted value
text
neo-morpheus
Custom URL + encrypted params + custom JS
text
0xbd90265c6d881856d16184359afc5cc3aedc93f03ba213e33a5d90834a303289
text
68
final result
text
neo-morpheus-script

4.3 Mainnet Builtin Compute Suite

Source:

  • text
    examples/scripts/test-n3-builtins.mjs
  • text
    examples/scripts/lib-builtins.mjs
  • text
    docs/ACCEPTANCE_REPORT_2026-03-10.md

Accepted result:

  • text
    18 / 18
    builtins succeeded on Neo N3 mainnet
  • Request ids covered:
    text
    12
    through
    text
    29

Validated builtins:

  • text
    hash.sha256
  • text
    hash.keccak256
  • text
    crypto.rsa_verify
  • text
    math.modexp
  • text
    math.polynomial
  • text
    matrix.multiply
  • text
    vector.cosine_similarity
  • text
    merkle.root
  • text
    zkp.public_signal_hash
  • text
    zkp.proof_digest
  • text
    zkp.witness_digest
  • text
    zkp.groth16.prove.plan
  • text
    zkp.plonk.prove.plan
  • text
    fhe.batch_plan
  • text
    fhe.noise_budget_estimate
  • text
    fhe.rotation_plan
  • text
    privacy.mask
  • text
    privacy.add_noise

Expected values are encoded directly in

text
examples/scripts/lib-builtins.mjs
.

4.4 Mainnet Automation Ledger

Source:

  • text
    examples/scripts/test-n3-automation.mjs
  • text
    docs/ACCEPTANCE_REPORT_2026-03-10.md
CaseTxidRequest idAdditional result
One-shot register callback
text
0x63c4758212bbe78433180d4c3ee0e486b4fece7129c93b061ee7a547f0602563
text
51
text
automation_id = automation:neo_n3:1a0ffc4e-7b9d-4599-91f1-45e214b0176f
One-shot queued executionN/A (queued by scheduler)
text
52
text
request_type = privacy_oracle
, extracted value
text
2.52
, Supabase status
text
completed
Interval register callback
text
0x66d08cb3a8a022d3cbe826c8a6697b8b215b9ced889eff332df0f4c3f03140eb
text
53
text
automation_id = automation:neo_n3:683de849-3bd8-4b90-b0de-956777cf1bfa
Automation cancel callback
text
0xea2494c59ee6408475e7b89a60ddf09e80a2c000cab8a28bd87e44086271e62d
text
54
Supabase status
text
cancelled

What this validated:

  • Oracle-gateway registration path
  • Queued execution path
  • Callback delivery path
  • Supabase job / run persistence
  • Cancellation semantics for interval jobs

4.5 Mainnet Pricefeed Sync Ledger

Source:

  • text
    docs/ACCEPTANCE_REPORT_2026-03-10.md
  • live relayer / worker validation during acceptance

Configured policy:

  • text
    MORPHEUS_FEED_CHANGE_THRESHOLD_BPS = 10
  • text
    MORPHEUS_FEED_MIN_UPDATE_INTERVAL_MS = 15000
  • text
    MORPHEUS_FEED_SYNC_INTERVAL_MS = 15000

Accepted observations:

  • All 14 configured pairs were scanned every ~15 seconds.
  • When no pair exceeded
    text
    0.1%
    versus the current on-chain stored value, no chain transaction was sent.
  • When multiple pairs exceeded threshold, they were grouped into one batch
    text
    updateFeeds
    transaction.
  • Threshold comparison is now evaluated against the quantized on-chain integer-cents price, not raw unbounded source decimals.
  • Sub-cent movements that do not change the stored integer-cents value do not emit redundant feed update transactions.

Follow-up verification on 2026-03-11:

  • Added regression coverage for a
    text
    1.00 -> 1.009
    quote move, confirming that a raw
    text
    0.9%
    move still does not publish if the stored chain value remains
    text
    100
    cents.
  • Added application-level attestation verification updates so
    text
    report_data[0:32]
    ,
    text
    output_hash
    , and
    text
    attestation_hash
    are checked consistently in the web verifier and API.

Precision migration verification on 2026-03-11:

  • Global datafeed price precision was migrated from integer cents to
    text
    1 USD = 1,000,000
    units.
  • Canonical pairs now use direct names
    text
    FLM-USD
    and
    text
    JPY-USD
    .
  • Historical basket keys
    text
    TWELVEDATA:1000FLM-USD
    and
    text
    TWELVEDATA:1000JPY-USD
    remain on-chain as deprecated append-only records.
  • Production frontend
    text
    /api/feeds/status
    reported
    text
    configured_pair_count = 34
    ,
    text
    synced_configured_pair_count = 34
    , and
    text
    deprecated_chain_record_count = 2
    after migration.
  • Forced full-batch migration sync transaction:
    • text
      0x6ef958bcfba49ae9ca631cca4f58fbc090627b4d2df5b5b0c39443fcac70b035
  • Sample migrated on-chain values:
    • text
      TWELVEDATA:NEO-USD = 2577000
      ->
      text
      2.577000
    • text
      TWELVEDATA:FLM-USD = 2467
      ->
      text
      0.002467
    • text
      TWELVEDATA:JPY-USD = 6308
      ->
      text
      0.006308

Recorded transactions:

Validation stepTxidResult
Forced full-batch feed sync
text
0xa34fe7c5bfff65d1ead1d9e6be12458dfdcf76253e5694dc24c4b30b42fd1204
single
text
updateFeeds
transaction containing all 14 pairs
Direct operator-triggered single-symbol publish
text
0x39c1a67e5d5ca47728bda6798b17191adfee862a660ac4f317f8f40e492d800c
updated
text
TWELVEDATA:NEO-USD
, round
text
1773053364
, integer price
text
251
Forced full-batch sync after catalog expansion to 34 canonical pairs
text
0x8a1da3325466bc54839dd0e52016192752ceeec9df827ba79e920a0abc58ebfa
single
text
updateFeeds
transaction containing all 34 configured pairs including equities, ETFs, commodities, FX,
text
1000FLM-USD
, and
text
1000JPY-USD

Latest reader confirmation recorded in acceptance:

  • pair:
    text
    TWELVEDATA:NEO-USD
  • round id:
    text
    1773053390
  • integer price:
    text
    253
  • timestamp:
    text
    1773158674

Latest post-expansion confirmation:

  • runtime config inside the live relayer container now includes all 34 configured canonical pairs
  • the chain still returns one historical legacy key,
    text
    TWELVEDATA:FLM-USD
    , in addition to the new canonical set
  • integration guidance is therefore:
    • deprecated:
      text
      TWELVEDATA:FLM-USD
    • canonical replacement:
      text
      TWELVEDATA:1000FLM-USD
  • live relayer logs after redeploy continued to show feed sync loops completing roughly every 15 to 17 seconds:
    • text
      2026-03-11T09:19:18.945Z
    • text
      2026-03-11T09:19:36.007Z
    • text
      2026-03-11T09:19:52.145Z
    • text
      2026-03-11T09:20:09.385Z
    • text
      2026-03-11T09:20:27.904Z
    • text
      2026-03-11T09:20:45.611Z
    • text
      2026-03-11T09:21:02.455Z
    • text
      2026-03-11T09:21:18.542Z

5. Neo N3 Testnet Sample Artifact

Source:

  • text
    examples/deployments/test-n3.latest.json

This is a structured sample artifact for the same example-consumer flow on testnet.

CaseTxidRequest idResult
Provider callback
text
0x24bd11e908a20deaa028c4711daa0d81f14ac66fa6cadae051f21ad6baa0041a
text
72
extracted value
text
2.49
Encrypted compute callback
text
0x17733321509c69527e760394b96153fb872f08d041c83334de4c8d93c572a2b4
text
73
builtin result
text
4
Custom URL oracle callback
text
0x17b760fc02dd8b70065d745c4ffd63f4c353fbec18a7b3622fd21e94d5dcb52e
text
74
result
text
neo-morpheus

Recorded testnet feed snapshot:

  • pair:
    text
    TWELVEDATA:NEO-USD
  • round id:
    text
    1773053257
  • stored integer price:
    text
    249200000
  • timestamp:
    text
    1773076253
  • source set id:
    text
    1

6. Neo X Artifact Status

text
examples/deployments/test-neox.latest.json
is currently only a partial log:

  • text
    Testing Neo X provider callback flow...
  • text
    Testing Neo X encrypted compute flow...
  • text
    Testing Neo X custom URL oracle flow...
  • text
    Testing Neo X datafeed publish flow...

It is not a canonical structured validation artifact and should not be treated as an acceptance report.

Current repo position:

  • Neo X contracts, interfaces, and example consumers exist in source.
  • Neo X frontend documentation is reference-only.
  • Canonical production acceptance today is Neo N3 mainnet.

7. Local Quality Gates

The following repository-level checks were run after the latest frontend / documentation alignment work:

CommandResultWhat it covers
text
npm run check:web-content
passFrontend builtin parity, feed parity, mainnet address parity, stale-doc regression checks
text
npm run build:web
passProduction frontend build, route generation, type checks
text
npm run test:worker
pass38 worker runtime tests including X25519 transport, timeouts, WASM, feed batching, and signing

8. Source Reachability Validation

Source:

  • text
    examples/scripts/validate-feed-source-mappings.mjs
  • text
    docs/FEED_SOURCE_VALIDATION_MAINNET_2026-03-11.md
  • text
    examples/deployments/feed-source-validation.mainnet.latest.json

Result:

  • Provider checked:
    text
    twelvedata
  • Canonical pair catalog checked:
    text
    34
  • Success count:
    text
    34
  • Failure count:
    text
    0

Representative validated mappings:

  • text
    AAPL-USD
    -> TwelveData symbol
    text
    AAPL
  • text
    SPY-USD
    ->
    text
    SPY
  • text
    BRENT-USD
    ->
    text
    XBR/USD
  • text
    NATGAS-USD
    ->
    text
    NG/USD
  • text
    COPPER-USD
    ->
    text
    HG1
  • text
    WHEAT-USD
    ->
    text
    W_1
  • text
    CORN-USD
    ->
    text
    C_1
  • text
    SOY-USD
    ->
    text
    S_1
  • text
    1000JPY-USD
    ->
    text
    USD/JPY
    with inverse transform and
    text
    1000 JPY
    unit scaling
  • text
    1000FLM-USD
    ->
    text
    FLM/USD
    with
    text
    1000 FLM
    unit scaling

If you need the raw case-by-case payloads and callback verification blobs, read:

  • text
    docs/MAINNET_PRIVACY_VALIDATION_2026-03-11.md
  • text
    examples/deployments/mainnet-privacy-validation.latest.json

If you need the operational narrative and the historical recovery steps, read:

  • text
    docs/ACCEPTANCE_REPORT_2026-03-10.md

If you need the exact example payload combinations and consumer contract patterns, read:

  • text
    docs/EXAMPLES.md
  • text
    examples/contracts/n3/UserConsumerN3.cs
  • text
    examples/contracts/n3/FeedReaderN3.cs
  • text
    examples/contracts/neox/UserConsumerX.sol
Previous Environment SetupNextAsync Privacy Spec
REVISION 1.0.2LAST UPDATED: 2026-03-11
Morpheus Oracle