Roadmap

Planned
4 minutes ago

Ledger predicate: StakeKeyNotRegisteredDELEG

### Abstract

Planned
4 minutes ago

Compute child_tips on a snapshot

### Abstract

Planned
5 minutes ago

Ledger predicate: StakeKeyHasNonZeroAccountBalanceDELEG

### Abstract

Planned
6 minutes ago

Ledger predicate: RefundIncorrectDELEG

### Abstract

Planned
7 minutes ago

Ledger predicate: StakeKeyNotRegisteredDELEG

### Abstract

Planned
8 minutes ago

Ledger predicate: StakeKeyRegisteredDELEG

### Abstract

Planned
9 minutes ago

Ledger predicate: WithdrawalsNotInRewardsCERTS

### Abstract

Planned
11 minutes ago

Ledger predicate: ValidationTagMismatch

### Abstract

Planned
13 minutes ago

Ledger Predicate: MaxTxSizeUTxO

### Abstract

Planned
14 minutes ago

Ledger predicate: ValueNotConservedUTxO

### Abstract

Planned
15 minutes ago

Ledger Predicate: FeeTooSmallUTxO

### Abstract

Planned
18 minutes ago

Ledger Predicate: ConwayWdrlNotDelegatedToDRep

### Abstract

Planned
19 minutes ago

Ledger predicate: ConwayTxRefScriptsSizeTooBig

### Abstract

Planned
20 minutes ago

Ledger predicate: ConwayTreasuryValueMismatch

### Abstract

Planned
21 minutes ago

Ledger predicate: BodyRefScriptsSizeTooBig

### Abstract

In Progress
22 minutes ago

feat: custom/short-epoch testnet bootstrap & run support

Draft — enables bootstrapping and running amaru against custom, short-epoch testnets (e.g. generated db-synthesizer / Antithesis chains) without Koios/Mithril and without a built-in network profile. Surfaced while building lambdasistemi's amaru-bootstrap harness on top of current main.

Planned
about 1 hour ago

Identify and close existing ledger coverage gaps

### Abstract

Planned
about 2 hours ago

Properly compute the handshake negotiation result

### Abstract

Planned
about 2 hours ago

Use amaru as a backend for Dolos

### Abstract

Planned
about 2 hours ago

Scale the pipelining depth

### Abstract

Planned
about 2 hours ago

Fully process an AssertOperationalCertificateError

### Abstract

Planned
about 2 hours ago

Make sure that secrets are erased from memory

### Abstract

Planned
about 2 hours ago

Test Amaru serialization

### Abstract

Planned
about 2 hours ago

Demo the node as a relay including transaction submission

### Abstract

Planned
about 2 hours ago

Explore Improved Data Models for Block Validation

### Abstract

Planned
about 2 hours ago

Instrument the consensus stages

### Abstract

Planned
about 2 hours ago

Consider memory + cpu execution units when computing the available mempool capacity

### Abstract

Planned
about 2 hours ago

Do not revalidate transactions that are already in the Mempool

### Abstract

Planned
about 2 hours ago

Support chained transactions in the mempool

### Abstract

Planned
about 2 hours ago

Avoid fetching all governance votes in memory

### Abstract

Planned
about 2 hours ago

Optimize the download of transactions in the txsubmission protocol across several peers

### Abstract

Planned
about 2 hours ago

Relocate Phase 2 Types to the Kernel

### Abstract

Shipped
about 2 hours ago

chore: review FIXMEs and TODOs

Some of them have been turned into issues.

Planned
about 2 hours ago

Unbind accounts of unregistered pools

### Abstract

Planned
about 2 hours ago

Add a way to configure the GlobalParameters via env vars

### Abstract

Planned
about 2 hours ago

Amaru doesn't interrupt on SIGINT while catching-up

### What revision are you using?

Planned
about 3 hours ago

Improve or remove the noisy `AMARU_LOG` fallback message

### Abstract

Planned
about 3 hours ago

Complete implementation of `ExtraneousScriptWitnesses` ledger rule

### What revision are you using?

Planned
about 3 hours ago

Automate the creation of amaru snapshots

### Abstract

Planned
about 3 hours ago

Package & distribute Amaru on every release

