Name a ticker. Name a condition. Name a block. The chain evaluates the ZK-proven regime state at that block and returns MATCH or MISS. No oracle. No trusted executor. TRIGGER is the input. SETTLE is the automatic return value. One user action.
Register a regime condition against a future block number. At that block, the chain state is computed, ZK-proven, and compared to the registered condition. Match fires the trigger. No off-chain logic.
POST a wallet, target block, ticker, and expected regime to the TRIGGER endpoint. 5 MKV per registration.
At the target block, the protocol computes regime state via Viterbi + ZK proof. This is the same computation that validates every block.
Regime matches your condition: trigger fires (MATCH). Regime does not match: trigger resolves MISS. Either way, the result is ZK-proven and permanent.
Every block produces a regime classification across the tracked tickers. A trigger condition specifies a ticker and an expected regime at a target block.
Supported tickers: QQQ, SPY, USO, GLD, TLT, XLE, FXE, VIX.
| Method | Endpoint | Description |
|---|---|---|
| POST | /trigger/register | Register a trigger condition. Body: {"wallet","ticker","target_block","condition"}. Returns trigger_id, status: PENDING. 5 MKV. |
| GET | /trigger/{id} | Status of a registered trigger. Returns status (PENDING / MATCH / MISS), result_block, proof, zk_valid. |
| GET | /triggers/{wallet} | All triggers registered to a wallet. Returns array ordered by target_block. |
| GET | /regime/{ticker} | Current regime state for a ticker. Returns regime, confidence, block, zk_valid. |
Lock data to the chain. ZK-committed. Merkle-rooted. Bitcoin-anchored. Unforgeable. Permanent.
stamp.markovianprotocol.com →Register a claim against a future block. TRIGGER is the input. SETTLE is the automatic verdict. No oracle.
trigger.markovianprotocol.com →