DataUpdate objects. These endpoints are only available on metagraphs that have the dataApplication extension point configured.
All endpoints return the following response headers:
- X-Id — The node’s public key identifier
- X-Session-Token — The current cluster session token
- Request-Signature — Cryptographic signature of the response for verification
The data application routes are served on a separate Data L1 node instance (distinct from the Currency L1 node). The default port for data application endpoints is typically
9400.GET /data
Returns the list ofDataUpdate objects currently enqueued for processing in the next consensus round.
200 OK — Array of signed data update objects awaiting inclusion
Array of
SignedDataUpdate objectsPOST /data
Submits a signed custom data update object for processing. The data update is validated by the metagraph’svalidateUpdate implementation and, if accepted, forwarded to the L0 for inclusion in the next currency snapshot.
The custom data update payload. The schema is defined by the metagraph’s data application. Must be serializable as JSON and compatible with the metagraph’s
DataUpdate type.Array of cryptographic signature proofs
200 OK
Hash of the accepted data update object
400 Bad Request — Invalid data update or signature. The metagraph’s validateUpdate rejected the submission.
Human-readable rejection reason from the metagraph’s validator
503 Service Unavailable — Last global snapshot ordinal is not yet available. The node is still syncing.
Data flow
Data updates submitted to
/data follow this lifecycle:- L1 node calls
validateUpdate— if rejected, returns400 - Accepted updates are held in the mempool
- During next consensus round, updates are batched into a
DataApplicationBlock - Block is sent to the Currency L0 node
- L0 calls
validateDataandcombine— updates are merged intoDataState - Final state is included in the
CurrencyIncrementalSnapshot onSnapshotConsensusResultis called after finalization
DataUpdate schema and validation logic.