### Abstract

Planned
about 3 hours ago

Enforce CHANGELOG in CI

### Abstract

Planned
about 3 hours ago

Complete the DRep voting stake

### Abstract

Planned
about 3 hours ago

Intern account stake credentials

### Abstract

Planned
about 3 hours ago

pure-stage functional test (sometimes) failing

### What revision are you using?

Planned
about 3 hours ago

Add an public bootstrap peer option to help onboarding

### Abstract

Planned
about 3 hours ago

Perform integrity/sanity check of the ledger & chain db

### Abstract

Planned
about 3 hours ago

Use amaru as a backend for yaci-store

### Abstract

Planned
about 3 hours ago

Use amaru as a backend for Oura

### Abstract

Planned
about 5 hours ago

Store the stake pool deposit

### Abstract

Planned
about 5 hours ago

Compute rewards asynchronously

### Abstract

In Progress
about 20 hours ago

Update CONTRIBUTING.md to comply with Amaru workshops decision on June 4th 2026

Signed-off-by: Damien <161828179+Dam-CZ@users.noreply.github.com>

Planned
about 21 hours ago

Epoch Transition Benchmark

### Abstract

Planned
about 21 hours ago

Granular Ledger Benchmarks

### Abstract

Planned
about 21 hours ago

Global Ledger Benchmarks

### Abstract

Planned
about 21 hours ago

chainsync stalls after crash recovery — node finds intersect but never requests next block

## Summary

Planned
about 21 hours ago

Clean up FetchBlocks2 interim API

### Abstract

Planned
about 21 hours ago

Add a top-level README pointer to the Docker workflow

### Abstract

Planned
about 21 hours ago

Improve stale ledger lock-file error handling and recovery UX

### Abstract

Planned
about 21 hours ago

Enable the TraceBuffer in production

### Abstract

Planned
about 21 hours ago

Garbage collect contramapped stages

### Abstract

Planned
about 21 hours ago

Use a separate column family for `BEST_CHAIN_PREFIX`

### Abstract

Planned
about 21 hours ago

Monitor RocksDB metrics

### Abstract

Planned
about 21 hours ago

Add extra metrics: support gLiveView.sh

### Abstract

Planned
about 21 hours ago

Add simulation tests for various network issues

### Abstract

Planned
about 22 hours ago

implement initiatorOnlyMode=false on outgoing connections

### Abstract

Planned
about 22 hours ago

Amaru's computed `active_stake` (total delegated stake across all pools) diverges from the on-chain value starting at the snapshot used for earned epoch 619 rewards

### What revision are you using?

Planned
about 22 hours ago

Reach ledger predicate parity with the Haskell node

### Abstract

Planned
about 22 hours ago

Properly handle in/out/duplex peers

### Abstract

Planned
about 22 hours ago

Promote downstream connections to initiator mode on incoming connections (warm -> hot peer transition)

### Abstract

Planned
about 22 hours ago

fix amaru-sim test termination

### Abstract

Planned
about 22 hours ago

Cardano Node Diversity platform

### Abstract

Planned
about 22 hours ago

Update the animations for the simulation

### Abstract

Planned
about 22 hours ago

Add ledger checks to the simulation

### Abstract

Planned
about 22 hours ago

Add the txsubmission protocol to the simulation

### Abstract

In Progress
2 days ago

Migrate Phase Two Types to Kernel

Fixes #796.

In Progress
2 days ago

feat: improved monitoring basic

Make sure `monitoring/basic` reflect latest state:

In Progress
4 days ago

Value (mostly) preserved validations

This PR introduces a new failure `ValueNotPreserved`. However, the implementation is known to be non-conforming. This is because our context does not provide account or pool state. We need account state to check the true deposit, instead of just assuming/trusting the certificate. We need the pool state to check if a pool is being "re-registered", so we don't charge them for an already registered pool.

Shipped
4 days ago

feat: gliveview docker helper

Amaru team wants to make sure that well-known cardano tools can work seamlessly with amaru. This is also a way to ensure amaru expose community accepted standard (e.g. metrics).

Shipped
4 days ago

chore: address clippy comments

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

Shipped
6 days ago

Fix script integrity hash mismatch preprod

