A covenant is a rule that travels with a coin. A normal Kaspa output can be spent by whoever holds the key. A covenant-bound output carries a condition about how it may be spent next, and the network enforces that condition. Toccata is the consensus change that made this possible on mainnet, and our Toccata page covers what else it changed.
That leaves a measurable question. Covenant-bound outputs either exist on the chain or they do not, and transactions either create them or they do not. Both are countable, and both are published by Kaspalytics, and since 22 September 2026 a bot of ours writes the daily reading into a file in our repository so the series survives even if the source's own window moves on.
Every bar is one calendar day in UTC, exactly as the source reports it. Nothing is smoothed, nothing is averaged into a curve, nothing is rolled up into weeks. A seven day average would draw a much prettier line across this chart, and it would hide the single most obvious property of the data.
The tallest bar is 33,461 transactions on 7 sep 2026. On the median day the count is 361, which at the same scale is a hairline. We leave it that way. A log axis or a clipped outlier would make this chart easier on the eye and would hide the one property the chart exists to show.
The other chart is a stock, not a flow. It is the number of unspent outputs bound to a covenant id that exist on the chain at the end of each day. A transaction can create several of them at once, and they leave the count again when they are spent, so this line is the running balance of the two.
Since Toccata activated on 30 June 2026, the log holds 118 days. In that window the chain recorded 248,054 covenant transactions and 316,522 covenant outputs. The covenant UTXO count went from 19 on the first day after activation to 18,006 on 25 oct 2026.
It does not say whether that is a lot or a little. There is no second chain running the same upgrade to compare it against, no target anyone published beforehand, and no threshold at which a feature becomes a success. Anyone who tells you these numbers prove Toccata worked, or that they prove it flopped, is adding something that is not in the data.
It also says nothing about the price. Covenant usage and the KAS chart are two different measurements, and putting them in the same sentence is how a count turns into a claim. The chart has its own page, where we describe what it did and never say what it will do.
Straight out of data/covenants-log.json, the same file the charts above are built from. A dash means the source had no value for that day and we did not invent one.
| Day | Transactions | Outputs created | Covenant UTXOs |
|---|---|---|---|
| 25 oct 2026 | 747 | 1,857 | 18,006 |
| 24 oct 2026 | 1,199 | 2,859 | 17,855 |
| 23 oct 2026 | 2,816 | 6,975 | 17,479 |
| 22 oct 2026 | 1,847 | 4,944 | 16,679 |
| 21 oct 2026 | 1,166 | 3,221 | 15,836 |
| 20 oct 2026 | 151 | 295 | 15,175 |
| 19 oct 2026 | 125 | 251 | 15,085 |
| 18 oct 2026 | 141 | 251 | 15,014 |
| 17 oct 2026 | 209 | 361 | 14,985 |
| 16 oct 2026 | 420 | 856 | 14,887 |
| 15 oct 2026 | 257 | 420 | 14,510 |
| 14 oct 2026 | 245 | 482 | 14,443 |
| 13 oct 2026 | 141 | 324 | 14,284 |
| 12 oct 2026 | 157 | 304 | 14,220 |
Three daily series from Kaspalytics, read as JSON from the same endpoints its own charts use, covenant transactions, covenant outputs created and spent, and the covenant UTXO count. Kaspalytics does the counting, we do the logging. The first reading in our file is 26 June 2026, four days before Toccata activated, because that is as far back as the source goes.
A day that has not finished has no daily total yet. The bot reads up to and including yesterday, so a number on this page never changes shape between breakfast and dinner.
Transactions and outputs are daily sums, stamped at midnight of the day they count. The UTXO count is a snapshot taken at midnight with a few seconds of slack in either direction, so a reading stamped 00:00:02 belongs to the day that just ended. Reading that stamp naively puts half the series on the wrong day, which is the sort of error that never announces itself.
Not fetched by javascript after the fact. A bot renders the file, and a second pass reads the numbers back out of the finished page and compares each one against the log. If the page and the log disagree, the run fails and nothing ships. A page that can quietly contradict its own source is worse than no page.
Covenants have been in use since Toccata activated on 30 June 2026, and this page publishes the daily count, how many covenant transactions the chain recorded each day and how many covenant bound unspent outputs exist at the end of each day. We publish the full series, including the quiet days, and we do not say whether the level is high or low, because nothing was published beforehand to measure it against.
A covenant is a spending rule attached to an output. A normal output can be spent by whoever holds the key; a covenant bound output carries a condition about how it may be spent next, and the network enforces that condition. The Toccata consensus upgrade made covenants possible on Kaspa mainnet on 30 June 2026.
The current number is shown at the top of this page with the date it was read. It is the count of unspent transaction outputs bound to a covenant id, source kaspalytics, written into our own daily log so the series survives even if the source's window moves on.
Three daily series from Kaspalytics, covenant transactions, covenant outputs created and spent, and the covenant UTXO count, read as JSON from the same public endpoints its own charts use. A bot reads them once a day, never reads the running day, and writes the result to data/covenants-log.json in our public repository. The numbers on this page are rendered into the page source from that file and checked back against it on every run.
No. Covenant usage and the KAS chart are separate measurements and this page makes no price statement of any kind. It counts what is running on the upgrade and stops there.
Building on Kaspa? We review projects and run testnet load tests before launch.
follow kaspa pulse