Daemon
daemon mode runs Oura in the background with no live output. It’s the mode you use in
production — to continuously bridge chain data into another system, or to trigger an automated
action whenever a particular event pattern shows up.
If you’re just getting started, the Quick Start walks through a minimal daemon config end to end.
Getting started
-
Write a config file describing your pipeline — which source, filters, and sink to use (see Configuration below).
-
Start the daemon, pointing it at your config:
Terminal window oura daemon --config my_config.tomlWith no
--config, Oura loads/etc/oura/daemon.tomlby default:Terminal window oura daemon
The Examples section has ready-to-run daemon.toml files for every
source, filter, and sink — a good starting point to copy and adapt.
Configuration
A config file describes one pipeline: a source, where to intersect the chain, a chain of
filters, and a sink. Here’s the typical skeleton:
[source]type = "X" # the type of source to use
# custom config fields for this source typefoo = "abc"bar = "xyz"
[intersect]type = "W" # where to start reading the chain
[[filters]]type = "Y" # the type of filter to use
# custom config fields for this filter typefoo = "123"bar = "789"
[sink]type = "Z" # the type of sink to use
# custom config fields for this sink typefoo = "123"bar = "789"Every section has a type field selecting one of the built-in components; the remaining fields
depend on the type you choose.
[source]— where the data comes from. See Sources for the options and their fields.[intersect]— where on the chain to start reading. See Intersect options.[[filters]]— a sequence of transformations applied to each event, in order. This is an array, so you can list several. See Filters.[sink]— where the data goes. See Sinks.
Full example
A pipeline reading from a Node-to-Node source and publishing to a Kafka topic:
[source]type = "N2N"peers = ["backbone.mainnet.cardanofoundation.org:3001"]
[intersect]type = "Tip"
[[filters]]type = "SplitBlock"
[[filters]]type = "ParseCbor"
[sink]type = "Kafka"brokers = ["127.0.0.1:53147"]topic = "mainnet"