This was due to the non-ratification of a protocol parameter change, for which the first ratification round was wrongly skipped.

Shipped
6 days ago

feat: get rid of protocol v9

Amaru doesn't bootstrap from genesis but from well known snapshots. Now that snapshots can be more reliably be created it's been decided to drop v9 support and provide fresher snapshots (current ones are more than a year old).

Shipped
6 days ago

chore: general bootstrap improvements

Based on feedback from @KtorZ , improves recent bootstrap changes.

Shipped
7 days ago

Fix epoch transition effective happening

### Problem

Shipped
8 days ago

feat: add traces and metrics for the mempool

This PR adds traces and metrics for the most important events on a mempool.

Shipped
9 days ago

Introduce more fixtures

This PR is just migrating some more existing unit tests to fixtures; claude-written, human-directed.

Shipped
9 days ago

feat: bootstrap adjustments

This PR:

Shipped
9 days ago

feat: transaction id display

This PR makes the transaction id `Display` instance display the full id and adds a helper to only display a truncated ids in potentially large lists of ids.

Shipped
11 days ago

fix ledger rollback_to when target==ledger_tip

My previous fix in #756 was faulty, it only worked correctly when rolling back to `immutable_tip()`. Now I extended a testcase to check that this behaviour stays fixed.

Shipped
11 days ago

feat: leaner bootstrap and snapshots creation

This is a focused attempt at making it easy to create new snapshots.

Shipped
11 days ago

fix: terminate the adopt_chain stage if invariants are broken

This PR makes sure that we terminate the node in case we broke some invariants in the `adopt_chain` stage.

Shipped
11 days ago

work towards dynamic peer selection

This PR adds some needed infrastructure for dynamic peer selection and also adds an EDR to fixate some design points in the consensus layer.

Shipped
14 days ago

feat(bootstrap): report progress during long-running stages

fixes #773

Shipped
14 days ago

fix: order the proposals

This PR fixes an issue found when syncing the `preview` network, where proposals were not returned in the correct order.

Shipped
15 days ago

Remove VolatileCache

The `VolatileCache` was a premature optimization. As we are expanding to support more state, we will create nicer abstractions that apply to all the necessary objects.

Shipped
15 days ago

fix: Redeemer map behavior to match Haskell impl

Added remove before insert on script_table in all 6 branches of `ScriptPurpose::builder`. `BTreeMap::insert` keeps the existing key when an Ord-equal key is inserted, only replacing the value. This meant duplicate redeemers (same tag+index, different ExUnits) would silently retain the first redeemer's ExUnits — diverging from Haskell's Map.fromList which keeps the last duplicate. The remove-before-insert pattern ensures the new key (with correct ExUnits) fully replaces the old one.

Shipped
15 days ago

feat: implement missing mempool logic + tx-submission checks

This PR implements the minimum missing logic for the mempool:

Shipped
15 days ago

fix: transaction rollback

This PR fixes #836 by:

Shipped
17 days ago

fix: consume utxo inputs in the current block and volatile state

This PR fixes the search for consumed inputs by looking at the consumed inputs inside the current block validation state and the rest of the volatile db.

In Progress
20 days ago

test: check tx submission in simulation

Keeping this branch around for now.

Shipped
21 days ago

Additional CI fixes & cleanup

- :round_pushpin: **fix: do not use separate caches for bench and coverage** We are limited to ~10GB cache on github; with these two extras, we go beyond the limit and Github automatically evicts other more useful caches. So for this two, we'll simply default back to linux cache.

Shipped
21 days ago

feat: add new metrics

Add new metrics. Goal is to reach `cardano_node` parity. We ignore metrics related to: * peer selection * block forging * `cardano_node` / haskell internals related

Shipped
21 days ago

fix: machete must run if code changed too

Always machete :D Unused deps appear when code doesn't use them anymore.

Shipped
21 days ago

fix: include the era tag in the transactions serialization

The serialization of transactions was missing the era tag. I did not notice that before because I was only testing `amaru` with `amaru` :-)

Shipped
21 days ago

fix: get the tx_id from the transaction body

The main fix of this PR is the retrieval of the transaction id used in the mempool and tx submission protocol from the transaction body and not from the hashing of the full transaction CBOR.

