Skip to Content
PluginsChronicle

Chronicle

Chronicle Protocol publishes decentralized, verifiable oracle price feeds secured by Schnorr signature aggregation. Each feed is a dedicated oracle contract, and reads are access-controlled: a caller must be whitelisted (“kissed”) by the oracle’s ward, or whitelist itself via the SelfKisser contract on supported test networks, before a read succeeds.

Supported chains: Ethereum (ETH/USD, BTC/USD, USDC/USD, USDT/USD, Custom Oracle), Sepolia (all named feeds plus Custom Oracle and SelfKisser). Read-only actions work without credentials once the caller is whitelisted on the target oracle.

Actions

Actions are grouped below by contract: each named feed is a separate oracle contract with its own address, the Custom Oracle lets you point at any Chronicle oracle address, and SelfKisser is a testnet-only whitelisting helper.

Named Price Feeds

Each of the six feeds below exposes the same two read actions, with the feed name as a prefix.

Feed ContractRead Action SlugRead with Age Slug
ETH/USD Oracleeth-usd-readeth-usd-read-with-age
BTC/USD Oraclebtc-usd-readbtc-usd-read-with-age
DAI/USD Oracledai-usd-readdai-usd-read-with-age
USDC/USD Oracleusdc-usd-readusdc-usd-read-with-age
USDT/USD Oracleusdt-usd-readusdt-usd-read-with-age
LINK/USD Oraclelink-usd-readlink-usd-read-with-age

Read {Feed} Value (for example “Read ETH/USD Value”): reads the current price from the feed. Caller must be whitelisted (kissed).

Inputs: None

Outputs:

OutputTypeDescription
valueuint256Oracle Value, 18 decimals

Read {Feed} Value with Age (for example “Read ETH/USD Value with Age”): reads the current price and its last-updated timestamp.

Inputs: None

Outputs:

OutputTypeDescription
valueuint256Oracle Value, 18 decimals
ageuint256Last Updated (Unix timestamp)

When to use: Feed a strategy or alert off a live, cryptographically verified price without depending on a separate price API. Use the “with Age” variant to check for stale data before acting on it.

DAI/USD and LINK/USD are published on Sepolia only; Chronicle does not publish those pairs on Ethereum mainnet.

Custom Chronicle Oracle

Lets you point at any Chronicle oracle contract address rather than one of the named feeds above.

ActionSlugTypeDescription
Read Oracle Value (Custom)readReadRead the current price value from any Chronicle oracle
Try Read Oracle Value (Custom)try-readReadAttempt to read the current price; returns ok=false instead of reverting if not whitelisted
Read Oracle Value with Age (Custom)read-with-ageReadRead the current price value and its last-updated timestamp
Try Read Oracle Value with Age (Custom)try-read-with-ageReadAttempt to read price and age; returns ok=false instead of reverting if not whitelisted

The “Try” variants are useful when the workflow can’t guarantee the caller has been whitelisted on the target oracle, since they return a success flag instead of reverting.

SelfKisser (Testnets Only)

ActionSlugTypeDescription
Whitelist on Oracle (Self)self-kissWriteWhitelist the caller on a Chronicle oracle using the SelfKisser contract

Inputs:

InputTypeDescription
oracleaddressOracle Contract Address

Available on Sepolia and other Chronicle test networks. Mainnet does not allow self-whitelisting; mainnet oracles are whitelisted by an authorized ward.


Example Workflows

ETH/USD Price Alert

Schedule (every 5 min) -> Chronicle: Read ETH/USD Value -> Math (divide by 1e18) -> Condition (< threshold) -> Discord: Send Message

Poll the Chronicle ETH/USD feed and alert when price crosses a threshold.

Stale Feed Check

Schedule (hourly) -> Chronicle: Read ETH/USD Value with Age -> Code (now - age) -> Condition (> max staleness) -> Discord: Send Message

Read the feed’s last-updated timestamp alongside its value and alert if the feed hasn’t updated recently.


Supported Chains

ChainContracts Available
Ethereum (1)ETH/USD, BTC/USD, USDC/USD, USDT/USD, Custom Oracle
Sepolia (11155111)ETH/USD, BTC/USD, DAI/USD, USDC/USD, USDT/USD, LINK/USD, Custom Oracle, SelfKisser

The full, current action list for this protocol is available in the app’s action grid and via the search_protocol_actions MCP tool.