In Progress
22 days ago

Reference Script Size & Minimum Fee Calculations

Introduce more missing predicates, this time around reference script size limits. I acknowledge there is duplicate work here, where we iterate to find the script sizes twice; once at the block level before we call phase one validation per transaction, and once during phase one validation. I decided that this is an acceptable situation, since it is not a particularly expensive, and it is much simpler to reason about than threading the calculation through from either phase one back to the block level, or vice versa.

Shipped
22 days ago

Min Fee Calculation

This PR is stacked on top of #820 because we depend on the total reference script size for the fee calculation. Opening as a separate PR to help make reviews simpler.

Shipped
22 days ago

fix: validate downloaded but still unvalidated blocks in fetch_blocks

This PR fixes the case where the `fetch_block` stage might have downloaded blocks that were not yet validated before. Without it, we could have an inconsistent state on restart.

Shipped
22 days ago

fix: avoid writing to CI cache by default, make it explicit.

<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit

Shipped
22 days ago

fix: use 'cargo run' for generating and validating trace schemas + revert sccache

<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit

Shipped
22 days ago

fix: only use responder connections to fetch blocks

This PR makes sure that we don't try to fetch blocks from a peer when we are the responder of a connection. It also cleans-up the previous `Blocks/FetchBlocks` messages which were not used with the introduction of `Blocks2/FetchBlocks2`.

Shipped
23 days ago

Recklessly killing bees and penguins

Empty commit to test out new cache and cleaned up CI. Does nothing, burn CPU cycles in the cloud.

Shipped
23 days ago

Ledger Test Harness & Some Initial Fixtures

This PR is the first step to resolving #797. I am introducing a prototype of the ledger test harness and the shape of the test fixtures. While the rust code is open for review (particularly in terms of how we want to decode the JSON fixtures), the most important discussion I want to have is around the test fixtures and whether or not they meet the requirements of #797.

In Progress
23 days ago

test: update the animation for the execution of a simulation

This PR updates the animation of a trace produced by the simulation:

Shipped
23 days ago

CI cleanups: bump CI action versions, use ubuntu-24.04, remove buildjet runners, switch to sccache

<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit

Shipped
23 days ago

Remove Examples and MemoryStore

This PR closes #795, finally removing the `MemoryStore`, by *also* removing the examples. They are misleading, implying that using Amaru in nodejs is "simple", even though the `MemoryStore` is broken and shouldn't have been used.

Shipped
24 days ago

Reduce dependencies on MemoryStore

It is not entirely straightforward to remove it entirely, since RocksDB cannot compile to WASM, and we need some storage solution for the nodejs examples we provide.

Shipped
24 days ago

ci: don't connect to upstream peers for snapshot tests

This disable upstream peer connections for the cardano-node used in the end-to-end snapshot tests:

Shipped
24 days ago

fix: preserve tx_id after round-trip

The transaction id is currently not preserved after a CBOR round-trip of a transaction. This creates issues with the mempool and the txsubmission protocol which rely on transaction ids to be identical across node implementations.

Shipped
25 days ago

Introduce some basic fixtures

This PR introduces some basic ledger fixtures, introducing basic coverage for some of the metadata and input related predicates. Introducing these fixtures helps us confirm that this schema makes sense, the harness is correct, etc.

Shipped
26 days ago

fix: don't fail rollback inside the volatile ledger

We can't currently rollback the ledger to a previous volatile state.

Shipped
26 days ago

ScriptIntegrityMismatch

This PR introduces everyone's favorite predicate, `ScriptIntegrityMismatch`!

Shipped
26 days ago

Validity Interval Validations

This PR introduces two new predicates checking the validity interval. Conformance suite currently has no tests that cover this, so I introduced unit tests to cover each basic case.

Planned
8 months ago

Publish on brew

Planned
8 months ago

Add bench capacities

Add a new `bench` subcommands allowing to provide metrics about current hosts. Those should be relevant to `amaru` e.g.

Planned
8 months ago

Allow to browse static JSON

`amaru` can output JSON traces. Allow to open them and display details.

Planned
8 months ago

Allow to browse metrics

OpenTelemetry offers metrics primitives. Create a new screen allowing to see at a glimpse the most important ones exposed by amaru. It should leverage ratatui primitives to display metrics.

Planned
9 months ago

Visualise current network connections state

Showing the state of incoming/outgoing (or initiator/responder as mini protocols' terminology has it) would be useful to troubleshoot a node's state. In particular, we'll need to be able to trigger disconnections of "faulty" nodes so while we'll obviously trace that, visualising the links from/to a node would be nice.

Planned
10 months ago

Publish on crates.io

Will allow use of https://github.com/cargo-bins/cargo-binstall

Planned
11 months ago

Add static querying capacities

`amaru` should offer static querying capacities e.g. access db details

Planned
11 months ago

Allow to search DReps by ids

Planned
11 months ago

Add VIM keybindings for navigation

Make sure VIM like keybindings are added on top of regular keybindings for navigation between various panels.

Planned
11 months ago

Add a main screen showing off instances details

Could take inspiration from https://github.com/blinklabs-io/nview

Planned
11 months ago

Publish on crates

This is currently blocked by amaru not being published on crates

Planned
12 months ago

Introduce indexing

Searching entities by most key requires full scan. Introduce a local index mechanism to speed things up.

Planned
12 months ago

Allow to be used as a library

Make sure `amaru-doctor` can be used as a library in `amaru` directly.

Planned
about 1 year ago

Allow to browse resource deltas between two epochs

In Progress
1 day ago

Doc cleanup

Updated documentation across the board, and updated the Readme. The current current docs can be found [here](https://docs.rs/amaru-uplc/latest/amaru_uplc/).

In Progress
1 day ago

fix: align cost model key lists with Haskell ParamName enum order

This PR updates the cost model logic to support the upcoming v11 changes.

Shipped
6 days ago

Various fixes

Shipped
6 days ago

Implement case on constant

This PR implements case on constant.

Shipped
8 days ago

Conformance test fixes

This PR fixes the updated conformance tests that were a result of cost model changes and Haskell logic divergences.

Shipped
8 days ago

Conformance CI Changes

Make sure that both the text and flat conformance test both always run, even if suite one fails

Shipped
8 days ago

Implements Value builtins and Value type

This implements [CIP-153](https://cips.cardano.org/cip/CIP-153) which adds the Value constant and the following builtins: - InsertCoin - LookupCoin - UnionValue - ValueContains

Shipped
8 days ago

Convert textual tests to flat

The conformance suite we pull from [IntersectMBO/plutus](https://github.com/IntersectMBO/plutus) uses text-encoded programs. In practice, these decoders are only used for tests; on-chain scripts are encoded as flat bytes. Therefore, it is possible to have a fully green conformance suite and introduce subtle bugs in the flat decoder implementations. This PR migrates the fixtures from the textual format to flat-encoded programs, and provides fixtures as JSON instead of raw bytes, to make it easier to work with them.

Shipped
10 days ago

Implements bls12 MultiScalarMul

This implements [CIP-133](https://cips.cardano.org/cip/CIP-133) which adds the builtins `bls12_381_G1_multiScalarMul` and `bls12_381_G2_multiScalarMul`

Shipped
17 days ago

Update conformance tests

This updates the conformance test with the latest suite. This PR is intended to get the updated conformance tests in and then get the tests to pass in subsequent pull requests.

Planned
about 1 month ago

V1/V2 cost models missing support for new Plutus builtins backported by Cardano protocol v11 (van Rossem)

## Context

Planned
6 months ago

fix budget when traversing value structures

In Progress
14 days ago

fix: pad contingency registry_script.hash to 28 bytes

One-character JSON fix in `journal/2026/metadata.json`.

Planned
14 days ago

Add CAG off-ramp address to journal metadata

The journal `metadata.json` currently lists only scope_owners and the five treasury script anchors. Designated off-ramp / vendor-coordination addresses (per CAG MSA §1.7) live only in off-chain email and in per-tx on-chain rationale references[].

Shipped
20 days ago

swap_order: relax cancel policy from AllOf to AtLeast(2, owners)

As discussed in the Discord channel.

Community engagement

We build in public. Want to request something or upvote a feature? Join the conversation on: