Repository: ObolNetwork/charon

Issue:
Updated year to 2025 in file headers
# 🎯 Problem to be solved

It currently renders
```
// Copyright © 2022-2024 Obol Labs Inc. ...
```

# 🛠️ Proposed solution
- [ ] Change repository configuration to render 2025

# 🧪 Tests
- [ ] Tested by pre-commit and CI actions


Discussion:

Solution patch:
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index beb5019b..a330a7a0 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -12,7 +12,7 @@ repos:
       - id: no-commit-to-branch # Protect specific branches (default: main/master) from direct checkins
 
   - repo: https://github.com/ObolNetwork/go-pre-commit-hooks
-    rev: v0.0.3
+    rev: v0.0.4
     hooks:
       - id: check-go-version
         args: [ -v=go1.23 ] # Only check minor version locally
diff --git a/app/app.go b/app/app.go
index 7b42baa8..933d1d61 100644
--- a/app/app.go
+++ b/app/app.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package app provides the top app-level abstraction and entrypoint for a charon DVC instance.
 // The sub-packages also provide app-level functionality.
diff --git a/app/disk.go b/app/disk.go
index ee483954..1369db58 100644
--- a/app/disk.go
+++ b/app/disk.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package app
 
diff --git a/app/errors/context.go b/app/errors/context.go
index 9cacd8ff..53752bed 100644
--- a/app/errors/context.go
+++ b/app/errors/context.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package errors
 
diff --git a/app/errors/errors.go b/app/errors/errors.go
index 3fe85c3b..2891f9de 100644
--- a/app/errors/errors.go
+++ b/app/errors/errors.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package errors provides errors with structured fields and stack traces.
 // It is a drop-in replacement for stdlib errors and should be used as such throughout the app.
diff --git a/app/errors/go113.go b/app/errors/go113.go
index 235dcbd1..1f430d09 100644
--- a/app/errors/go113.go
+++ b/app/errors/go113.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 //nolint:wrapcheck
 package errors
diff --git a/app/eth2wrap/eth2wrap.go b/app/eth2wrap/eth2wrap.go
index 9fa2b459..a613c4b7 100644
--- a/app/eth2wrap/eth2wrap.go
+++ b/app/eth2wrap/eth2wrap.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package eth2wrap provides a wrapper for eth2http.Service adding prometheus metrics and error wrapping.
 package eth2wrap
diff --git a/app/eth2wrap/eth2wrap_gen.go b/app/eth2wrap/eth2wrap_gen.go
index 8bcf5314..b3ae9ea7 100644
--- a/app/eth2wrap/eth2wrap_gen.go
+++ b/app/eth2wrap/eth2wrap_gen.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2wrap
 
diff --git a/app/eth2wrap/genwrap/genwrap.go b/app/eth2wrap/genwrap/genwrap.go
index 202dcf76..6369c688 100644
--- a/app/eth2wrap/genwrap/genwrap.go
+++ b/app/eth2wrap/genwrap/genwrap.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Command genwrap provides a code generator for eth2client provider
 // methods implemented by eth2multi.Service.
diff --git a/app/eth2wrap/httpwrap.go b/app/eth2wrap/httpwrap.go
index b8dbdd2f..a7386a4e 100644
--- a/app/eth2wrap/httpwrap.go
+++ b/app/eth2wrap/httpwrap.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2wrap
 
diff --git a/app/eth2wrap/lazy.go b/app/eth2wrap/lazy.go
index f5f0eefd..b14ceb50 100644
--- a/app/eth2wrap/lazy.go
+++ b/app/eth2wrap/lazy.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2wrap
 
diff --git a/app/eth2wrap/mocks/client.go b/app/eth2wrap/mocks/client.go
index 79c47f36..dd80587f 100644
--- a/app/eth2wrap/mocks/client.go
+++ b/app/eth2wrap/mocks/client.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Code generated by mockery v2.43.2. DO NOT EDIT.
 
diff --git a/app/eth2wrap/multi.go b/app/eth2wrap/multi.go
index fcf19213..ba890a1e 100644
--- a/app/eth2wrap/multi.go
+++ b/app/eth2wrap/multi.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2wrap
 
diff --git a/app/eth2wrap/success.go b/app/eth2wrap/success.go
index 0d9f7d5c..d340d284 100644
--- a/app/eth2wrap/success.go
+++ b/app/eth2wrap/success.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2wrap
 
diff --git a/app/eth2wrap/synthproposer.go b/app/eth2wrap/synthproposer.go
index 70c449d5..f099cbc5 100644
--- a/app/eth2wrap/synthproposer.go
+++ b/app/eth2wrap/synthproposer.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2wrap
 
diff --git a/app/eth2wrap/valcache.go b/app/eth2wrap/valcache.go
index 272d2fcc..3d1dd1d0 100644
--- a/app/eth2wrap/valcache.go
+++ b/app/eth2wrap/valcache.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2wrap
 
diff --git a/app/expbackoff/expbackoff.go b/app/expbackoff/expbackoff.go
index 863c3781..af070fb2 100644
--- a/app/expbackoff/expbackoff.go
+++ b/app/expbackoff/expbackoff.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package expbackoff implements exponential backoff. It was copied from google.golang.org/grpc.
 package expbackoff
diff --git a/app/featureset/config.go b/app/featureset/config.go
index d193dec0..688858c8 100644
--- a/app/featureset/config.go
+++ b/app/featureset/config.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package featureset
 
diff --git a/app/featureset/featureset.go b/app/featureset/featureset.go
index 14cec27b..af4e60e1 100644
--- a/app/featureset/featureset.go
+++ b/app/featureset/featureset.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package featureset defines a set of global features and their rollout status.
 package featureset
diff --git a/app/featureset/status_string.go b/app/featureset/status_string.go
index fb2430e5..f19a2d9e 100644
--- a/app/featureset/status_string.go
+++ b/app/featureset/status_string.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Code generated by "stringer -type=status -trimprefix=status"; DO NOT EDIT.
 
diff --git a/app/forkjoin/forkjoin.go b/app/forkjoin/forkjoin.go
index 0c0cc0d1..5437611f 100644
--- a/app/forkjoin/forkjoin.go
+++ b/app/forkjoin/forkjoin.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package forkjoin provides an API for "doing work
 // concurrently (fork) and then waiting for the results (join)".
diff --git a/app/genssz/genssz.go b/app/genssz/genssz.go
index d5bbd1d6..a520f356 100644
--- a/app/genssz/genssz.go
+++ b/app/genssz/genssz.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Command genssz generates ssz hashing code for structs in given go package.
 // Structs need to be tagged with `ssz:"<ssz-type>"` to be included.
diff --git a/app/genssz/template.go b/app/genssz/template.go
index d2fd40e0..860f9304 100644
--- a/app/genssz/template.go
+++ b/app/genssz/template.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package main
 
diff --git a/app/genssz/types.go b/app/genssz/types.go
index 1a92a521..fa9ee458 100644
--- a/app/genssz/types.go
+++ b/app/genssz/types.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package main
 
diff --git a/app/health/checker.go b/app/health/checker.go
index 296a38a3..84d9e80f 100644
--- a/app/health/checker.go
+++ b/app/health/checker.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package health provides health checks for the application.
 package health
diff --git a/app/health/checks.go b/app/health/checks.go
index ef160382..492afb0b 100644
--- a/app/health/checks.go
+++ b/app/health/checks.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package health
 
diff --git a/app/health/metrics.go b/app/health/metrics.go
index c2ee4353..7f9760f2 100644
--- a/app/health/metrics.go
+++ b/app/health/metrics.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package health
 
diff --git a/app/health/reducers.go b/app/health/reducers.go
index a81ab542..91dcba7a 100644
--- a/app/health/reducers.go
+++ b/app/health/reducers.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package health
 
diff --git a/app/health/select.go b/app/health/select.go
index a1c17d62..d9a7a5b1 100644
--- a/app/health/select.go
+++ b/app/health/select.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package health
 
diff --git a/app/k1util/k1util.go b/app/k1util/k1util.go
index f4b7dce3..1aa7c436 100644
--- a/app/k1util/k1util.go
+++ b/app/k1util/k1util.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package k1util provides helper function for working with secp256k1 keys.
 package k1util
diff --git a/app/lifecycle/hook.go b/app/lifecycle/hook.go
index 20b58724..21acb534 100644
--- a/app/lifecycle/hook.go
+++ b/app/lifecycle/hook.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package lifecycle
 
diff --git a/app/lifecycle/manager.go b/app/lifecycle/manager.go
index 13b7f434..0f1739bc 100644
--- a/app/lifecycle/manager.go
+++ b/app/lifecycle/manager.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package lifecycle provides a life cycle manager abstracting the starting and stopping
 // of processes by registered start or stop hooks.
diff --git a/app/lifecycle/order.go b/app/lifecycle/order.go
index ba07474f..873ee61e 100644
--- a/app/lifecycle/order.go
+++ b/app/lifecycle/order.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package lifecycle
 
diff --git a/app/lifecycle/orderstart_string.go b/app/lifecycle/orderstart_string.go
index c8f1e045..84686e1a 100644
--- a/app/lifecycle/orderstart_string.go
+++ b/app/lifecycle/orderstart_string.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Code generated by "stringer -type=OrderStart -trimprefix=Start"; DO NOT EDIT.
 
diff --git a/app/lifecycle/orderstop_string.go b/app/lifecycle/orderstop_string.go
index cfb14347..b9662868 100644
--- a/app/lifecycle/orderstop_string.go
+++ b/app/lifecycle/orderstop_string.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Code generated by "stringer -type=OrderStop -trimprefix=Stop"; DO NOT EDIT.
 
diff --git a/app/log/config.go b/app/log/config.go
index f98cd264..3109a104 100644
--- a/app/log/config.go
+++ b/app/log/config.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package log
 
diff --git a/app/log/filter.go b/app/log/filter.go
index 940c904a..bc784d9a 100644
--- a/app/log/filter.go
+++ b/app/log/filter.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package log
 
diff --git a/app/log/log.go b/app/log/log.go
index a03483b8..428ef25e 100644
--- a/app/log/log.go
+++ b/app/log/log.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package log provides global logging functions to be used throughout the charon app.
 // It supports contextual logging via WithCtx and structured logging and structured errors
diff --git a/app/log/loki/batch.go b/app/log/loki/batch.go
index 1454e801..a56d1bbf 100644
--- a/app/log/loki/batch.go
+++ b/app/log/loki/batch.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package loki
 
diff --git a/app/log/loki/client.go b/app/log/loki/client.go
index 327fd72b..b8570e16 100644
--- a/app/log/loki/client.go
+++ b/app/log/loki/client.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package loki provides a simple best-effort loki log ingestion client supporting batch sends.
 // It is heavily based on https://github.com/grafana/loki/tree/main/clients/pkg/promtail/client.
diff --git a/app/log/loki/lokipb/v1/loki.pb.go b/app/log/loki/lokipb/v1/loki.pb.go
index ebbdac1e..404cd9d9 100644
--- a/app/log/loki/lokipb/v1/loki.pb.go
+++ b/app/log/loki/lokipb/v1/loki.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.36.5
+// 	protoc-gen-go v1.36.6
 // 	protoc        (unknown)
 // source: app/log/loki/lokipb/v1/loki.proto
 
@@ -180,35 +180,18 @@ func (x *Entry) GetLine() string {
 
 var File_app_log_loki_lokipb_v1_loki_proto protoreflect.FileDescriptor
 
-var file_app_log_loki_lokipb_v1_loki_proto_rawDesc = string([]byte{
-	0x0a, 0x21, 0x61, 0x70, 0x70, 0x2f, 0x6c, 0x6f, 0x67, 0x2f, 0x6c, 0x6f, 0x6b, 0x69, 0x2f, 0x6c,
-	0x6f, 0x6b, 0x69, 0x70, 0x62, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x6f, 0x6b, 0x69, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x12, 0x16, 0x61, 0x70, 0x70, 0x2e, 0x6c, 0x6f, 0x67, 0x2e, 0x6c, 0x6f, 0x6b,
-	0x69, 0x2e, 0x6c, 0x6f, 0x6b, 0x69, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f,
-	0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d,
-	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x47, 0x0a, 0x0b,
-	0x50, 0x75, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x07, 0x73,
-	0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61,
-	0x70, 0x70, 0x2e, 0x6c, 0x6f, 0x67, 0x2e, 0x6c, 0x6f, 0x6b, 0x69, 0x2e, 0x6c, 0x6f, 0x6b, 0x69,
-	0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x07, 0x73, 0x74,
-	0x72, 0x65, 0x61, 0x6d, 0x73, 0x22, 0x6d, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12,
-	0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69,
-	0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6c,
-	0x6f, 0x67, 0x2e, 0x6c, 0x6f, 0x6b, 0x69, 0x2e, 0x6c, 0x6f, 0x6b, 0x69, 0x70, 0x62, 0x2e, 0x76,
-	0x31, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73,
-	0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04,
-	0x68, 0x61, 0x73, 0x68, 0x22, 0x55, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x38, 0x0a,
-	0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
-	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69,
-	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x36, 0x5a, 0x34, 0x67,
-	0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x62, 0x6f, 0x6c, 0x6e, 0x65,
-	0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x63, 0x68, 0x61, 0x72, 0x6f, 0x6e, 0x2f, 0x61, 0x70, 0x70,
-	0x2f, 0x6c, 0x6f, 0x67, 0x2f, 0x6c, 0x6f, 0x6b, 0x69, 0x2f, 0x6c, 0x6f, 0x6b, 0x69, 0x70, 0x62,
-	0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-})
+const file_app_log_loki_lokipb_v1_loki_proto_rawDesc = "" +
+	"\n" +
+	"!app/log/loki/lokipb/v1/loki.proto\x12\x16app.log.loki.lokipb.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"G\n" +
+	"\vPushRequest\x128\n" +
+	"\astreams\x18\x01 \x03(\v2\x1e.app.log.loki.lokipb.v1.StreamR\astreams\"m\n" +
+	"\x06Stream\x12\x16\n" +
+	"\x06labels\x18\x01 \x01(\tR\x06labels\x127\n" +
+	"\aentries\x18\x02 \x03(\v2\x1d.app.log.loki.lokipb.v1.EntryR\aentries\x12\x12\n" +
+	"\x04hash\x18\x03 \x01(\x04R\x04hash\"U\n" +
+	"\x05Entry\x128\n" +
+	"\ttimestamp\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\ttimestamp\x12\x12\n" +
+	"\x04line\x18\x02 \x01(\tR\x04lineB6Z4github.com/obolnetwork/charon/app/log/loki/lokipb/v1b\x06proto3"
 
 var (
 	file_app_log_loki_lokipb_v1_loki_proto_rawDescOnce sync.Once
diff --git a/app/log/metrics.go b/app/log/metrics.go
index 0b675686..7e27a740 100644
--- a/app/log/metrics.go
+++ b/app/log/metrics.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package log
 
diff --git a/app/log/wrapper.go b/app/log/wrapper.go
index 983ede6d..0f043a7d 100644
--- a/app/log/wrapper.go
+++ b/app/log/wrapper.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package log
 
diff --git a/app/metrics.go b/app/metrics.go
index a0843871..fb462c3d 100644
--- a/app/metrics.go
+++ b/app/metrics.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package app
 
diff --git a/app/monitoringapi.go b/app/monitoringapi.go
index c786ec8e..2574cacb 100644
--- a/app/monitoringapi.go
+++ b/app/monitoringapi.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package app
 
diff --git a/app/obolapi/api.go b/app/obolapi/api.go
index 7e4bb7b3..7ad1f560 100644
--- a/app/obolapi/api.go
+++ b/app/obolapi/api.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package obolapi
 
diff --git a/app/obolapi/exit.go b/app/obolapi/exit.go
index dae3653d..e7c0de10 100644
--- a/app/obolapi/exit.go
+++ b/app/obolapi/exit.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package obolapi
 
diff --git a/app/obolapi/exit_model.go b/app/obolapi/exit_model.go
index 4c9a0294..efab3097 100644
--- a/app/obolapi/exit_model.go
+++ b/app/obolapi/exit_model.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package obolapi
 
diff --git a/app/peerinfo/adhoc.go b/app/peerinfo/adhoc.go
index 020a2ba7..b96788ff 100644
--- a/app/peerinfo/adhoc.go
+++ b/app/peerinfo/adhoc.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package peerinfo
 
diff --git a/app/peerinfo/metrics.go b/app/peerinfo/metrics.go
index 95a685d2..384f353f 100644
--- a/app/peerinfo/metrics.go
+++ b/app/peerinfo/metrics.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package peerinfo
 
diff --git a/app/peerinfo/peerinfo.go b/app/peerinfo/peerinfo.go
index bcfa48ff..f7fe4c6b 100644
--- a/app/peerinfo/peerinfo.go
+++ b/app/peerinfo/peerinfo.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package peerinfo
 
diff --git a/app/peerinfo/peerinfopb/v1/peerinfo.pb.go b/app/peerinfo/peerinfopb/v1/peerinfo.pb.go
index b56ba21a..2b8d2bc4 100644
--- a/app/peerinfo/peerinfopb/v1/peerinfo.pb.go
+++ b/app/peerinfo/peerinfopb/v1/peerinfo.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.36.5
+// 	protoc-gen-go v1.36.6
 // 	protoc        (unknown)
 // source: app/peerinfo/peerinfopb/v1/peerinfo.proto
 
@@ -116,40 +116,21 @@ func (x *PeerInfo) GetNickname() string {
 
 var File_app_peerinfo_peerinfopb_v1_peerinfo_proto protoreflect.FileDescriptor
 
-var file_app_peerinfo_peerinfopb_v1_peerinfo_proto_rawDesc = string([]byte{
-	0x0a, 0x29, 0x61, 0x70, 0x70, 0x2f, 0x70, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x70,
-	0x65, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x70, 0x62, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x65,
-	0x72, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x61, 0x70, 0x70,
-	0x2e, 0x70, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x70, 0x65, 0x65, 0x72, 0x69, 0x6e,
-	0x66, 0x6f, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
-	0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xca, 0x02, 0x0a, 0x08, 0x50, 0x65, 0x65,
-	0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x72, 0x6f, 0x6e, 0x5f,
-	0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63,
-	0x68, 0x61, 0x72, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09,
-	0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52,
-	0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x38, 0x0a, 0x07, 0x73, 0x65, 0x6e,
-	0x74, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
-	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
-	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x74, 0x41, 0x74,
-	0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x69, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18,
-	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x69, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3e,
-	0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x01,
-	0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e,
-	0x0a, 0x13, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x65, 0x6e,
-	0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x62, 0x75, 0x69,
-	0x6c, 0x64, 0x65, 0x72, 0x41, 0x70, 0x69, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1a,
-	0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73,
-	0x65, 0x6e, 0x74, 0x5f, 0x61, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74,
-	0x65, 0x64, 0x5f, 0x61, 0x74, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
-	0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x62, 0x6f, 0x6c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f,
-	0x63, 0x68, 0x61, 0x72, 0x6f, 0x6e, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x70, 0x65, 0x65, 0x72, 0x69,
-	0x6e, 0x66, 0x6f, 0x2f, 0x70, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x70, 0x62, 0x2f, 0x76,
-	0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-})
+const file_app_peerinfo_peerinfopb_v1_peerinfo_proto_rawDesc = "" +
+	"\n" +
+	")app/peerinfo/peerinfopb/v1/peerinfo.proto\x12\x1aapp.peerinfo.peerinfopb.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\xca\x02\n" +
+	"\bPeerInfo\x12%\n" +
+	"\x0echaron_version\x18\x01 \x01(\tR\rcharonVersion\x12\x1b\n" +
+	"\tlock_hash\x18\x02 \x01(\fR\blockHash\x128\n" +
+	"\asent_at\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampH\x00R\x06sentAt\x88\x01\x01\x12\x19\n" +
+	"\bgit_hash\x18\x04 \x01(\tR\agitHash\x12>\n" +
+	"\n" +
+	"started_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampH\x01R\tstartedAt\x88\x01\x01\x12.\n" +
+	"\x13builder_api_enabled\x18\x06 \x01(\bR\x11builderApiEnabled\x12\x1a\n" +
+	"\bnickname\x18\a \x01(\tR\bnicknameB\n" +
+	"\n" +
+	"\b_sent_atB\r\n" +
+	"\v_started_atB:Z8github.com/obolnetwork/charon/app/peerinfo/peerinfopb/v1b\x06proto3"
 
 var (
 	file_app_peerinfo_peerinfopb_v1_peerinfo_proto_rawDescOnce sync.Once
diff --git a/app/privkeylock/privkeylock.go b/app/privkeylock/privkeylock.go
index 07b7b34b..b45d37f4 100644
--- a/app/privkeylock/privkeylock.go
+++ b/app/privkeylock/privkeylock.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package privkeylock
 
diff --git a/app/promauto/promauto.go b/app/promauto/promauto.go
index 076efa2f..dae2e789 100644
--- a/app/promauto/promauto.go
+++ b/app/promauto/promauto.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package promauto is a drop-in replacement of github.com/prometheus/client_golang/prometheus/promauto
 // and adds support for wrapping all metrics with runtime labels.
diff --git a/app/promauto/resetgauge.go b/app/promauto/resetgauge.go
index 71bee5e3..e5a4e117 100644
--- a/app/promauto/resetgauge.go
+++ b/app/promauto/resetgauge.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package promauto
 
diff --git a/app/protonil/protonil.go b/app/protonil/protonil.go
index 560cb41c..12e95433 100644
--- a/app/protonil/protonil.go
+++ b/app/protonil/protonil.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package protonil provides a function to check if a protobuf message is nil or if it contains
 // nil fields that are not marked as optional.
diff --git a/app/retry/retry.go b/app/retry/retry.go
index 59873f9c..56b2d05e 100644
--- a/app/retry/retry.go
+++ b/app/retry/retry.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package retry provides a generic async function executor with retries for robustness against network failures.
 // Functions are linked to a deadline, executed asynchronously and network or context errors retried with backoff
diff --git a/app/stacksnipe/stacksnipe.go b/app/stacksnipe/stacksnipe.go
index 8e2ca74a..488d40e1 100644
--- a/app/stacksnipe/stacksnipe.go
+++ b/app/stacksnipe/stacksnipe.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package stacksnipe
 
diff --git a/app/tracer/trace.go b/app/tracer/trace.go
index 39123f17..77056094 100644
--- a/app/tracer/trace.go
+++ b/app/tracer/trace.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package tracer provides a global OpenTelemetry tracer.
 package tracer
diff --git a/app/version/version.go b/app/version/version.go
index d6e6292e..bc60740a 100644
--- a/app/version/version.go
+++ b/app/version/version.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package version
 
@@ -15,7 +15,7 @@ import (
 )
 
 // version a string since it is overwritten at build-time with the git tag for official releases.
-var version = "v1.2-dev"
+var version = "v1.4-dev"
 
 // Version is the branch version of the codebase.
 //   - Main branch: v0.X-dev
@@ -25,6 +25,8 @@ var Version, _ = Parse(version) // Error is caught in tests.
 // Supported returns the supported minor versions in order of precedence.
 func Supported() []SemVer {
 	return []SemVer{
+		{major: 1, minor: 4},
+		{major: 1, minor: 3},
 		{major: 1, minor: 2},
 		{major: 1, minor: 1},
 		{major: 1, minor: 0},
diff --git a/app/vmock.go b/app/vmock.go
index 1f44f794..6f92acd7 100644
--- a/app/vmock.go
+++ b/app/vmock.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package app
 
diff --git a/app/z/zapfield.go b/app/z/zapfield.go
index ef628c23..fc29fe6c 100644
--- a/app/z/zapfield.go
+++ b/app/z/zapfield.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package z provides an API for structured logging fields by wrapping zap.Field.
 // It also supports internal structured errors.
diff --git a/cluster/definition.go b/cluster/definition.go
index d29f77e2..31f3c9be 100644
--- a/cluster/definition.go
+++ b/cluster/definition.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster
 
diff --git a/cluster/deposit.go b/cluster/deposit.go
index 5855ab78..63ac1c02 100644
--- a/cluster/deposit.go
+++ b/cluster/deposit.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster
 
diff --git a/cluster/distvalidator.go b/cluster/distvalidator.go
index 1d4863d5..6d071e6c 100644
--- a/cluster/distvalidator.go
+++ b/cluster/distvalidator.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster
 
diff --git a/cluster/doc.go b/cluster/doc.go
index a27efcc4..d765f7de 100644
--- a/cluster/doc.go
+++ b/cluster/doc.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package cluster provides the cluster configuration API. It defines the `Definition` type that is
 // the output of the Launchpad and `charon create dkg` commands.
diff --git a/cluster/eip712sigs.go b/cluster/eip712sigs.go
index b608d123..9542b1a5 100644
--- a/cluster/eip712sigs.go
+++ b/cluster/eip712sigs.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster
 
diff --git a/cluster/helpers.go b/cluster/helpers.go
index 8ff3ee1e..c5d302d8 100644
--- a/cluster/helpers.go
+++ b/cluster/helpers.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster
 
diff --git a/cluster/lock.go b/cluster/lock.go
index 372444ac..e9fcaf64 100644
--- a/cluster/lock.go
+++ b/cluster/lock.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster
 
diff --git a/cluster/manifest/cluster.go b/cluster/manifest/cluster.go
index 8373844a..f8d3285e 100644
--- a/cluster/manifest/cluster.go
+++ b/cluster/manifest/cluster.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package manifest
 
diff --git a/cluster/manifest/helpers.go b/cluster/manifest/helpers.go
index 0826b9c0..efcb5e12 100644
--- a/cluster/manifest/helpers.go
+++ b/cluster/manifest/helpers.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package manifest
 
diff --git a/cluster/manifest/load.go b/cluster/manifest/load.go
index f5c4f9be..ce13c397 100644
--- a/cluster/manifest/load.go
+++ b/cluster/manifest/load.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package manifest
 
diff --git a/cluster/manifest/materialise.go b/cluster/manifest/materialise.go
index 4a8f0876..a1fcf33e 100644
--- a/cluster/manifest/materialise.go
+++ b/cluster/manifest/materialise.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package manifest
 
diff --git a/cluster/manifest/mutation.go b/cluster/manifest/mutation.go
index 45d1d4fb..6c04f68b 100644
--- a/cluster/manifest/mutation.go
+++ b/cluster/manifest/mutation.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package manifest
 
diff --git a/cluster/manifest/mutationaddvalidator.go b/cluster/manifest/mutationaddvalidator.go
index a2e0cce7..e5e5e879 100644
--- a/cluster/manifest/mutationaddvalidator.go
+++ b/cluster/manifest/mutationaddvalidator.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package manifest
 
diff --git a/cluster/manifest/mutationlegacylock.go b/cluster/manifest/mutationlegacylock.go
index 590cf8b9..760dd1af 100644
--- a/cluster/manifest/mutationlegacylock.go
+++ b/cluster/manifest/mutationlegacylock.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package manifest
 
diff --git a/cluster/manifest/mutationnodeapproval.go b/cluster/manifest/mutationnodeapproval.go
index 094ff53d..977b7581 100644
--- a/cluster/manifest/mutationnodeapproval.go
+++ b/cluster/manifest/mutationnodeapproval.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package manifest
 
diff --git a/cluster/manifest/types.go b/cluster/manifest/types.go
index 62ea9b65..0fc5db33 100644
--- a/cluster/manifest/types.go
+++ b/cluster/manifest/types.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package manifest
 
diff --git a/cluster/manifestpb/v1/manifest.pb.go b/cluster/manifestpb/v1/manifest.pb.go
index 75556285..caf797b9 100644
--- a/cluster/manifestpb/v1/manifest.pb.go
+++ b/cluster/manifestpb/v1/manifest.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.36.5
+// 	protoc-gen-go v1.36.6
 // 	protoc        (unknown)
 // source: cluster/manifestpb/v1/manifest.proto
 
@@ -573,95 +573,53 @@ func (*Empty) Descriptor() ([]byte, []int) {
 
 var File_cluster_manifestpb_v1_manifest_proto protoreflect.FileDescriptor
 
-var file_cluster_manifestpb_v1_manifest_proto_rawDesc = string([]byte{
-	0x0a, 0x24, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65,
-	0x73, 0x74, 0x70, 0x62, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e,
-	0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x1a, 0x19, 0x67,
-	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61,
-	0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe5, 0x03, 0x0a, 0x07, 0x43, 0x6c, 0x75,
-	0x73, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f,
-	0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x0c, 0x52, 0x13, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x4d, 0x75, 0x74, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x74, 0x65,
-	0x73, 0x74, 0x5f, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x61, 0x73, 0x68,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x75,
-	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
-	0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c,
-	0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
-	0x05, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x23, 0x0a, 0x0d,
-	0x64, 0x6b, 0x67, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x05, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x6b, 0x67, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68,
-	0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
-	0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x66, 0x6f, 0x72, 0x6b, 0x56, 0x65, 0x72,
-	0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72,
-	0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
-	0x72, 0x2e, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e,
-	0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,
-	0x6f, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72,
-	0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
-	0x72, 0x2e, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e,
-	0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64,
-	0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73,
-	0x75, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74,
-	0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x67,
-	0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e,
-	0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x20,
-	0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20,
-	0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67,
-	0x22, 0x60, 0x0a, 0x08, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06,
-	0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x61,
-	0x72, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61,
-	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x64, 0x61,
-	0x74, 0x61, 0x22, 0x83, 0x01, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4d, 0x75, 0x74,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
-	0x72, 0x2e, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e,
-	0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x0c, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69,
-	0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73,
-	0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x59, 0x0a, 0x12, 0x53, 0x69, 0x67, 0x6e,
-	0x65, 0x64, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x43,
-	0x0a, 0x09, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
-	0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x6d, 0x61, 0x6e, 0x69,
-	0x66, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64,
-	0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x73, 0x22, 0x36, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12,
-	0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x72,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x72, 0x22, 0xe8, 0x01, 0x0a, 0x09,
-	0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62,
-	0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70,
-	0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x5f,
-	0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75,
-	0x62, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x66, 0x65, 0x65, 0x5f, 0x72,
-	0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
-	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70,
-	0x69, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x77,
-	0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
-	0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61,
-	0x77, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x62, 0x75,
-	0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x17, 0x62,
-	0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x4a, 0x73, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x0d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
-	0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64,
-	0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6c,
-	0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x70, 0x62,
-	0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x76,
-	0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x20, 0x0a, 0x0a, 0x4c, 0x65, 0x67,
-	0x61, 0x63, 0x79, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x22, 0x07, 0x0a, 0x05, 0x45,
-	0x6d, 0x70, 0x74, 0x79, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
-	0x6f, 0x6d, 0x2f, 0x6f, 0x62, 0x6f, 0x6c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x63,
-	0x68, 0x61, 0x72, 0x6f, 0x6e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x6d, 0x61,
-	0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x33,
-})
+const file_cluster_manifestpb_v1_manifest_proto_rawDesc = "" +
+	"\n" +
+	"$cluster/manifestpb/v1/manifest.proto\x12\x15cluster.manifestpb.v1\x1a\x19google/protobuf/any.proto\"\xe5\x03\n" +
+	"\aCluster\x122\n" +
+	"\x15initial_mutation_hash\x18\x01 \x01(\fR\x13initialMutationHash\x120\n" +
+	"\x14latest_mutation_hash\x18\x02 \x01(\fR\x12latestMutationHash\x12\x12\n" +
+	"\x04name\x18\x03 \x01(\tR\x04name\x12\x1c\n" +
+	"\tthreshold\x18\x04 \x01(\x05R\tthreshold\x12#\n" +
+	"\rdkg_algorithm\x18\x05 \x01(\tR\fdkgAlgorithm\x12!\n" +
+	"\ffork_version\x18\x06 \x01(\fR\vforkVersion\x12=\n" +
+	"\toperators\x18\a \x03(\v2\x1f.cluster.manifestpb.v1.OperatorR\toperators\x12@\n" +
+	"\n" +
+	"validators\x18\b \x03(\v2 .cluster.manifestpb.v1.ValidatorR\n" +
+	"validators\x12-\n" +
+	"\x12consensus_protocol\x18\t \x01(\tR\x11consensusProtocol\x12(\n" +
+	"\x10target_gas_limit\x18\n" +
+	" \x01(\rR\x0etargetGasLimit\x12 \n" +
+	"\vcompounding\x18\v \x01(\bR\vcompounding\"`\n" +
+	"\bMutation\x12\x16\n" +
+	"\x06parent\x18\x01 \x01(\fR\x06parent\x12\x12\n" +
+	"\x04type\x18\x02 \x01(\tR\x04type\x12(\n" +
+	"\x04data\x18\x03 \x01(\v2\x14.google.protobuf.AnyR\x04data\"\x83\x01\n" +
+	"\x0eSignedMutation\x12;\n" +
+	"\bmutation\x18\x01 \x01(\v2\x1f.cluster.manifestpb.v1.MutationR\bmutation\x12\x16\n" +
+	"\x06signer\x18\x02 \x01(\fR\x06signer\x12\x1c\n" +
+	"\tsignature\x18\x03 \x01(\fR\tsignature\"Y\n" +
+	"\x12SignedMutationList\x12C\n" +
+	"\tmutations\x18\x01 \x03(\v2%.cluster.manifestpb.v1.SignedMutationR\tmutations\"6\n" +
+	"\bOperator\x12\x18\n" +
+	"\aaddress\x18\x01 \x01(\tR\aaddress\x12\x10\n" +
+	"\x03enr\x18\x02 \x01(\tR\x03enr\"\xe8\x01\n" +
+	"\tValidator\x12\x1d\n" +
+	"\n" +
+	"public_key\x18\x01 \x01(\fR\tpublicKey\x12\x1d\n" +
+	"\n" +
+	"pub_shares\x18\x02 \x03(\fR\tpubShares\x122\n" +
+	"\x15fee_recipient_address\x18\x03 \x01(\tR\x13feeRecipientAddress\x12-\n" +
+	"\x12withdrawal_address\x18\x04 \x01(\tR\x11withdrawalAddress\x12:\n" +
+	"\x19builder_registration_json\x18\x05 \x01(\fR\x17builderRegistrationJson\"Q\n" +
+	"\rValidatorList\x12@\n" +
+	"\n" +
+	"validators\x18\x01 \x03(\v2 .cluster.manifestpb.v1.ValidatorR\n" +
+	"validators\" \n" +
+	"\n" +
+	"LegacyLock\x12\x12\n" +
+	"\x04json\x18\x01 \x01(\fR\x04json\"\a\n" +
+	"\x05EmptyB5Z3github.com/obolnetwork/charon/cluster/manifestpb/v1b\x06proto3"
 
 var (
 	file_cluster_manifestpb_v1_manifest_proto_rawDescOnce sync.Once
diff --git a/cluster/operator.go b/cluster/operator.go
index 6cc58bd6..95978e7a 100644
--- a/cluster/operator.go
+++ b/cluster/operator.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster
 
diff --git a/cluster/registration.go b/cluster/registration.go
index 930cd925..d9611acc 100644
--- a/cluster/registration.go
+++ b/cluster/registration.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster
 
diff --git a/cluster/ssz.go b/cluster/ssz.go
index 2b74336c..951cf87a 100644
--- a/cluster/ssz.go
+++ b/cluster/ssz.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster
 
diff --git a/cluster/version.go b/cluster/version.go
index 8dcfeda4..1a199c0d 100644
--- a/cluster/version.go
+++ b/cluster/version.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster
 
diff --git a/cmd/addvalidators.go b/cmd/addvalidators.go
index 8d3699ef..8f891450 100644
--- a/cmd/addvalidators.go
+++ b/cmd/addvalidators.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/alpha.go b/cmd/alpha.go
index dd5eceea..c0b17ff5 100644
--- a/cmd/alpha.go
+++ b/cmd/alpha.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/ascii.go b/cmd/ascii.go
index 6b4d6de6..0799e07b 100644
--- a/cmd/ascii.go
+++ b/cmd/ascii.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/cmd.go b/cmd/cmd.go
index e83b47cb..7b42a1b3 100644
--- a/cmd/cmd.go
+++ b/cmd/cmd.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package cmd implements Charon's command-line interface.
 package cmd
diff --git a/cmd/combine.go b/cmd/combine.go
index e83008cd..e6ecf413 100644
--- a/cmd/combine.go
+++ b/cmd/combine.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/combine/combine.go b/cmd/combine/combine.go
index b574d728..04b948d3 100644
--- a/cmd/combine/combine.go
+++ b/cmd/combine/combine.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package combine
 
diff --git a/cmd/create.go b/cmd/create.go
index c5a9e042..8eb28379 100644
--- a/cmd/create.go
+++ b/cmd/create.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/createcluster.go b/cmd/createcluster.go
index 589342fc..c7a40a3a 100644
--- a/cmd/createcluster.go
+++ b/cmd/createcluster.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/createdkg.go b/cmd/createdkg.go
index 5b2abaea..959e0e5b 100644
--- a/cmd/createdkg.go
+++ b/cmd/createdkg.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/createenr.go b/cmd/createenr.go
index 338c0332..a761bf2f 100644
--- a/cmd/createenr.go
+++ b/cmd/createenr.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/debug_tools.go b/cmd/debug_tools.go
index 57d4ec39..d74c1fe0 100644
--- a/cmd/debug_tools.go
+++ b/cmd/debug_tools.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/dkg.go b/cmd/dkg.go
index 84e800e1..d54ef3ef 100644
--- a/cmd/dkg.go
+++ b/cmd/dkg.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/duration.go b/cmd/duration.go
index 179ab87e..b2786fe0 100644
--- a/cmd/duration.go
+++ b/cmd/duration.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/enr.go b/cmd/enr.go
index 6cd54ff7..5678d6c9 100644
--- a/cmd/enr.go
+++ b/cmd/enr.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/exit.go b/cmd/exit.go
index af4cee35..0a76e6d7 100644
--- a/cmd/exit.go
+++ b/cmd/exit.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/exit_broadcast.go b/cmd/exit_broadcast.go
index ec224fee..c561bcbb 100644
--- a/cmd/exit_broadcast.go
+++ b/cmd/exit_broadcast.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/exit_fetch.go b/cmd/exit_fetch.go
index feb025e6..d955dbe7 100644
--- a/cmd/exit_fetch.go
+++ b/cmd/exit_fetch.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/exit_list.go b/cmd/exit_list.go
index c43818f3..6f33bc0b 100644
--- a/cmd/exit_list.go
+++ b/cmd/exit_list.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/exit_sign.go b/cmd/exit_sign.go
index 1d70234f..b64f1ed3 100644
--- a/cmd/exit_sign.go
+++ b/cmd/exit_sign.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/manifest_tools.go b/cmd/manifest_tools.go
index deeeaab5..9cf49814 100644
--- a/cmd/manifest_tools.go
+++ b/cmd/manifest_tools.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/relay.go b/cmd/relay.go
index c79fc930..8b9b6d47 100644
--- a/cmd/relay.go
+++ b/cmd/relay.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/relay/metrics.go b/cmd/relay/metrics.go
index 8cf34958..fbf3ab52 100644
--- a/cmd/relay/metrics.go
+++ b/cmd/relay/metrics.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package relay
 
diff --git a/cmd/relay/p2p.go b/cmd/relay/p2p.go
index 046a169a..d36d1548 100644
--- a/cmd/relay/p2p.go
+++ b/cmd/relay/p2p.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package relay
 
diff --git a/cmd/relay/relay.go b/cmd/relay/relay.go
index 6827fddf..00e6829c 100644
--- a/cmd/relay/relay.go
+++ b/cmd/relay/relay.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package relay
 
diff --git a/cmd/run.go b/cmd/run.go
index 002da7a2..38c8c0ca 100644
--- a/cmd/run.go
+++ b/cmd/run.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/unsafe.go b/cmd/unsafe.go
index edcac223..c7b1730e 100644
--- a/cmd/unsafe.go
+++ b/cmd/unsafe.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/version.go b/cmd/version.go
index c96fb38e..e04070b5 100644
--- a/cmd/version.go
+++ b/cmd/version.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/view_cluster_manifest.go b/cmd/view_cluster_manifest.go
index fe5458ee..eb0e3796 100644
--- a/cmd/view_cluster_manifest.go
+++ b/cmd/view_cluster_manifest.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/core/aggsigdb/memory.go b/core/aggsigdb/memory.go
index 7187f03e..2d4d8009 100644
--- a/core/aggsigdb/memory.go
+++ b/core/aggsigdb/memory.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package aggsigdb
 
diff --git a/core/aggsigdb/memory_v2.go b/core/aggsigdb/memory_v2.go
index e96adf33..3fc5ff04 100644
--- a/core/aggsigdb/memory_v2.go
+++ b/core/aggsigdb/memory_v2.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package aggsigdb
 
diff --git a/core/bcast/bcast.go b/core/bcast/bcast.go
index 2ebaf12c..442463a9 100644
--- a/core/bcast/bcast.go
+++ b/core/bcast/bcast.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package bcast provides the core workflow's broadcaster component that
 // broadcasts/submits aggregated signed duty data to the beacon node.
diff --git a/core/bcast/metrics.go b/core/bcast/metrics.go
index 027c3d0d..95f987e3 100644
--- a/core/bcast/metrics.go
+++ b/core/bcast/metrics.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package bcast
 
diff --git a/core/bcast/recast.go b/core/bcast/recast.go
index 6e508796..208f09f2 100644
--- a/core/bcast/recast.go
+++ b/core/bcast/recast.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package bcast
 
diff --git a/core/consensus/controller.go b/core/consensus/controller.go
index af426070..533d4f8d 100644
--- a/core/consensus/controller.go
+++ b/core/consensus/controller.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package consensus
 
diff --git a/core/consensus/debugger.go b/core/consensus/debugger.go
index 09bb477d..0a5d64f4 100644
--- a/core/consensus/debugger.go
+++ b/core/consensus/debugger.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package consensus
 
diff --git a/core/consensus/metrics/metrics.go b/core/consensus/metrics/metrics.go
index eae481bd..09bc3465 100644
--- a/core/consensus/metrics/metrics.go
+++ b/core/consensus/metrics/metrics.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package metrics
 
diff --git a/core/consensus/mocks/debugger.go b/core/consensus/mocks/debugger.go
index f3cca121..a1711c08 100644
--- a/core/consensus/mocks/debugger.go
+++ b/core/consensus/mocks/debugger.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Code generated by mockery v2.42.1. DO NOT EDIT.
 
diff --git a/core/consensus/protocols/protocols.go b/core/consensus/protocols/protocols.go
index 961ae92e..42e421ca 100644
--- a/core/consensus/protocols/protocols.go
+++ b/core/consensus/protocols/protocols.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package protocols
 
diff --git a/core/consensus/qbft/msg.go b/core/consensus/qbft/msg.go
index 1822cabf..d73e5401 100644
--- a/core/consensus/qbft/msg.go
+++ b/core/consensus/qbft/msg.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package qbft
 
diff --git a/core/consensus/qbft/qbft.go b/core/consensus/qbft/qbft.go
index 2096b38e..6deab006 100644
--- a/core/consensus/qbft/qbft.go
+++ b/core/consensus/qbft/qbft.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package qbft
 
diff --git a/core/consensus/qbft/sniffer.go b/core/consensus/qbft/sniffer.go
index 12e76b75..ca8c30ef 100644
--- a/core/consensus/qbft/sniffer.go
+++ b/core/consensus/qbft/sniffer.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package qbft
 
diff --git a/core/consensus/qbft/transport.go b/core/consensus/qbft/transport.go
index 7ed39961..541ca058 100644
--- a/core/consensus/qbft/transport.go
+++ b/core/consensus/qbft/transport.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package qbft
 
diff --git a/core/consensus/utils/instance_io.go b/core/consensus/utils/instance_io.go
index 018d3cb0..1eb1ab05 100644
--- a/core/consensus/utils/instance_io.go
+++ b/core/consensus/utils/instance_io.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package utils
 
diff --git a/core/consensus/utils/roundtimer.go b/core/consensus/utils/roundtimer.go
index 4364156b..65335b3d 100644
--- a/core/consensus/utils/roundtimer.go
+++ b/core/consensus/utils/roundtimer.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package utils
 
diff --git a/core/consensus/wrapper.go b/core/consensus/wrapper.go
index f5aa66a5..d1b7835d 100644
--- a/core/consensus/wrapper.go
+++ b/core/consensus/wrapper.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package consensus
 
diff --git a/core/corepb/v1/consensus.pb.go b/core/corepb/v1/consensus.pb.go
index be16dcdf..ebd87933 100644
--- a/core/corepb/v1/consensus.pb.go
+++ b/core/corepb/v1/consensus.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.36.5
+// 	protoc-gen-go v1.36.6
 // 	protoc        (unknown)
 // source: core/corepb/v1/consensus.proto
 
@@ -365,80 +365,39 @@ func (x *SniffedConsensusInstances) GetGitHash() string {
 
 var File_core_corepb_v1_consensus_proto protoreflect.FileDescriptor
 
-var file_core_corepb_v1_consensus_proto_rawDesc = string([]byte{
-	0x0a, 0x1e, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2f, 0x76, 0x31,
-	0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x12, 0x0e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x76, 0x31,
-	0x1a, 0x19, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2f, 0x76, 0x31,
-	0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f,
-	0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
-	0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa4, 0x02, 0x0a, 0x07, 0x51, 0x42, 0x46, 0x54,
-	0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x75, 0x74, 0x79, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x72,
-	0x65, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x75, 0x74, 0x79, 0x52, 0x04, 0x64, 0x75, 0x74,
-	0x79, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x03, 0x20,
-	0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x78, 0x12, 0x14, 0x0a, 0x05,
-	0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x6f, 0x75,
-	0x6e, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x72,
-	0x6f, 0x75, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x70,
-	0x61, 0x72, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67,
-	0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69,
-	0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65,
-	0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x76, 0x61, 0x6c,
-	0x75, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72,
-	0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0c, 0x20,
-	0x01, 0x28, 0x0c, 0x52, 0x11, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x56, 0x61, 0x6c,
-	0x75, 0x65, 0x48, 0x61, 0x73, 0x68, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x07,
-	0x10, 0x08, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x22, 0xaa,
-	0x01, 0x0a, 0x10, 0x51, 0x42, 0x46, 0x54, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73,
-	0x4d, 0x73, 0x67, 0x12, 0x29, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x76,
-	0x31, 0x2e, 0x51, 0x42, 0x46, 0x54, 0x4d, 0x73, 0x67, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3d,
-	0x0a, 0x0d, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
-	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x72,
-	0x65, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x42, 0x46, 0x54, 0x4d, 0x73, 0x67, 0x52, 0x0d,
-	0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a,
-	0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,
-	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
-	0x41, 0x6e, 0x79, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x13,
-	0x53, 0x6e, 0x69, 0x66, 0x66, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73,
-	0x4d, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
-	0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x32, 0x0a,
-	0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x72,
-	0x65, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x42, 0x46, 0x54,
-	0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4d, 0x73, 0x67, 0x52, 0x03, 0x6d, 0x73,
-	0x67, 0x22, 0xe0, 0x01, 0x0a, 0x18, 0x53, 0x6e, 0x69, 0x66, 0x66, 0x65, 0x64, 0x43, 0x6f, 0x6e,
-	0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x39,
-	0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09,
-	0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x64,
-	0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12,
-	0x19, 0x0a, 0x08, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28,
-	0x03, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x78, 0x12, 0x37, 0x0a, 0x04, 0x6d, 0x73,
-	0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e,
-	0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6e, 0x69, 0x66, 0x66, 0x65,
-	0x64, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4d, 0x73, 0x67, 0x52, 0x04, 0x6d,
-	0x73, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f,
-	0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
-	0x6f, 0x6c, 0x49, 0x64, 0x22, 0x7e, 0x0a, 0x19, 0x53, 0x6e, 0x69, 0x66, 0x66, 0x65, 0x64, 0x43,
-	0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
-	0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01,
-	0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x72, 0x65,
-	0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6e, 0x69, 0x66, 0x66, 0x65, 0x64, 0x43, 0x6f, 0x6e,
-	0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x09,
-	0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x69, 0x74,
-	0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x69, 0x74,
-	0x48, 0x61, 0x73, 0x68, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
-	0x6f, 0x6d, 0x2f, 0x6f, 0x62, 0x6f, 0x6c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x63,
-	0x68, 0x61, 0x72, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x70,
-	0x62, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-})
+const file_core_corepb_v1_consensus_proto_rawDesc = "" +
+	"\n" +
+	"\x1ecore/corepb/v1/consensus.proto\x12\x0ecore.corepb.v1\x1a\x19core/corepb/v1/core.proto\x1a\x19google/protobuf/any.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xa4\x02\n" +
+	"\aQBFTMsg\x12\x12\n" +
+	"\x04type\x18\x01 \x01(\x03R\x04type\x12(\n" +
+	"\x04duty\x18\x02 \x01(\v2\x14.core.corepb.v1.DutyR\x04duty\x12\x19\n" +
+	"\bpeer_idx\x18\x03 \x01(\x03R\apeerIdx\x12\x14\n" +
+	"\x05round\x18\x04 \x01(\x03R\x05round\x12%\n" +
+	"\x0eprepared_round\x18\x06 \x01(\x03R\rpreparedRound\x12\x1c\n" +
+	"\tsignature\x18\b \x01(\fR\tsignature\x12\x1d\n" +
+	"\n" +
+	"value_hash\x18\v \x01(\fR\tvalueHash\x12.\n" +
+	"\x13prepared_value_hash\x18\f \x01(\fR\x11preparedValueHashJ\x04\b\x05\x10\x06J\x04\b\a\x10\bJ\x04\b\t\x10\n" +
+	"J\x04\b\n" +
+	"\x10\v\"\xaa\x01\n" +
+	"\x10QBFTConsensusMsg\x12)\n" +
+	"\x03msg\x18\x01 \x01(\v2\x17.core.corepb.v1.QBFTMsgR\x03msg\x12=\n" +
+	"\rjustification\x18\x02 \x03(\v2\x17.core.corepb.v1.QBFTMsgR\rjustification\x12,\n" +
+	"\x06values\x18\x03 \x03(\v2\x14.google.protobuf.AnyR\x06values\"\x83\x01\n" +
+	"\x13SniffedConsensusMsg\x128\n" +
+	"\ttimestamp\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\ttimestamp\x122\n" +
+	"\x03msg\x18\x02 \x01(\v2 .core.corepb.v1.QBFTConsensusMsgR\x03msg\"\xe0\x01\n" +
+	"\x18SniffedConsensusInstance\x129\n" +
+	"\n" +
+	"started_at\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\tstartedAt\x12\x14\n" +
+	"\x05nodes\x18\x02 \x01(\x03R\x05nodes\x12\x19\n" +
+	"\bpeer_idx\x18\x03 \x01(\x03R\apeerIdx\x127\n" +
+	"\x04msgs\x18\x04 \x03(\v2#.core.corepb.v1.SniffedConsensusMsgR\x04msgs\x12\x1f\n" +
+	"\vprotocol_id\x18\x05 \x01(\tR\n" +
+	"protocolId\"~\n" +
+	"\x19SniffedConsensusInstances\x12F\n" +
+	"\tinstances\x18\x01 \x03(\v2(.core.corepb.v1.SniffedConsensusInstanceR\tinstances\x12\x19\n" +
+	"\bgit_hash\x18\x02 \x01(\tR\agitHashB.Z,github.com/obolnetwork/charon/core/corepb/v1b\x06proto3"
 
 var (
 	file_core_corepb_v1_consensus_proto_rawDescOnce sync.Once
diff --git a/core/corepb/v1/core.pb.go b/core/corepb/v1/core.pb.go
index af712598..ae1647f0 100644
--- a/core/corepb/v1/core.pb.go
+++ b/core/corepb/v1/core.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.36.5
+// 	protoc-gen-go v1.36.6
 // 	protoc        (unknown)
 // source: core/corepb/v1/core.proto
 
@@ -223,43 +223,26 @@ func (x *ParSignedData) GetShareIdx() int32 {
 
 var File_core_corepb_v1_core_proto protoreflect.FileDescriptor
 
-var file_core_corepb_v1_core_proto_rawDesc = string([]byte{
-	0x0a, 0x19, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2f, 0x76, 0x31,
-	0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x63, 0x6f, 0x72,
-	0x65, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x22, 0x2e, 0x0a, 0x04, 0x44,
-	0x75, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x04, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x0f,
-	0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x12,
-	0x3a, 0x0a, 0x03, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63,
-	0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e,
-	0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x2e, 0x53, 0x65,
-	0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x73, 0x65, 0x74, 0x1a, 0x36, 0x0a, 0x08, 0x53,
-	0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
-	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
-	0x02, 0x38, 0x01, 0x22, 0xa6, 0x01, 0x0a, 0x10, 0x50, 0x61, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x65,
-	0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x12, 0x3b, 0x0a, 0x03, 0x73, 0x65, 0x74, 0x18,
-	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x72,
-	0x65, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64,
-	0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79,
-	0x52, 0x03, 0x73, 0x65, 0x74, 0x1a, 0x55, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72,
-	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
-	0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62,
-	0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x44, 0x61, 0x74,
-	0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5e, 0x0a, 0x0d,
-	0x50, 0x61, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a,
-	0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74,
-	0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02,
-	0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12,
-	0x1b, 0x0a, 0x09, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x03, 0x20, 0x01,
-	0x28, 0x05, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x65, 0x49, 0x64, 0x78, 0x42, 0x2e, 0x5a, 0x2c,
-	0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x62, 0x6f, 0x6c, 0x6e,
-	0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x63, 0x68, 0x61, 0x72, 0x6f, 0x6e, 0x2f, 0x63, 0x6f,
-	0x72, 0x65, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x33,
-})
+const file_core_corepb_v1_core_proto_rawDesc = "" +
+	"\n" +
+	"\x19core/corepb/v1/core.proto\x12\x0ecore.corepb.v1\".\n" +
+	"\x04Duty\x12\x12\n" +
+	"\x04slot\x18\x01 \x01(\x04R\x04slot\x12\x12\n" +
+	"\x04type\x18\x02 \x01(\x05R\x04type\"\x85\x01\n" +
+	"\x0fUnsignedDataSet\x12:\n" +
+	"\x03set\x18\x01 \x03(\v2(.core.corepb.v1.UnsignedDataSet.SetEntryR\x03set\x1a6\n" +
+	"\bSetEntry\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
+	"\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\"\xa6\x01\n" +
+	"\x10ParSignedDataSet\x12;\n" +
+	"\x03set\x18\x01 \x03(\v2).core.corepb.v1.ParSignedDataSet.SetEntryR\x03set\x1aU\n" +
+	"\bSetEntry\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\tR\x03key\x123\n" +
+	"\x05value\x18\x02 \x01(\v2\x1d.core.corepb.v1.ParSignedDataR\x05value:\x028\x01\"^\n" +
+	"\rParSignedData\x12\x12\n" +
+	"\x04data\x18\x01 \x01(\fR\x04data\x12\x1c\n" +
+	"\tsignature\x18\x02 \x01(\fR\tsignature\x12\x1b\n" +
+	"\tshare_idx\x18\x03 \x01(\x05R\bshareIdxB.Z,github.com/obolnetwork/charon/core/corepb/v1b\x06proto3"
 
 var (
 	file_core_corepb_v1_core_proto_rawDescOnce sync.Once
diff --git a/core/corepb/v1/parsigex.pb.go b/core/corepb/v1/parsigex.pb.go
index 406d5518..a5d09201 100644
--- a/core/corepb/v1/parsigex.pb.go
+++ b/core/corepb/v1/parsigex.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.36.5
+// 	protoc-gen-go v1.36.6
 // 	protoc        (unknown)
 // source: core/corepb/v1/parsigex.proto
 
@@ -75,24 +75,12 @@ func (x *ParSigExMsg) GetDataSet() *ParSignedDataSet {
 
 var File_core_corepb_v1_parsigex_proto protoreflect.FileDescriptor
 
-var file_core_corepb_v1_parsigex_proto_rawDesc = string([]byte{
-	0x0a, 0x1d, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2f, 0x76, 0x31,
-	0x2f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x67, 0x65, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
-	0x0e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x1a,
-	0x19, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2f, 0x76, 0x31, 0x2f,
-	0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x74, 0x0a, 0x0b, 0x50, 0x61,
-	0x72, 0x53, 0x69, 0x67, 0x45, 0x78, 0x4d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x75, 0x74,
-	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63,
-	0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x75, 0x74, 0x79, 0x52, 0x04, 0x64,
-	0x75, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x65, 0x74, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x72,
-	0x65, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64,
-	0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74,
-	0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f,
-	0x62, 0x6f, 0x6c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x63, 0x68, 0x61, 0x72, 0x6f,
-	0x6e, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2f, 0x76, 0x31,
-	0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-})
+const file_core_corepb_v1_parsigex_proto_rawDesc = "" +
+	"\n" +
+	"\x1dcore/corepb/v1/parsigex.proto\x12\x0ecore.corepb.v1\x1a\x19core/corepb/v1/core.proto\"t\n" +
+	"\vParSigExMsg\x12(\n" +
+	"\x04duty\x18\x01 \x01(\v2\x14.core.corepb.v1.DutyR\x04duty\x12;\n" +
+	"\bdata_set\x18\x02 \x01(\v2 .core.corepb.v1.ParSignedDataSetR\adataSetB.Z,github.com/obolnetwork/charon/core/corepb/v1b\x06proto3"
 
 var (
 	file_core_corepb_v1_parsigex_proto_rawDescOnce sync.Once
diff --git a/core/corepb/v1/priority.pb.go b/core/corepb/v1/priority.pb.go
index 229b3648..6688fb17 100644
--- a/core/corepb/v1/priority.pb.go
+++ b/core/corepb/v1/priority.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.36.5
+// 	protoc-gen-go v1.36.6
 // 	protoc        (unknown)
 // source: core/corepb/v1/priority.proto
 
@@ -307,60 +307,30 @@ func (x *PriorityScoredResult) GetScore() int64 {
 
 var File_core_corepb_v1_priority_proto protoreflect.FileDescriptor
 
-var file_core_corepb_v1_priority_proto_rawDesc = string([]byte{
-	0x0a, 0x1d, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2f, 0x76, 0x31,
-	0x2f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
-	0x0e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x1a,
-	0x19, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2f, 0x76, 0x31, 0x2f,
-	0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67,
-	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7e, 0x0a, 0x0e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74,
-	0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2f, 0x0a, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x18,
-	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x72,
-	0x65, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4d,
-	0x73, 0x67, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69,
-	0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e,
-	0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69,
-	0x74, 0x79, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x74,
-	0x6f, 0x70, 0x69, 0x63, 0x73, 0x22, 0xad, 0x01, 0x0a, 0x0b, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69,
-	0x74, 0x79, 0x4d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x75, 0x74, 0x79, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x70,
-	0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x75, 0x74, 0x79, 0x52, 0x04, 0x64, 0x75, 0x74, 0x79, 0x12,
-	0x3d, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
-	0x25, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x76, 0x31,
-	0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x50, 0x72,
-	0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x17,
-	0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61,
-	0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e,
-	0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x79, 0x0a, 0x15, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74,
-	0x79, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x2a,
-	0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e,
-	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
-	0x41, 0x6e, 0x79, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x34, 0x0a, 0x0a, 0x70, 0x72,
-	0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14,
-	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
-	0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73,
-	0x22, 0x87, 0x01, 0x0a, 0x13, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x70,
-	0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2a, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69,
-	0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x74,
-	0x6f, 0x70, 0x69, 0x63, 0x12, 0x44, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69,
-	0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e,
-	0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69,
-	0x74, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0a,
-	0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x5e, 0x0a, 0x14, 0x50, 0x72,
-	0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x75,
-	0x6c, 0x74, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f,
-	0x72, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69,
-	0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x62, 0x6f, 0x6c, 0x6e, 0x65, 0x74,
-	0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x63, 0x68, 0x61, 0x72, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x72, 0x65,
-	0x2f, 0x63, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x33,
-})
+const file_core_corepb_v1_priority_proto_rawDesc = "" +
+	"\n" +
+	"\x1dcore/corepb/v1/priority.proto\x12\x0ecore.corepb.v1\x1a\x19core/corepb/v1/core.proto\x1a\x19google/protobuf/any.proto\"~\n" +
+	"\x0ePriorityResult\x12/\n" +
+	"\x04msgs\x18\x01 \x03(\v2\x1b.core.corepb.v1.PriorityMsgR\x04msgs\x12;\n" +
+	"\x06topics\x18\x02 \x03(\v2#.core.corepb.v1.PriorityTopicResultR\x06topics\"\xad\x01\n" +
+	"\vPriorityMsg\x12(\n" +
+	"\x04duty\x18\x01 \x01(\v2\x14.core.corepb.v1.DutyR\x04duty\x12=\n" +
+	"\x06topics\x18\x02 \x03(\v2%.core.corepb.v1.PriorityTopicProposalR\x06topics\x12\x17\n" +
+	"\apeer_id\x18\x03 \x01(\tR\x06peerId\x12\x1c\n" +
+	"\tsignature\x18\x04 \x01(\fR\tsignature\"y\n" +
+	"\x15PriorityTopicProposal\x12*\n" +
+	"\x05topic\x18\x01 \x01(\v2\x14.google.protobuf.AnyR\x05topic\x124\n" +
+	"\n" +
+	"priorities\x18\x02 \x03(\v2\x14.google.protobuf.AnyR\n" +
+	"priorities\"\x87\x01\n" +
+	"\x13PriorityTopicResult\x12*\n" +
+	"\x05topic\x18\x01 \x01(\v2\x14.google.protobuf.AnyR\x05topic\x12D\n" +
+	"\n" +
+	"priorities\x18\x02 \x03(\v2$.core.corepb.v1.PriorityScoredResultR\n" +
+	"priorities\"^\n" +
+	"\x14PriorityScoredResult\x120\n" +
+	"\bpriority\x18\x01 \x01(\v2\x14.google.protobuf.AnyR\bpriority\x12\x14\n" +
+	"\x05score\x18\x02 \x01(\x03R\x05scoreB.Z,github.com/obolnetwork/charon/core/corepb/v1b\x06proto3"
 
 var (
 	file_core_corepb_v1_priority_proto_rawDescOnce sync.Once
diff --git a/core/deadline.go b/core/deadline.go
index db53dece..5a70fd71 100644
--- a/core/deadline.go
+++ b/core/deadline.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core
 
diff --git a/core/dutydb/memory.go b/core/dutydb/memory.go
index 19a92840..0854a728 100644
--- a/core/dutydb/memory.go
+++ b/core/dutydb/memory.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package dutydb
 
diff --git a/core/dutydefinition.go b/core/dutydefinition.go
index 8c4a247f..81030718 100644
--- a/core/dutydefinition.go
+++ b/core/dutydefinition.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core
 
diff --git a/core/eth2signeddata.go b/core/eth2signeddata.go
index 95b78e44..947e0e52 100644
--- a/core/eth2signeddata.go
+++ b/core/eth2signeddata.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core
 
diff --git a/core/fetcher/fetcher.go b/core/fetcher/fetcher.go
index 3c06df42..3c2a5e38 100644
--- a/core/fetcher/fetcher.go
+++ b/core/fetcher/fetcher.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package fetcher
 
diff --git a/core/gater.go b/core/gater.go
index 76153766..ae6459a3 100644
--- a/core/gater.go
+++ b/core/gater.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core
 
diff --git a/core/infosync/infosync.go b/core/infosync/infosync.go
index 7ec35f53..702deead 100644
--- a/core/infosync/infosync.go
+++ b/core/infosync/infosync.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package infosync provides a simple use-case of the priority protocol that prioritises cluster supported versions.
 package infosync
diff --git a/core/interfaces.go b/core/interfaces.go
index 5ba2acef..cba610c4 100644
--- a/core/interfaces.go
+++ b/core/interfaces.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core
 
diff --git a/core/mocks/consensus.go b/core/mocks/consensus.go
index f5d28290..738bef7b 100644
--- a/core/mocks/consensus.go
+++ b/core/mocks/consensus.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Code generated by mockery v2.42.1. DO NOT EDIT.
 
diff --git a/core/mocks/deadliner.go b/core/mocks/deadliner.go
index 5c249064..9a548e14 100644
--- a/core/mocks/deadliner.go
+++ b/core/mocks/deadliner.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Code generated by mockery v2.42.1. DO NOT EDIT.
 
diff --git a/core/parsigdb/memory.go b/core/parsigdb/memory.go
index ffa2426c..ada45b00 100644
--- a/core/parsigdb/memory.go
+++ b/core/parsigdb/memory.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package parsigdb
 
diff --git a/core/parsigdb/metrics.go b/core/parsigdb/metrics.go
index 557c9706..10ae2aac 100644
--- a/core/parsigdb/metrics.go
+++ b/core/parsigdb/metrics.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package parsigdb
 
diff --git a/core/parsigex/memory.go b/core/parsigex/memory.go
index f0faa08d..297336b3 100644
--- a/core/parsigex/memory.go
+++ b/core/parsigex/memory.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package parsigex
 
diff --git a/core/parsigex/parsigex.go b/core/parsigex/parsigex.go
index 83f79a05..02a4e268 100644
--- a/core/parsigex/parsigex.go
+++ b/core/parsigex/parsigex.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package parsigex
 
diff --git a/core/priority/calculate.go b/core/priority/calculate.go
index 34145a45..3ffe22a3 100644
--- a/core/priority/calculate.go
+++ b/core/priority/calculate.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package priority
 
diff --git a/core/priority/component.go b/core/priority/component.go
index 7ccb6c28..9918852d 100644
--- a/core/priority/component.go
+++ b/core/priority/component.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package priority
 
diff --git a/core/priority/prioritiser.go b/core/priority/prioritiser.go
index 89d4b772..4c1dc3c2 100644
--- a/core/priority/prioritiser.go
+++ b/core/priority/prioritiser.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package priority implements the priority protocol that resolves arbitrary cluster wide priorities.
 //
diff --git a/core/proto.go b/core/proto.go
index 1e3656bd..de59ca74 100644
--- a/core/proto.go
+++ b/core/proto.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core
 
diff --git a/core/qbft/qbft.go b/core/qbft/qbft.go
index bf24d09d..73c9463d 100644
--- a/core/qbft/qbft.go
+++ b/core/qbft/qbft.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package qbft is an implementation of the https://arxiv.org/pdf/2002.03613.pdf paper
 // referenced by the QBFT spec https://github.com/ConsenSys/qbft-formal-spec-and-verification.
diff --git a/core/retry.go b/core/retry.go
index 0687c64f..382f9ac1 100644
--- a/core/retry.go
+++ b/core/retry.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core
 
diff --git a/core/scheduler/metrics.go b/core/scheduler/metrics.go
index d5cb432a..99aa91d7 100644
--- a/core/scheduler/metrics.go
+++ b/core/scheduler/metrics.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package scheduler
 
diff --git a/core/scheduler/offset.go b/core/scheduler/offset.go
index f2a8cd9d..7db1fb98 100644
--- a/core/scheduler/offset.go
+++ b/core/scheduler/offset.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package scheduler
 
diff --git a/core/scheduler/scheduler.go b/core/scheduler/scheduler.go
index 942eaec5..57bc4050 100644
--- a/core/scheduler/scheduler.go
+++ b/core/scheduler/scheduler.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package scheduler
 
diff --git a/core/sigagg/sigagg.go b/core/sigagg/sigagg.go
index 0d095c24..d43d0f73 100644
--- a/core/sigagg/sigagg.go
+++ b/core/sigagg/sigagg.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package sigagg provides the sigagg core workflow component that
 // aggregates *threshold* partial signed duty data objects
diff --git a/core/signeddata.go b/core/signeddata.go
index e1e9b49e..c5c2f8fd 100644
--- a/core/signeddata.go
+++ b/core/signeddata.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core
 
diff --git a/core/ssz.go b/core/ssz.go
index d11087ba..866234ec 100644
--- a/core/ssz.go
+++ b/core/ssz.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core
 
diff --git a/core/tracing.go b/core/tracing.go
index 2ad98f31..d105f784 100644
--- a/core/tracing.go
+++ b/core/tracing.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core
 
diff --git a/core/tracker/inclusion.go b/core/tracker/inclusion.go
index b1c1da61..787070ef 100644
--- a/core/tracker/inclusion.go
+++ b/core/tracker/inclusion.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package tracker
 
diff --git a/core/tracker/metrics.go b/core/tracker/metrics.go
index 193ed054..3c8ea86f 100644
--- a/core/tracker/metrics.go
+++ b/core/tracker/metrics.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package tracker
 
diff --git a/core/tracker/reason.go b/core/tracker/reason.go
index 523e589f..f64d40f1 100644
--- a/core/tracker/reason.go
+++ b/core/tracker/reason.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package tracker
 
diff --git a/core/tracker/tracker.go b/core/tracker/tracker.go
index 728c0e6f..bf98a872 100644
--- a/core/tracker/tracker.go
+++ b/core/tracker/tracker.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package tracker
 
diff --git a/core/tracking.go b/core/tracking.go
index 3ab54b9a..3c20ed75 100644
--- a/core/tracking.go
+++ b/core/tracking.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core
 
diff --git a/core/types.go b/core/types.go
index 9144dead..63cdad42 100644
--- a/core/types.go
+++ b/core/types.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core
 
diff --git a/core/unsigneddata.go b/core/unsigneddata.go
index 76d1d964..190afcc8 100644
--- a/core/unsigneddata.go
+++ b/core/unsigneddata.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core
 
diff --git a/core/validatorapi/eth2types.go b/core/validatorapi/eth2types.go
index 810bc69f..fa44eb8c 100644
--- a/core/validatorapi/eth2types.go
+++ b/core/validatorapi/eth2types.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package validatorapi
 
diff --git a/core/validatorapi/metrics.go b/core/validatorapi/metrics.go
index dece3b7b..97f22c85 100644
--- a/core/validatorapi/metrics.go
+++ b/core/validatorapi/metrics.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package validatorapi
 
diff --git a/core/validatorapi/router.go b/core/validatorapi/router.go
index ffa681e1..1d5e5d58 100644
--- a/core/validatorapi/router.go
+++ b/core/validatorapi/router.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package validatorapi defines validator facing API that serves the subset of
 // endpoints related to distributed validation and reverse-proxies the rest to the
@@ -1448,7 +1448,7 @@ func unmarshal(typ contentType, body []byte, v any) error {
 		unmarshaller, ok := v.(ssz.Unmarshaler)
 		if !ok {
 			return apiError{
-				StatusCode: http.StatusInternalServerError,
+				StatusCode: http.StatusUnsupportedMediaType,
 				Message:    "internal type doesn't support ssz unmarshalling",
 				Err:        errors.New("internal type doesn't support ssz unmarshalling"),
 			}
@@ -1457,7 +1457,7 @@ func unmarshal(typ contentType, body []byte, v any) error {
 		err := unmarshaller.UnmarshalSSZ(body)
 		if err != nil {
 			return apiError{
-				StatusCode: http.StatusBadRequest,
+				StatusCode: http.StatusUnsupportedMediaType,
 				Message:    "failed parsing ssz request body",
 				Err:        err,
 			}
diff --git a/core/validatorapi/validatorapi.go b/core/validatorapi/validatorapi.go
index 5de53b28..c1631609 100644
--- a/core/validatorapi/validatorapi.go
+++ b/core/validatorapi/validatorapi.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package validatorapi
 
diff --git a/dkg/bcast/client.go b/dkg/bcast/client.go
index 0b56e41b..37ed1601 100644
--- a/dkg/bcast/client.go
+++ b/dkg/bcast/client.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package bcast
 
diff --git a/dkg/bcast/helpers.go b/dkg/bcast/helpers.go
index fac76b43..fc5cb4af 100644
--- a/dkg/bcast/helpers.go
+++ b/dkg/bcast/helpers.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package bcast
 
diff --git a/dkg/bcast/impl.go b/dkg/bcast/impl.go
index a682273a..1548c75a 100644
--- a/dkg/bcast/impl.go
+++ b/dkg/bcast/impl.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package bcast
 
diff --git a/dkg/bcast/server.go b/dkg/bcast/server.go
index 6398e4cb..a2193249 100644
--- a/dkg/bcast/server.go
+++ b/dkg/bcast/server.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package bcast
 
diff --git a/dkg/disk.go b/dkg/disk.go
index ff3b9da4..fa482336 100644
--- a/dkg/disk.go
+++ b/dkg/disk.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package dkg
 
diff --git a/dkg/dkg.go b/dkg/dkg.go
index e33e6933..d6014189 100644
--- a/dkg/dkg.go
+++ b/dkg/dkg.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package dkg
 
diff --git a/dkg/dkgpb/v1/bcast.pb.go b/dkg/dkgpb/v1/bcast.pb.go
index 606db48a..5c791ff5 100644
--- a/dkg/dkgpb/v1/bcast.pb.go
+++ b/dkg/dkgpb/v1/bcast.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.36.5
+// 	protoc-gen-go v1.36.6
 // 	protoc        (unknown)
 // source: dkg/dkgpb/v1/bcast.proto
 
@@ -188,33 +188,21 @@ func (x *BCastMessage) GetSignatures() [][]byte {
 
 var File_dkg_dkgpb_v1_bcast_proto protoreflect.FileDescriptor
 
-var file_dkg_dkgpb_v1_bcast_proto_rawDesc = string([]byte{
-	0x0a, 0x18, 0x64, 0x6b, 0x67, 0x2f, 0x64, 0x6b, 0x67, 0x70, 0x62, 0x2f, 0x76, 0x31, 0x2f, 0x62,
-	0x63, 0x61, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x64, 0x6b, 0x67, 0x2e,
-	0x64, 0x6b, 0x67, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
-	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x22, 0x57, 0x0a, 0x0f, 0x42, 0x43, 0x61, 0x73, 0x74, 0x53, 0x69, 0x67, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
-	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x6d,
-	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x40, 0x0a, 0x10,
-	0x42, 0x43, 0x61, 0x73, 0x74, 0x53, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
-	0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x6e,
-	0x0a, 0x0c, 0x42, 0x43, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e,
-	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2e,
-	0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
-	0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e,
-	0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03,
-	0x28, 0x0c, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x42, 0x2c,
-	0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x62, 0x6f,
-	0x6c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x63, 0x68, 0x61, 0x72, 0x6f, 0x6e, 0x2f,
-	0x64, 0x6b, 0x67, 0x2f, 0x64, 0x6b, 0x67, 0x70, 0x62, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x33,
-})
+const file_dkg_dkgpb_v1_bcast_proto_rawDesc = "" +
+	"\n" +
+	"\x18dkg/dkgpb/v1/bcast.proto\x12\fdkg.dkgpb.v1\x1a\x19google/protobuf/any.proto\"W\n" +
+	"\x0fBCastSigRequest\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x12.\n" +
+	"\amessage\x18\x03 \x01(\v2\x14.google.protobuf.AnyR\amessageJ\x04\b\x02\x10\x03\"@\n" +
+	"\x10BCastSigResponse\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x12\x1c\n" +
+	"\tsignature\x18\x02 \x01(\fR\tsignature\"n\n" +
+	"\fBCastMessage\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x12.\n" +
+	"\amessage\x18\x02 \x01(\v2\x14.google.protobuf.AnyR\amessage\x12\x1e\n" +
+	"\n" +
+	"signatures\x18\x03 \x03(\fR\n" +
+	"signaturesB,Z*github.com/obolnetwork/charon/dkg/dkgpb/v1b\x06proto3"
 
 var (
 	file_dkg_dkgpb_v1_bcast_proto_rawDescOnce sync.Once
diff --git a/dkg/dkgpb/v1/frost.pb.go b/dkg/dkgpb/v1/frost.pb.go
index f985876e..89502073 100644
--- a/dkg/dkgpb/v1/frost.pb.go
+++ b/dkg/dkgpb/v1/frost.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.36.5
+// 	protoc-gen-go v1.36.6
 // 	protoc        (unknown)
 // source: dkg/dkgpb/v1/frost.proto
 
@@ -403,58 +403,32 @@ func (x *FrostRound2Cast) GetVkShare() []byte {
 
 var File_dkg_dkgpb_v1_frost_proto protoreflect.FileDescriptor
 
-var file_dkg_dkgpb_v1_frost_proto_rawDesc = string([]byte{
-	0x0a, 0x18, 0x64, 0x6b, 0x67, 0x2f, 0x64, 0x6b, 0x67, 0x70, 0x62, 0x2f, 0x76, 0x31, 0x2f, 0x66,
-	0x72, 0x6f, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x64, 0x6b, 0x67, 0x2e,
-	0x64, 0x6b, 0x67, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x22, 0x60, 0x0a, 0x0b, 0x46, 0x72, 0x6f, 0x73,
-	0x74, 0x4d, 0x73, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x76, 0x61, 0x6c, 0x5f, 0x69,
-	0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x49, 0x64, 0x78,
-	0x12, 0x1b, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a,
-	0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
-	0x52, 0x08, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x10, 0x46, 0x72,
-	0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x31, 0x43, 0x61, 0x73, 0x74, 0x73, 0x12, 0x33,
-	0x0a, 0x05, 0x63, 0x61, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
-	0x64, 0x6b, 0x67, 0x2e, 0x64, 0x6b, 0x67, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x6f,
-	0x73, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x31, 0x43, 0x61, 0x73, 0x74, 0x52, 0x05, 0x63, 0x61,
-	0x73, 0x74, 0x73, 0x22, 0x80, 0x01, 0x0a, 0x0f, 0x46, 0x72, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75,
-	0x6e, 0x64, 0x31, 0x43, 0x61, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x64, 0x6b, 0x67, 0x2e, 0x64, 0x6b, 0x67, 0x70, 0x62,
-	0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x6f, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x4b, 0x65, 0x79, 0x52,
-	0x03, 0x6b, 0x65, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x77, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c,
-	0x52, 0x02, 0x77, 0x69, 0x12, 0x0e, 0x0a, 0x02, 0x63, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c,
-	0x52, 0x02, 0x63, 0x69, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65,
-	0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69,
-	0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x4e, 0x0a, 0x0e, 0x46, 0x72, 0x6f, 0x73, 0x74, 0x52,
-	0x6f, 0x75, 0x6e, 0x64, 0x31, 0x50, 0x32, 0x50, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72,
-	0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x64, 0x6b, 0x67, 0x2e, 0x64,
-	0x6b, 0x67, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75,
-	0x6e, 0x64, 0x31, 0x53, 0x68, 0x61, 0x6d, 0x69, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x06,
-	0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x22, 0x6b, 0x0a, 0x16, 0x46, 0x72, 0x6f, 0x73, 0x74, 0x52,
-	0x6f, 0x75, 0x6e, 0x64, 0x31, 0x53, 0x68, 0x61, 0x6d, 0x69, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65,
-	0x12, 0x2b, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
-	0x64, 0x6b, 0x67, 0x2e, 0x64, 0x6b, 0x67, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x6f,
-	0x73, 0x74, 0x4d, 0x73, 0x67, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x0e, 0x0a,
-	0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a,
-	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61,
-	0x6c, 0x75, 0x65, 0x22, 0x47, 0x0a, 0x10, 0x46, 0x72, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x6e,
-	0x64, 0x32, 0x43, 0x61, 0x73, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x63, 0x61, 0x73, 0x74, 0x73,
-	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x6b, 0x67, 0x2e, 0x64, 0x6b, 0x67,
-	0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64,
-	0x32, 0x43, 0x61, 0x73, 0x74, 0x52, 0x05, 0x63, 0x61, 0x73, 0x74, 0x73, 0x22, 0x84, 0x01, 0x0a,
-	0x0f, 0x46, 0x72, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x43, 0x61, 0x73, 0x74,
-	0x12, 0x2b, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
-	0x64, 0x6b, 0x67, 0x2e, 0x64, 0x6b, 0x67, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x6f,
-	0x73, 0x74, 0x4d, 0x73, 0x67, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a,
-	0x10, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65,
-	0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x6b, 0x5f, 0x73,
-	0x68, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x76, 0x6b, 0x53, 0x68,
-	0x61, 0x72, 0x65, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
-	0x6d, 0x2f, 0x6f, 0x62, 0x6f, 0x6c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x63, 0x68,
-	0x61, 0x72, 0x6f, 0x6e, 0x2f, 0x64, 0x6b, 0x67, 0x2f, 0x64, 0x6b, 0x67, 0x70, 0x62, 0x2f, 0x76,
-	0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-})
+const file_dkg_dkgpb_v1_frost_proto_rawDesc = "" +
+	"\n" +
+	"\x18dkg/dkgpb/v1/frost.proto\x12\fdkg.dkgpb.v1\"`\n" +
+	"\vFrostMsgKey\x12\x17\n" +
+	"\aval_idx\x18\x01 \x01(\rR\x06valIdx\x12\x1b\n" +
+	"\tsource_id\x18\x02 \x01(\rR\bsourceId\x12\x1b\n" +
+	"\ttarget_id\x18\x03 \x01(\rR\btargetId\"G\n" +
+	"\x10FrostRound1Casts\x123\n" +
+	"\x05casts\x18\x01 \x03(\v2\x1d.dkg.dkgpb.v1.FrostRound1CastR\x05casts\"\x80\x01\n" +
+	"\x0fFrostRound1Cast\x12+\n" +
+	"\x03key\x18\x01 \x01(\v2\x19.dkg.dkgpb.v1.FrostMsgKeyR\x03key\x12\x0e\n" +
+	"\x02wi\x18\x02 \x01(\fR\x02wi\x12\x0e\n" +
+	"\x02ci\x18\x03 \x01(\fR\x02ci\x12 \n" +
+	"\vcommitments\x18\x04 \x03(\fR\vcommitments\"N\n" +
+	"\x0eFrostRound1P2P\x12<\n" +
+	"\x06shares\x18\x01 \x03(\v2$.dkg.dkgpb.v1.FrostRound1ShamirShareR\x06shares\"k\n" +
+	"\x16FrostRound1ShamirShare\x12+\n" +
+	"\x03key\x18\x01 \x01(\v2\x19.dkg.dkgpb.v1.FrostMsgKeyR\x03key\x12\x0e\n" +
+	"\x02id\x18\x02 \x01(\rR\x02id\x12\x14\n" +
+	"\x05value\x18\x03 \x01(\fR\x05value\"G\n" +
+	"\x10FrostRound2Casts\x123\n" +
+	"\x05casts\x18\x01 \x03(\v2\x1d.dkg.dkgpb.v1.FrostRound2CastR\x05casts\"\x84\x01\n" +
+	"\x0fFrostRound2Cast\x12+\n" +
+	"\x03key\x18\x01 \x01(\v2\x19.dkg.dkgpb.v1.FrostMsgKeyR\x03key\x12)\n" +
+	"\x10verification_key\x18\x02 \x01(\fR\x0fverificationKey\x12\x19\n" +
+	"\bvk_share\x18\x03 \x01(\fR\avkShareB,Z*github.com/obolnetwork/charon/dkg/dkgpb/v1b\x06proto3"
 
 var (
 	file_dkg_dkgpb_v1_frost_proto_rawDescOnce sync.Once
diff --git a/dkg/dkgpb/v1/nodesigs.pb.go b/dkg/dkgpb/v1/nodesigs.pb.go
index 9a06af98..90d2d90b 100644
--- a/dkg/dkgpb/v1/nodesigs.pb.go
+++ b/dkg/dkgpb/v1/nodesigs.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.36.5
+// 	protoc-gen-go v1.36.6
 // 	protoc        (unknown)
 // source: dkg/dkgpb/v1/nodesigs.proto
 
@@ -75,19 +75,14 @@ func (x *MsgNodeSig) GetPeerIndex() uint32 {
 
 var File_dkg_dkgpb_v1_nodesigs_proto protoreflect.FileDescriptor
 
-var file_dkg_dkgpb_v1_nodesigs_proto_rawDesc = string([]byte{
-	0x0a, 0x1b, 0x64, 0x6b, 0x67, 0x2f, 0x64, 0x6b, 0x67, 0x70, 0x62, 0x2f, 0x76, 0x31, 0x2f, 0x6e,
-	0x6f, 0x64, 0x65, 0x73, 0x69, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x64,
-	0x6b, 0x67, 0x2e, 0x64, 0x6b, 0x67, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x22, 0x49, 0x0a, 0x0a, 0x4d,
-	0x73, 0x67, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67,
-	0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69,
-	0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f,
-	0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x65, 0x65,
-	0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
-	0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x62, 0x6f, 0x6c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
-	0x2f, 0x63, 0x68, 0x61, 0x72, 0x6f, 0x6e, 0x2f, 0x64, 0x6b, 0x67, 0x2f, 0x64, 0x6b, 0x67, 0x70,
-	0x62, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-})
+const file_dkg_dkgpb_v1_nodesigs_proto_rawDesc = "" +
+	"\n" +
+	"\x1bdkg/dkgpb/v1/nodesigs.proto\x12\fdkg.dkgpb.v1\"I\n" +
+	"\n" +
+	"MsgNodeSig\x12\x1c\n" +
+	"\tsignature\x18\x01 \x01(\fR\tsignature\x12\x1d\n" +
+	"\n" +
+	"peer_index\x18\x02 \x01(\rR\tpeerIndexB,Z*github.com/obolnetwork/charon/dkg/dkgpb/v1b\x06proto3"
 
 var (
 	file_dkg_dkgpb_v1_nodesigs_proto_rawDescOnce sync.Once
diff --git a/dkg/dkgpb/v1/sync.pb.go b/dkg/dkgpb/v1/sync.pb.go
index 0775f476..a886ced5 100644
--- a/dkg/dkgpb/v1/sync.pb.go
+++ b/dkg/dkgpb/v1/sync.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.36.5
+// 	protoc-gen-go v1.36.6
 // 	protoc        (unknown)
 // source: dkg/dkgpb/v1/sync.proto
 
@@ -152,35 +152,18 @@ func (x *MsgSyncResponse) GetError() string {
 
 var File_dkg_dkgpb_v1_sync_proto protoreflect.FileDescriptor
 
-var file_dkg_dkgpb_v1_sync_proto_rawDesc = string([]byte{
-	0x0a, 0x17, 0x64, 0x6b, 0x67, 0x2f, 0x64, 0x6b, 0x67, 0x70, 0x62, 0x2f, 0x76, 0x31, 0x2f, 0x73,
-	0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x64, 0x6b, 0x67, 0x2e, 0x64,
-	0x6b, 0x67, 0x70, 0x62, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
-	0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb4, 0x01, 0x0a, 0x07, 0x4d, 0x73, 0x67,
-	0x53, 0x79, 0x6e, 0x63, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
-	0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
-	0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x25,
-	0x0a, 0x0e, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x68, 0x61, 0x73, 0x68, 0x53, 0x69, 0x67, 0x6e,
-	0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77,
-	0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77,
-	0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73,
-	0x74, 0x65, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x22,
-	0x6a, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73,
-	0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
-	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
-	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x73, 0x79, 0x6e, 0x63, 0x54, 0x69, 0x6d, 0x65,
-	0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x2c, 0x5a, 0x2a, 0x67,
-	0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x62, 0x6f, 0x6c, 0x6e, 0x65,
-	0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x63, 0x68, 0x61, 0x72, 0x6f, 0x6e, 0x2f, 0x64, 0x6b, 0x67,
-	0x2f, 0x64, 0x6b, 0x67, 0x70, 0x62, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x33,
-})
+const file_dkg_dkgpb_v1_sync_proto_rawDesc = "" +
+	"\n" +
+	"\x17dkg/dkgpb/v1/sync.proto\x12\fdkg.dkgpb.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\xb4\x01\n" +
+	"\aMsgSync\x128\n" +
+	"\ttimestamp\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\ttimestamp\x12%\n" +
+	"\x0ehash_signature\x18\x02 \x01(\fR\rhashSignature\x12\x1a\n" +
+	"\bshutdown\x18\x03 \x01(\bR\bshutdown\x12\x18\n" +
+	"\aversion\x18\x04 \x01(\tR\aversion\x12\x12\n" +
+	"\x04step\x18\x05 \x01(\x03R\x04step\"j\n" +
+	"\x0fMsgSyncResponse\x12A\n" +
+	"\x0esync_timestamp\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\rsyncTimestamp\x12\x14\n" +
+	"\x05error\x18\x02 \x01(\tR\x05errorB,Z*github.com/obolnetwork/charon/dkg/dkgpb/v1b\x06proto3"
 
 var (
 	file_dkg_dkgpb_v1_sync_proto_rawDescOnce sync.Once
diff --git a/dkg/exchanger.go b/dkg/exchanger.go
index d639dc50..f44a42d2 100644
--- a/dkg/exchanger.go
+++ b/dkg/exchanger.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package dkg
 
diff --git a/dkg/frost.go b/dkg/frost.go
index 274e06cf..ffd74be1 100644
--- a/dkg/frost.go
+++ b/dkg/frost.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package dkg
 
diff --git a/dkg/frostp2p.go b/dkg/frostp2p.go
index c7f2d93b..63a52673 100644
--- a/dkg/frostp2p.go
+++ b/dkg/frostp2p.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package dkg
 
diff --git a/dkg/nodesigs.go b/dkg/nodesigs.go
index 0c4f5281..ec23957a 100644
--- a/dkg/nodesigs.go
+++ b/dkg/nodesigs.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package dkg
 
diff --git a/dkg/share.go b/dkg/share.go
index 98f7aacf..0f8d554b 100644
--- a/dkg/share.go
+++ b/dkg/share.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package dkg
 
diff --git a/dkg/sync/client.go b/dkg/sync/client.go
index b27bf236..efac1424 100644
--- a/dkg/sync/client.go
+++ b/dkg/sync/client.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package sync
 
diff --git a/dkg/sync/server.go b/dkg/sync/server.go
index 3e06dd6e..d26662da 100644
--- a/dkg/sync/server.go
+++ b/dkg/sync/server.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package sync provides Client and Server APIs that ensures robust network connectivity between all peers in the DKG.
 // It supports cluster_definition verification, soft shutdown and reconnect on connection loss.
diff --git a/eth2util/deposit/deposit.go b/eth2util/deposit/deposit.go
index 1eff263a..57178567 100644
--- a/eth2util/deposit/deposit.go
+++ b/eth2util/deposit/deposit.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package deposit provides functions to create deposit data files.
 package deposit
diff --git a/eth2util/doc.go b/eth2util/doc.go
index bf6c5a37..8ee87ff8 100644
--- a/eth2util/doc.go
+++ b/eth2util/doc.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package eth2util contains packages and logic relating to eth2 functionality.
 // Note these packages may not import other business logic packages like dkg, core, cluster.
diff --git a/eth2util/eip712/eip712.go b/eth2util/eip712/eip712.go
index 4d5d9f05..7336173e 100644
--- a/eth2util/eip712/eip712.go
+++ b/eth2util/eip712/eip712.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package eip712 provides a minimal EIP-712 implementation supporting only a few
 // primitive types and fixed set of domain fields. See https://eips.ethereum.org/EIPS/eip-712.
diff --git a/eth2util/enr/enr.go b/eth2util/enr/enr.go
index 6e95bf06..e2f53c49 100644
--- a/eth2util/enr/enr.go
+++ b/eth2util/enr/enr.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package enr provides a minimal implementation of Ethereum Node Records (ENR).
 package enr
diff --git a/eth2util/eth2exp/attagg.go b/eth2util/eth2exp/attagg.go
index 334c11fc..783304e2 100644
--- a/eth2util/eth2exp/attagg.go
+++ b/eth2util/eth2exp/attagg.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2exp
 
diff --git a/eth2util/eth2exp/attagg_old.go b/eth2util/eth2exp/attagg_old.go
index 4448f71d..dee0e39d 100644
--- a/eth2util/eth2exp/attagg_old.go
+++ b/eth2util/eth2exp/attagg_old.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2exp
 
diff --git a/eth2util/eth2exp/proposeconf.go b/eth2util/eth2exp/proposeconf.go
index 6289c03f..197b0635 100644
--- a/eth2util/eth2exp/proposeconf.go
+++ b/eth2util/eth2exp/proposeconf.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2exp
 
diff --git a/eth2util/eth2exp/synccomm_agg.go b/eth2util/eth2exp/synccomm_agg.go
index 00626f9c..a7dce229 100644
--- a/eth2util/eth2exp/synccomm_agg.go
+++ b/eth2util/eth2exp/synccomm_agg.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2exp
 
diff --git a/eth2util/hash.go b/eth2util/hash.go
index c5c8a6b2..4b071f98 100644
--- a/eth2util/hash.go
+++ b/eth2util/hash.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2util
 
diff --git a/eth2util/helper_capella.go b/eth2util/helper_capella.go
index 3c44c21f..5b66603a 100644
--- a/eth2util/helper_capella.go
+++ b/eth2util/helper_capella.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2util
 
diff --git a/eth2util/helpers.go b/eth2util/helpers.go
index 696faab9..aba39fc6 100644
--- a/eth2util/helpers.go
+++ b/eth2util/helpers.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2util
 
diff --git a/eth2util/keymanager/keymanager.go b/eth2util/keymanager/keymanager.go
index 124f0dfa..c7d8a67b 100644
--- a/eth2util/keymanager/keymanager.go
+++ b/eth2util/keymanager/keymanager.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package keymanager provides ETH2 keymanager API (https://ethereum.github.io/keymanager-APIs/) functionalities.
 package keymanager
diff --git a/eth2util/keystore/keystore.go b/eth2util/keystore/keystore.go
index f627d2d1..64d1e61b 100644
--- a/eth2util/keystore/keystore.go
+++ b/eth2util/keystore/keystore.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package keystore provides functions to store and load private keys
 // to/from EIP 2335 (https://eips.ethereum.org/EIPS/eip-2335) compatible Keystore files. Passwords are
diff --git a/eth2util/keystore/load.go b/eth2util/keystore/load.go
index e7fe92a0..86037265 100644
--- a/eth2util/keystore/load.go
+++ b/eth2util/keystore/load.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package keystore
 
diff --git a/eth2util/network.go b/eth2util/network.go
index 974e5aa7..f681eb5e 100644
--- a/eth2util/network.go
+++ b/eth2util/network.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2util
 
diff --git a/eth2util/registration/registration.go b/eth2util/registration/registration.go
index 29a5a46f..d314f742 100644
--- a/eth2util/registration/registration.go
+++ b/eth2util/registration/registration.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package registration
 
diff --git a/eth2util/rlp/rlp.go b/eth2util/rlp/rlp.go
index d99b2c02..ca11c7a3 100644
--- a/eth2util/rlp/rlp.go
+++ b/eth2util/rlp/rlp.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package rlp implements the simple byte slice and lists of byte slices encoding/decoding using
 // recursive length prefix encoding scheme as per spec
diff --git a/eth2util/signing/signing.go b/eth2util/signing/signing.go
index dbbedbc9..c683e675 100644
--- a/eth2util/signing/signing.go
+++ b/eth2util/signing/signing.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package signing
 
diff --git a/eth2util/statecomm/statecomm.go b/eth2util/statecomm/statecomm.go
index e7f00274..5a860501 100644
--- a/eth2util/statecomm/statecomm.go
+++ b/eth2util/statecomm/statecomm.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package statecomm
 
diff --git a/eth2util/types.go b/eth2util/types.go
index 08c45855..1f2b3132 100644
--- a/eth2util/types.go
+++ b/eth2util/types.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2util
 
diff --git a/main.go b/main.go
index c202c6a0..cfcde8b7 100644
--- a/main.go
+++ b/main.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package main
 
diff --git a/p2p/bootnode.go b/p2p/bootnode.go
index 4ebd4495..33b91551 100644
--- a/p2p/bootnode.go
+++ b/p2p/bootnode.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p
 
diff --git a/p2p/config.go b/p2p/config.go
index ffcc2207..11e2ba69 100644
--- a/p2p/config.go
+++ b/p2p/config.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p
 
diff --git a/p2p/errors.go b/p2p/errors.go
index 44d7c428..ee9af758 100644
--- a/p2p/errors.go
+++ b/p2p/errors.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p
 
diff --git a/p2p/fuzz.go b/p2p/fuzz.go
index 72e8a1cc..b79b822c 100644
--- a/p2p/fuzz.go
+++ b/p2p/fuzz.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p
 
diff --git a/p2p/gater.go b/p2p/gater.go
index 19ca8cb0..0ef05d6b 100644
--- a/p2p/gater.go
+++ b/p2p/gater.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p
 
diff --git a/p2p/k1.go b/p2p/k1.go
index 434c1754..356fa03d 100644
--- a/p2p/k1.go
+++ b/p2p/k1.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p
 
diff --git a/p2p/metrics.go b/p2p/metrics.go
index 0d10881e..69242c8a 100644
--- a/p2p/metrics.go
+++ b/p2p/metrics.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p
 
diff --git a/p2p/name.go b/p2p/name.go
index 5c0a6083..e02da605 100644
--- a/p2p/name.go
+++ b/p2p/name.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p
 
diff --git a/p2p/p2p.go b/p2p/p2p.go
index f95c23f5..5a0edd19 100644
--- a/p2p/p2p.go
+++ b/p2p/p2p.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p
 
diff --git a/p2p/peer.go b/p2p/peer.go
index 04e5ba91..d15a0a76 100644
--- a/p2p/peer.go
+++ b/p2p/peer.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p
 
diff --git a/p2p/ping.go b/p2p/ping.go
index d9e578c3..e34017fa 100644
--- a/p2p/ping.go
+++ b/p2p/ping.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p
 
diff --git a/p2p/receive.go b/p2p/receive.go
index 62d4a5ba..21fc6282 100644
--- a/p2p/receive.go
+++ b/p2p/receive.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p
 
diff --git a/p2p/relay.go b/p2p/relay.go
index c3dcd5e8..7b72a61b 100644
--- a/p2p/relay.go
+++ b/p2p/relay.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p
 
diff --git a/p2p/sender.go b/p2p/sender.go
index 2dfe252e..369c2b3d 100644
--- a/p2p/sender.go
+++ b/p2p/sender.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p
 
diff --git a/tbls/herumi.go b/tbls/herumi.go
index 0c50c159..bbdd5b7a 100644
--- a/tbls/herumi.go
+++ b/tbls/herumi.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package tbls
 
diff --git a/tbls/tbls.go b/tbls/tbls.go
index ca807bce..75fbb30d 100644
--- a/tbls/tbls.go
+++ b/tbls/tbls.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package tbls
 
diff --git a/tbls/tblsconv/tblsconv.go b/tbls/tblsconv/tblsconv.go
index 9c755b0c..9d3e0e67 100644
--- a/tbls/tblsconv/tblsconv.go
+++ b/tbls/tblsconv/tblsconv.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package tblsconv
 
diff --git a/tools.go b/tools.go
index fd91a42c..0949672c 100644
--- a/tools.go
+++ b/tools.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 //go:build tools
 // +build tools
@@ -20,7 +20,7 @@ import (
 //go:generate go install golang.org/x/tools/cmd/stringer
 
 //go:generate echo Installing tools: mockery
-//go install github.com/vektra/mockery/v2@v2.42.1
+//go:generate go install github.com/vektra/mockery/v2@v2.42.1
 
 //go:generate echo Installing tools: protobuf
 //go:generate go install github.com/bufbuild/buf/cmd/buf@latest



Test patch:
diff --git a/app/disk_internal_test.go b/app/disk_internal_test.go
index 0e79f5cb..6dd9bf56 100644
--- a/app/disk_internal_test.go
+++ b/app/disk_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package app
 
diff --git a/app/errors/context_test.go b/app/errors/context_test.go
index 274d1d88..2d1ca5e8 100644
--- a/app/errors/context_test.go
+++ b/app/errors/context_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package errors_test
 
diff --git a/app/errors/errors_test.go b/app/errors/errors_test.go
index 8d9394b9..9cc2c40f 100644
--- a/app/errors/errors_test.go
+++ b/app/errors/errors_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package errors_test
 
diff --git a/app/eth2wrap/eth2wrap_test.go b/app/eth2wrap/eth2wrap_test.go
index ab33329b..a45e7799 100644
--- a/app/eth2wrap/eth2wrap_test.go
+++ b/app/eth2wrap/eth2wrap_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2wrap_test
 
diff --git a/app/eth2wrap/lazy_test.go b/app/eth2wrap/lazy_test.go
index 3d46f9b2..744aec9d 100644
--- a/app/eth2wrap/lazy_test.go
+++ b/app/eth2wrap/lazy_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2wrap_test
 
diff --git a/app/eth2wrap/multi_test.go b/app/eth2wrap/multi_test.go
index b4a0e0c5..72418b14 100644
--- a/app/eth2wrap/multi_test.go
+++ b/app/eth2wrap/multi_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2wrap_test
 
diff --git a/app/eth2wrap/synthproposer_test.go b/app/eth2wrap/synthproposer_test.go
index e55e4806..406674a9 100644
--- a/app/eth2wrap/synthproposer_test.go
+++ b/app/eth2wrap/synthproposer_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2wrap_test
 
diff --git a/app/eth2wrap/valcache_test.go b/app/eth2wrap/valcache_test.go
index f74ac1aa..9815ee03 100644
--- a/app/eth2wrap/valcache_test.go
+++ b/app/eth2wrap/valcache_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2wrap_test
 
diff --git a/app/expbackoff/expbackoff_test.go b/app/expbackoff/expbackoff_test.go
index 61eda163..536ac384 100644
--- a/app/expbackoff/expbackoff_test.go
+++ b/app/expbackoff/expbackoff_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package expbackoff_test
 
diff --git a/app/featureset/config_test.go b/app/featureset/config_test.go
index b851c933..1ec67539 100644
--- a/app/featureset/config_test.go
+++ b/app/featureset/config_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package featureset_test
 
diff --git a/app/featureset/featureset_internal_test.go b/app/featureset/featureset_internal_test.go
index 92ca2cf7..cee78730 100644
--- a/app/featureset/featureset_internal_test.go
+++ b/app/featureset/featureset_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package featureset
 
diff --git a/app/forkjoin/forkjoin_test.go b/app/forkjoin/forkjoin_test.go
index 8d9d9ed0..a1cd71f0 100644
--- a/app/forkjoin/forkjoin_test.go
+++ b/app/forkjoin/forkjoin_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package forkjoin_test
 
diff --git a/app/genssz/testdata/example.go b/app/genssz/testdata/example.go
index 786779fd..12bcf158 100644
--- a/app/genssz/testdata/example.go
+++ b/app/genssz/testdata/example.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package testdata
 
diff --git a/app/genssz/testdata/ssz_gen.go b/app/genssz/testdata/ssz_gen.go
index abd72a00..e8e43581 100644
--- a/app/genssz/testdata/ssz_gen.go
+++ b/app/genssz/testdata/ssz_gen.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package testdata
 
diff --git a/app/health/checks_internal_test.go b/app/health/checks_internal_test.go
index 332bc6bb..fe8a03a1 100644
--- a/app/health/checks_internal_test.go
+++ b/app/health/checks_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package health
 
diff --git a/app/k1util/k1util_test.go b/app/k1util/k1util_test.go
index 7916324c..6ca3de44 100644
--- a/app/k1util/k1util_test.go
+++ b/app/k1util/k1util_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package k1util_test
 
diff --git a/app/lifecycle/manager_test.go b/app/lifecycle/manager_test.go
index a67b4a0f..6c370916 100644
--- a/app/lifecycle/manager_test.go
+++ b/app/lifecycle/manager_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package lifecycle_test
 
diff --git a/app/log/config_internal_test.go b/app/log/config_internal_test.go
index b70572bb..25d756b8 100644
--- a/app/log/config_internal_test.go
+++ b/app/log/config_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package log
 
diff --git a/app/log/log_test.go b/app/log/log_test.go
index 3890721f..baa0a2d2 100644
--- a/app/log/log_test.go
+++ b/app/log/log_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package log_test
 
diff --git a/app/log/loki/client_test.go b/app/log/loki/client_test.go
index 8e4fdf3a..81006fd3 100644
--- a/app/log/loki/client_test.go
+++ b/app/log/loki/client_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package loki_test
 
diff --git a/app/monitoringapi_internal_test.go b/app/monitoringapi_internal_test.go
index bd4900a0..054b53f3 100644
--- a/app/monitoringapi_internal_test.go
+++ b/app/monitoringapi_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package app
 
diff --git a/app/obolapi/api_internal_test.go b/app/obolapi/api_internal_test.go
index a4f29908..45dc2bd5 100644
--- a/app/obolapi/api_internal_test.go
+++ b/app/obolapi/api_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package obolapi
 
diff --git a/app/obolapi/api_test.go b/app/obolapi/api_test.go
index bda4d122..f28c0c9b 100644
--- a/app/obolapi/api_test.go
+++ b/app/obolapi/api_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package obolapi_test
 
diff --git a/app/obolapi/exit_model_test.go b/app/obolapi/exit_model_test.go
index 307f8060..3b966ee6 100644
--- a/app/obolapi/exit_model_test.go
+++ b/app/obolapi/exit_model_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package obolapi_test
 
diff --git a/app/obolapi/exit_test.go b/app/obolapi/exit_test.go
index 27dc8f04..27686e07 100644
--- a/app/obolapi/exit_test.go
+++ b/app/obolapi/exit_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package obolapi_test
 
diff --git a/app/peerinfo/adhoc_test.go b/app/peerinfo/adhoc_test.go
index 69f9e90b..64aa2712 100644
--- a/app/peerinfo/adhoc_test.go
+++ b/app/peerinfo/adhoc_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package peerinfo_test
 
diff --git a/app/peerinfo/peerinfo_internal_test.go b/app/peerinfo/peerinfo_internal_test.go
index e9aa5e6f..e1824087 100644
--- a/app/peerinfo/peerinfo_internal_test.go
+++ b/app/peerinfo/peerinfo_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package peerinfo
 
diff --git a/app/peerinfo/peerinfo_test.go b/app/peerinfo/peerinfo_test.go
index 68ac0ec2..f157a8b4 100644
--- a/app/peerinfo/peerinfo_test.go
+++ b/app/peerinfo/peerinfo_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package peerinfo_test
 
diff --git a/app/privkeylock/privkeylock_internal_test.go b/app/privkeylock/privkeylock_internal_test.go
index b9f7346a..68057bd3 100644
--- a/app/privkeylock/privkeylock_internal_test.go
+++ b/app/privkeylock/privkeylock_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package privkeylock
 
diff --git a/app/promauto/promauto_test.go b/app/promauto/promauto_test.go
index f85e6bc5..b8b1a56c 100644
--- a/app/promauto/promauto_test.go
+++ b/app/promauto/promauto_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package promauto_test
 
diff --git a/app/promauto/resetgauge_test.go b/app/promauto/resetgauge_test.go
index 166975ed..660b6d5e 100644
--- a/app/promauto/resetgauge_test.go
+++ b/app/promauto/resetgauge_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package promauto_test
 
diff --git a/app/protonil/protonil_test.go b/app/protonil/protonil_test.go
index d9ddf94e..2d209cb1 100644
--- a/app/protonil/protonil_test.go
+++ b/app/protonil/protonil_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package protonil_test
 
diff --git a/app/protonil/testdata/v1/test.pb.go b/app/protonil/testdata/v1/test.pb.go
index 20521446..70a5d7ea 100644
--- a/app/protonil/testdata/v1/test.pb.go
+++ b/app/protonil/testdata/v1/test.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.36.5
+// 	protoc-gen-go v1.36.6
 // 	protoc        (unknown)
 // source: app/protonil/testdata/v1/test.proto
 
@@ -371,73 +371,42 @@ func (x *Attack) GetM3Attack() *M3 {
 
 var File_app_protonil_testdata_v1_test_proto protoreflect.FileDescriptor
 
-var file_app_protonil_testdata_v1_test_proto_rawDesc = string([]byte{
-	0x0a, 0x23, 0x61, 0x70, 0x70, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x69, 0x6c, 0x2f, 0x74,
-	0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x61, 0x70, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x6e, 0x69, 0x6c, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x22,
-	0x9a, 0x01, 0x0a, 0x02, 0x4d, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x02, 0x6d, 0x32,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x6e, 0x69, 0x6c, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76,
-	0x31, 0x2e, 0x4d, 0x32, 0x52, 0x02, 0x6d, 0x32, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x32, 0x5f, 0x6f,
-	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
-	0x61, 0x70, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x69, 0x6c, 0x2e, 0x74, 0x65, 0x73,
-	0x74, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x32, 0x48, 0x00, 0x52, 0x0a, 0x6d,
-	0x32, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c,
-	0x5f, 0x6d, 0x32, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x9a, 0x01, 0x0a,
-	0x02, 0x4d, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x02, 0x6d, 0x33, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e,
-	0x69, 0x6c, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d,
-	0x33, 0x52, 0x02, 0x6d, 0x33, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69,
-	0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x70,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x69, 0x6c, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61,
-	0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x33, 0x48, 0x00, 0x52, 0x0a, 0x6d, 0x33, 0x4f, 0x70,
-	0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6d, 0x33,
-	0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x18, 0x0a, 0x02, 0x4d, 0x33, 0x12,
-	0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
-	0x61, 0x6d, 0x65, 0x22, 0xed, 0x01, 0x0a, 0x02, 0x4d, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
-	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e,
-	0x0a, 0x06, 0x6d, 0x33, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27,
-	0x2e, 0x61, 0x70, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x69, 0x6c, 0x2e, 0x74, 0x65,
-	0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x34, 0x2e, 0x4d, 0x33, 0x4d,
-	0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x6d, 0x33, 0x4d, 0x61, 0x70, 0x12, 0x35,
-	0x0a, 0x07, 0x6d, 0x33, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
-	0x1c, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x69, 0x6c, 0x2e, 0x74,
-	0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x33, 0x52, 0x06, 0x6d,
-	0x33, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x56, 0x0a, 0x0a, 0x4d, 0x33, 0x4d, 0x61, 0x70, 0x45, 0x6e,
-	0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x6e, 0x69, 0x6c, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e,
-	0x4d, 0x33, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08,
-	0x04, 0x10, 0x05, 0x22, 0x1e, 0x0a, 0x08, 0x4d, 0x61, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12,
-	0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x41, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
-	0x61, 0x6d, 0x65, 0x22, 0x99, 0x02, 0x0a, 0x06, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x12,
-	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
-	0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x02, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
-	0x2e, 0x61, 0x70, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x69, 0x6c, 0x2e, 0x74, 0x65,
-	0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x32, 0x52, 0x02, 0x6d, 0x32,
-	0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x32, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18,
-	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x6e, 0x69, 0x6c, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31,
-	0x2e, 0x4d, 0x32, 0x48, 0x00, 0x52, 0x0a, 0x6d, 0x32, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61,
-	0x6c, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x0a, 0x6d, 0x33, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f,
-	0x77, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x69, 0x6c, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61,
-	0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x33, 0x52, 0x09, 0x6d, 0x33, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77,
-	0x6e, 0x12, 0x3c, 0x0a, 0x09, 0x6d, 0x33, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x18, 0xff,
-	0xc1, 0xd7, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x6e, 0x69, 0x6c, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2e,
-	0x76, 0x31, 0x2e, 0x4d, 0x33, 0x52, 0x08, 0x6d, 0x33, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42,
-	0x0e, 0x0a, 0x0c, 0x5f, 0x6d, 0x32, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42,
-	0x38, 0x5a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x62,
-	0x6f, 0x6c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x63, 0x68, 0x61, 0x72, 0x6f, 0x6e,
-	0x2f, 0x61, 0x70, 0x70, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x69, 0x6c, 0x2f, 0x74, 0x65,
-	0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x33,
-})
+const file_app_protonil_testdata_v1_test_proto_rawDesc = "" +
+	"\n" +
+	"#app/protonil/testdata/v1/test.proto\x12\x18app.protonil.testdata.v1\"\x9a\x01\n" +
+	"\x02M1\x12\x12\n" +
+	"\x04name\x18\x01 \x01(\tR\x04name\x12,\n" +
+	"\x02m2\x18\x02 \x01(\v2\x1c.app.protonil.testdata.v1.M2R\x02m2\x12B\n" +
+	"\vm2_optional\x18\x03 \x01(\v2\x1c.app.protonil.testdata.v1.M2H\x00R\n" +
+	"m2Optional\x88\x01\x01B\x0e\n" +
+	"\f_m2_optional\"\x9a\x01\n" +
+	"\x02M2\x12\x12\n" +
+	"\x04name\x18\x01 \x01(\tR\x04name\x12,\n" +
+	"\x02m3\x18\x02 \x01(\v2\x1c.app.protonil.testdata.v1.M3R\x02m3\x12B\n" +
+	"\vm3_optional\x18\x03 \x01(\v2\x1c.app.protonil.testdata.v1.M3H\x00R\n" +
+	"m3Optional\x88\x01\x01B\x0e\n" +
+	"\f_m3_optional\"\x18\n" +
+	"\x02M3\x12\x12\n" +
+	"\x04name\x18\x02 \x01(\tR\x04name\"\xed\x01\n" +
+	"\x02M4\x12\x12\n" +
+	"\x04name\x18\x01 \x01(\tR\x04name\x12>\n" +
+	"\x06m3_map\x18\x02 \x03(\v2'.app.protonil.testdata.v1.M4.M3MapEntryR\x05m3Map\x125\n" +
+	"\am3_list\x18\x03 \x03(\v2\x1c.app.protonil.testdata.v1.M3R\x06m3List\x1aV\n" +
+	"\n" +
+	"M3MapEntry\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\tR\x03key\x122\n" +
+	"\x05value\x18\x02 \x01(\v2\x1c.app.protonil.testdata.v1.M3R\x05value:\x028\x01J\x04\b\x04\x10\x05\"\x1e\n" +
+	"\bMaxIndex\x12\x12\n" +
+	"\x04name\x18A \x01(\tR\x04name\"\x99\x02\n" +
+	"\x06Attack\x12\x12\n" +
+	"\x04name\x18\x01 \x01(\tR\x04name\x12,\n" +
+	"\x02m2\x18\x02 \x01(\v2\x1c.app.protonil.testdata.v1.M2R\x02m2\x12B\n" +
+	"\vm2_optional\x18\x03 \x01(\v2\x1c.app.protonil.testdata.v1.M2H\x00R\n" +
+	"m2Optional\x88\x01\x01\x12;\n" +
+	"\n" +
+	"m3_unknown\x18\x04 \x01(\v2\x1c.app.protonil.testdata.v1.M3R\tm3Unknown\x12<\n" +
+	"\tm3_attack\x18\xff\xc1\xd7/ \x01(\v2\x1c.app.protonil.testdata.v1.M3R\bm3AttackB\x0e\n" +
+	"\f_m2_optionalB8Z6github.com/obolnetwork/charon/app/protonil/testdata/v1b\x06proto3"
 
 var (
 	file_app_protonil_testdata_v1_test_proto_rawDescOnce sync.Once
diff --git a/app/retry/retry_test.go b/app/retry/retry_test.go
index 33ea0dd3..b1f01b33 100644
--- a/app/retry/retry_test.go
+++ b/app/retry/retry_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package retry_test
 
diff --git a/app/stacksnipe/stacksnipe_test.go b/app/stacksnipe/stacksnipe_test.go
index 98111ec6..a61b5246 100644
--- a/app/stacksnipe/stacksnipe_test.go
+++ b/app/stacksnipe/stacksnipe_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package stacksnipe_test
 
diff --git a/app/tracer/trace_test.go b/app/tracer/trace_test.go
index c7831204..d81adb7b 100644
--- a/app/tracer/trace_test.go
+++ b/app/tracer/trace_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package tracer_test
 
diff --git a/app/version/version_internal_test.go b/app/version/version_internal_test.go
index f7fa84bc..0f0113a6 100644
--- a/app/version/version_internal_test.go
+++ b/app/version/version_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package version
 
diff --git a/app/version/version_test.go b/app/version/version_test.go
index e95a5a69..731105ec 100644
--- a/app/version/version_test.go
+++ b/app/version/version_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package version_test
 
diff --git a/app/z/zapfield_test.go b/app/z/zapfield_test.go
index d3438082..4575a35e 100644
--- a/app/z/zapfield_test.go
+++ b/app/z/zapfield_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package z_test
 
diff --git a/cluster/cluster_internal_test.go b/cluster/cluster_internal_test.go
index d3807d88..81a8c248 100644
--- a/cluster/cluster_internal_test.go
+++ b/cluster/cluster_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster
 
diff --git a/cluster/cluster_test.go b/cluster/cluster_test.go
index f7c7c64e..60ebd0a7 100644
--- a/cluster/cluster_test.go
+++ b/cluster/cluster_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster_test
 
diff --git a/cluster/deposit_internal_test.go b/cluster/deposit_internal_test.go
index cb88acad..e25488a3 100644
--- a/cluster/deposit_internal_test.go
+++ b/cluster/deposit_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster
 
diff --git a/cluster/helpers_internal_test.go b/cluster/helpers_internal_test.go
index 3312f7a5..e78add41 100644
--- a/cluster/helpers_internal_test.go
+++ b/cluster/helpers_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster
 
diff --git a/cluster/lock_test.go b/cluster/lock_test.go
index e8295185..29170e9d 100644
--- a/cluster/lock_test.go
+++ b/cluster/lock_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster_test
 
diff --git a/cluster/manifest/cluster_test.go b/cluster/manifest/cluster_test.go
index 80e06da4..e1e89a40 100644
--- a/cluster/manifest/cluster_test.go
+++ b/cluster/manifest/cluster_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package manifest_test
 
diff --git a/cluster/manifest/load_test.go b/cluster/manifest/load_test.go
index 20aca2a7..1b01c271 100644
--- a/cluster/manifest/load_test.go
+++ b/cluster/manifest/load_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package manifest_test
 
diff --git a/cluster/manifest/mutationaddvalidator_test.go b/cluster/manifest/mutationaddvalidator_test.go
index 98f8bcb3..77503cf2 100644
--- a/cluster/manifest/mutationaddvalidator_test.go
+++ b/cluster/manifest/mutationaddvalidator_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package manifest_test
 
diff --git a/cluster/manifest/mutationlegacylock_test.go b/cluster/manifest/mutationlegacylock_test.go
index 89f3b6e4..030f2dad 100644
--- a/cluster/manifest/mutationlegacylock_test.go
+++ b/cluster/manifest/mutationlegacylock_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package manifest_test
 
diff --git a/cluster/manifest/mutationnodeapproval_test.go b/cluster/manifest/mutationnodeapproval_test.go
index e72facb3..f92c322c 100644
--- a/cluster/manifest/mutationnodeapproval_test.go
+++ b/cluster/manifest/mutationnodeapproval_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package manifest_test
 
diff --git a/cluster/operator_internal_test.go b/cluster/operator_internal_test.go
index 54aa278f..abfb6fd6 100644
--- a/cluster/operator_internal_test.go
+++ b/cluster/operator_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster
 
diff --git a/cluster/ssz_internal_test.go b/cluster/ssz_internal_test.go
index 3f78c59b..435e9977 100644
--- a/cluster/ssz_internal_test.go
+++ b/cluster/ssz_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster
 
diff --git a/cluster/test_cluster.go b/cluster/test_cluster.go
index 6a82be09..b4567b55 100644
--- a/cluster/test_cluster.go
+++ b/cluster/test_cluster.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster
 
diff --git a/cluster/test_cluster_test.go b/cluster/test_cluster_test.go
index ad3c14cc..b61c75f7 100644
--- a/cluster/test_cluster_test.go
+++ b/cluster/test_cluster_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cluster_test
 
diff --git a/cmd/addvalidators_internal_test.go b/cmd/addvalidators_internal_test.go
index 0799bac6..05f80db9 100644
--- a/cmd/addvalidators_internal_test.go
+++ b/cmd/addvalidators_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/cmd_internal_test.go b/cmd/cmd_internal_test.go
index 2a985838..eebac5bf 100644
--- a/cmd/cmd_internal_test.go
+++ b/cmd/cmd_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/combine/combine_test.go b/cmd/combine/combine_test.go
index 79e2338c..8b752dd4 100644
--- a/cmd/combine/combine_test.go
+++ b/cmd/combine/combine_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package combine_test
 
diff --git a/cmd/createcluster_internal_test.go b/cmd/createcluster_internal_test.go
index af8d2a95..afe66f2c 100644
--- a/cmd/createcluster_internal_test.go
+++ b/cmd/createcluster_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/createdkg_internal_test.go b/cmd/createdkg_internal_test.go
index 6032de9f..8858393c 100644
--- a/cmd/createdkg_internal_test.go
+++ b/cmd/createdkg_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/createenr_internal_test.go b/cmd/createenr_internal_test.go
index 1d11cc10..96f3e737 100644
--- a/cmd/createenr_internal_test.go
+++ b/cmd/createenr_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/debug_tools_internal_test.go b/cmd/debug_tools_internal_test.go
index 01cc5b7d..f2e09476 100644
--- a/cmd/debug_tools_internal_test.go
+++ b/cmd/debug_tools_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/duration_test.go b/cmd/duration_test.go
index b43bd896..2e3dc6c6 100644
--- a/cmd/duration_test.go
+++ b/cmd/duration_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd_test
 
diff --git a/cmd/enr_internal_test.go b/cmd/enr_internal_test.go
index ad681c15..f3ca6cca 100644
--- a/cmd/enr_internal_test.go
+++ b/cmd/enr_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/exit_broadcast_internal_test.go b/cmd/exit_broadcast_internal_test.go
index 1506125c..5cb7d458 100644
--- a/cmd/exit_broadcast_internal_test.go
+++ b/cmd/exit_broadcast_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/exit_fetch_internal_test.go b/cmd/exit_fetch_internal_test.go
index 0f377db7..59aec79a 100644
--- a/cmd/exit_fetch_internal_test.go
+++ b/cmd/exit_fetch_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/exit_list_internal_test.go b/cmd/exit_list_internal_test.go
index 974e1f2c..e2850cea 100644
--- a/cmd/exit_list_internal_test.go
+++ b/cmd/exit_list_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/exit_sign_internal_test.go b/cmd/exit_sign_internal_test.go
index 2cde2344..ccc2e570 100644
--- a/cmd/exit_sign_internal_test.go
+++ b/cmd/exit_sign_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/markdown_internal_test.go b/cmd/markdown_internal_test.go
index bc8626bf..c57fdc58 100644
--- a/cmd/markdown_internal_test.go
+++ b/cmd/markdown_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/relay/p2p_internal_test.go b/cmd/relay/p2p_internal_test.go
index 30137672..99bfda31 100644
--- a/cmd/relay/p2p_internal_test.go
+++ b/cmd/relay/p2p_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package relay
 
diff --git a/cmd/relay/relay_internal_test.go b/cmd/relay/relay_internal_test.go
index 0a49dbf2..b6cbdaee 100644
--- a/cmd/relay/relay_internal_test.go
+++ b/cmd/relay/relay_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package relay
 
diff --git a/cmd/run_internal_test.go b/cmd/run_internal_test.go
index ecf843af..04041923 100644
--- a/cmd/run_internal_test.go
+++ b/cmd/run_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/test.go b/cmd/test.go
index 61409813..e552fdaf 100644
--- a/cmd/test.go
+++ b/cmd/test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/testall.go b/cmd/testall.go
index 8a40ca46..f4346df4 100644
--- a/cmd/testall.go
+++ b/cmd/testall.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/testbeacon.go b/cmd/testbeacon.go
index cdc71f2d..0cf9df1c 100644
--- a/cmd/testbeacon.go
+++ b/cmd/testbeacon.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/testbeacon_internal_test.go b/cmd/testbeacon_internal_test.go
index 38ec77e2..35ca3129 100644
--- a/cmd/testbeacon_internal_test.go
+++ b/cmd/testbeacon_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/testinfra.go b/cmd/testinfra.go
index 79ee8302..98ad861e 100644
--- a/cmd/testinfra.go
+++ b/cmd/testinfra.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/testinfra_internal_test.go b/cmd/testinfra_internal_test.go
index ffa73258..e964d403 100644
--- a/cmd/testinfra_internal_test.go
+++ b/cmd/testinfra_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/testmev.go b/cmd/testmev.go
index 955bfe6c..ca1a4960 100644
--- a/cmd/testmev.go
+++ b/cmd/testmev.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/testmev_internal_test.go b/cmd/testmev_internal_test.go
index 0de88f07..a63a9b28 100644
--- a/cmd/testmev_internal_test.go
+++ b/cmd/testmev_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/testpeers.go b/cmd/testpeers.go
index eda1bab6..838d00a7 100644
--- a/cmd/testpeers.go
+++ b/cmd/testpeers.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/testpeers_internal_test.go b/cmd/testpeers_internal_test.go
index 1631087b..94720f4f 100644
--- a/cmd/testpeers_internal_test.go
+++ b/cmd/testpeers_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/testvalidator.go b/cmd/testvalidator.go
index fb6567c4..fa936522 100644
--- a/cmd/testvalidator.go
+++ b/cmd/testvalidator.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/testvalidator_internal_test.go b/cmd/testvalidator_internal_test.go
index 578dcaac..e24a8f4a 100644
--- a/cmd/testvalidator_internal_test.go
+++ b/cmd/testvalidator_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/version_internal_test.go b/cmd/version_internal_test.go
index 66a038cc..60bb7b08 100644
--- a/cmd/version_internal_test.go
+++ b/cmd/version_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/cmd/view_cluster_manifest_internal_test.go b/cmd/view_cluster_manifest_internal_test.go
index 79419747..5caca6e8 100644
--- a/cmd/view_cluster_manifest_internal_test.go
+++ b/cmd/view_cluster_manifest_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package cmd
 
diff --git a/core/aggsigdb/memory_internal_test.go b/core/aggsigdb/memory_internal_test.go
index 5d181fd0..5213c006 100644
--- a/core/aggsigdb/memory_internal_test.go
+++ b/core/aggsigdb/memory_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package aggsigdb
 
diff --git a/core/aggsigdb/memory_test.go b/core/aggsigdb/memory_test.go
index 1b3421f7..9dc49acf 100644
--- a/core/aggsigdb/memory_test.go
+++ b/core/aggsigdb/memory_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package aggsigdb_test
 
diff --git a/core/aggsigdb/memory_v2_internal_test.go b/core/aggsigdb/memory_v2_internal_test.go
index 6bd30a5b..ab9d8507 100644
--- a/core/aggsigdb/memory_v2_internal_test.go
+++ b/core/aggsigdb/memory_v2_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package aggsigdb
 
diff --git a/core/bcast/bcast_test.go b/core/bcast/bcast_test.go
index 45302fbc..1dc98646 100644
--- a/core/bcast/bcast_test.go
+++ b/core/bcast/bcast_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package bcast_test
 
diff --git a/core/consensus/controller_test.go b/core/consensus/controller_test.go
index a86ea5dc..ce5071fa 100644
--- a/core/consensus/controller_test.go
+++ b/core/consensus/controller_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package consensus_test
 
diff --git a/core/consensus/debugger_internal_test.go b/core/consensus/debugger_internal_test.go
index d5114716..cf1fbc26 100644
--- a/core/consensus/debugger_internal_test.go
+++ b/core/consensus/debugger_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package consensus
 
diff --git a/core/consensus/metrics/metrics_test.go b/core/consensus/metrics/metrics_test.go
index 3db82427..6a6a61b7 100644
--- a/core/consensus/metrics/metrics_test.go
+++ b/core/consensus/metrics/metrics_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package metrics_test
 
diff --git a/core/consensus/protocols/protocols_test.go b/core/consensus/protocols/protocols_test.go
index 31321ddd..97eb64ca 100644
--- a/core/consensus/protocols/protocols_test.go
+++ b/core/consensus/protocols/protocols_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package protocols_test
 
diff --git a/core/consensus/qbft/msg_internal_test.go b/core/consensus/qbft/msg_internal_test.go
index 1750c87c..e9375f49 100644
--- a/core/consensus/qbft/msg_internal_test.go
+++ b/core/consensus/qbft/msg_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package qbft
 
diff --git a/core/consensus/qbft/qbft_internal_test.go b/core/consensus/qbft/qbft_internal_test.go
index 68524ed3..101bfe66 100644
--- a/core/consensus/qbft/qbft_internal_test.go
+++ b/core/consensus/qbft/qbft_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package qbft
 
diff --git a/core/consensus/qbft/qbft_test.go b/core/consensus/qbft/qbft_test.go
index ef2aeba7..0b251fde 100644
--- a/core/consensus/qbft/qbft_test.go
+++ b/core/consensus/qbft/qbft_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package qbft_test
 
diff --git a/core/consensus/qbft/sniffed_internal_test.go b/core/consensus/qbft/sniffed_internal_test.go
index 2fc7fb07..a478837c 100644
--- a/core/consensus/qbft/sniffed_internal_test.go
+++ b/core/consensus/qbft/sniffed_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package qbft
 
diff --git a/core/consensus/qbft/sniffer_internal_test.go b/core/consensus/qbft/sniffer_internal_test.go
index 12abaca7..09182f9c 100644
--- a/core/consensus/qbft/sniffer_internal_test.go
+++ b/core/consensus/qbft/sniffer_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package qbft
 
diff --git a/core/consensus/qbft/strategysim_internal_test.go b/core/consensus/qbft/strategysim_internal_test.go
index 52fc0ce3..b119308b 100644
--- a/core/consensus/qbft/strategysim_internal_test.go
+++ b/core/consensus/qbft/strategysim_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 //nolint:forbidigo // This is a test that prints to stdout.
 package qbft
diff --git a/core/consensus/utils/instance_io_test.go b/core/consensus/utils/instance_io_test.go
index 597d356f..3ce026e3 100644
--- a/core/consensus/utils/instance_io_test.go
+++ b/core/consensus/utils/instance_io_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package utils_test
 
diff --git a/core/consensus/utils/roundtimer_test.go b/core/consensus/utils/roundtimer_test.go
index daaaaaba..4a1cc1cc 100644
--- a/core/consensus/utils/roundtimer_test.go
+++ b/core/consensus/utils/roundtimer_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package utils_test
 
diff --git a/core/consensus/wrapper_internal_test.go b/core/consensus/wrapper_internal_test.go
index fc2c555b..cb4fa521 100644
--- a/core/consensus/wrapper_internal_test.go
+++ b/core/consensus/wrapper_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package consensus
 
diff --git a/core/deadline_test.go b/core/deadline_test.go
index f4a6aae8..4c475f19 100644
--- a/core/deadline_test.go
+++ b/core/deadline_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core_test
 
diff --git a/core/dutydb/memory_internal_test.go b/core/dutydb/memory_internal_test.go
index 80652583..535478a5 100644
--- a/core/dutydb/memory_internal_test.go
+++ b/core/dutydb/memory_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package dutydb
 
diff --git a/core/dutydb/memory_test.go b/core/dutydb/memory_test.go
index 561f0c1c..e08859fe 100644
--- a/core/dutydb/memory_test.go
+++ b/core/dutydb/memory_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package dutydb_test
 
diff --git a/core/eth2signeddata_test.go b/core/eth2signeddata_test.go
index 3521f1e7..d9343981 100644
--- a/core/eth2signeddata_test.go
+++ b/core/eth2signeddata_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core_test
 
diff --git a/core/fetcher/fetcher_internal_test.go b/core/fetcher/fetcher_internal_test.go
index 81ee62c9..b63d6c6e 100644
--- a/core/fetcher/fetcher_internal_test.go
+++ b/core/fetcher/fetcher_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package fetcher
 
diff --git a/core/fetcher/fetcher_test.go b/core/fetcher/fetcher_test.go
index 70fc3aad..993a372c 100644
--- a/core/fetcher/fetcher_test.go
+++ b/core/fetcher/fetcher_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package fetcher_test
 
diff --git a/core/gater_test.go b/core/gater_test.go
index 88203ac6..88a0b87b 100644
--- a/core/gater_test.go
+++ b/core/gater_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core_test
 
diff --git a/core/parsigdb/memory_internal_test.go b/core/parsigdb/memory_internal_test.go
index 838b68c5..042e9b24 100644
--- a/core/parsigdb/memory_internal_test.go
+++ b/core/parsigdb/memory_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package parsigdb
 
diff --git a/core/parsigex/memory_test.go b/core/parsigex/memory_test.go
index 84dca053..0321038e 100644
--- a/core/parsigex/memory_test.go
+++ b/core/parsigex/memory_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package parsigex_test
 
diff --git a/core/parsigex/parsigex_test.go b/core/parsigex/parsigex_test.go
index 80e66ec2..592ed840 100644
--- a/core/parsigex/parsigex_test.go
+++ b/core/parsigex/parsigex_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package parsigex_test
 
diff --git a/core/priority/calculate_internal_test.go b/core/priority/calculate_internal_test.go
index b6b08a7f..14d810bc 100644
--- a/core/priority/calculate_internal_test.go
+++ b/core/priority/calculate_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package priority
 
diff --git a/core/priority/prioritiser_test.go b/core/priority/prioritiser_test.go
index 225a939c..05417528 100644
--- a/core/priority/prioritiser_test.go
+++ b/core/priority/prioritiser_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package priority_test
 
diff --git a/core/proto_test.go b/core/proto_test.go
index cb0aaf5f..172e3930 100644
--- a/core/proto_test.go
+++ b/core/proto_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core_test
 
diff --git a/core/qbft/clock_internal_test.go b/core/qbft/clock_internal_test.go
index 221632c7..41dbff22 100644
--- a/core/qbft/clock_internal_test.go
+++ b/core/qbft/clock_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package qbft
 
diff --git a/core/qbft/qbft_internal_test.go b/core/qbft/qbft_internal_test.go
index 3c45f133..e186ffdc 100644
--- a/core/qbft/qbft_internal_test.go
+++ b/core/qbft/qbft_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package qbft
 
diff --git a/core/scheduler/scheduler_internal_test.go b/core/scheduler/scheduler_internal_test.go
index 7827bda3..2d03c18b 100644
--- a/core/scheduler/scheduler_internal_test.go
+++ b/core/scheduler/scheduler_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package scheduler
 
diff --git a/core/scheduler/scheduler_test.go b/core/scheduler/scheduler_test.go
index 9aad6438..0266c007 100644
--- a/core/scheduler/scheduler_test.go
+++ b/core/scheduler/scheduler_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package scheduler_test
 
diff --git a/core/serialise_test.go b/core/serialise_test.go
index 82169260..982bd54e 100644
--- a/core/serialise_test.go
+++ b/core/serialise_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core_test
 
diff --git a/core/sigagg/sigagg_test.go b/core/sigagg/sigagg_test.go
index 3bd7a3f4..be8dec42 100644
--- a/core/sigagg/sigagg_test.go
+++ b/core/sigagg/sigagg_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package sigagg_test
 
diff --git a/core/signeddata_test.go b/core/signeddata_test.go
index ed1afafe..d78a84b6 100644
--- a/core/signeddata_test.go
+++ b/core/signeddata_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core_test
 
diff --git a/core/ssz_test.go b/core/ssz_test.go
index 3e7cb1cc..dba51cb1 100644
--- a/core/ssz_test.go
+++ b/core/ssz_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core_test
 
diff --git a/core/tracker/inclusion_internal_test.go b/core/tracker/inclusion_internal_test.go
index a19a552b..79a79b99 100644
--- a/core/tracker/inclusion_internal_test.go
+++ b/core/tracker/inclusion_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package tracker
 
diff --git a/core/tracker/tracker_internal_test.go b/core/tracker/tracker_internal_test.go
index aeb16e52..497e3cb0 100644
--- a/core/tracker/tracker_internal_test.go
+++ b/core/tracker/tracker_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package tracker
 
diff --git a/core/types_test.go b/core/types_test.go
index de8ef83a..69dab3e7 100644
--- a/core/types_test.go
+++ b/core/types_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core_test
 
diff --git a/core/unsigneddata_test.go b/core/unsigneddata_test.go
index 648ca261..dc31fb22 100644
--- a/core/unsigneddata_test.go
+++ b/core/unsigneddata_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package core_test
 
diff --git a/core/validatorapi/router_internal_test.go b/core/validatorapi/router_internal_test.go
index 9886a7cd..0d630b71 100644
--- a/core/validatorapi/router_internal_test.go
+++ b/core/validatorapi/router_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package validatorapi
 
diff --git a/core/validatorapi/validatorapi_internal_test.go b/core/validatorapi/validatorapi_internal_test.go
index 990c5acc..d0654b97 100644
--- a/core/validatorapi/validatorapi_internal_test.go
+++ b/core/validatorapi/validatorapi_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package validatorapi
 
diff --git a/core/validatorapi/validatorapi_test.go b/core/validatorapi/validatorapi_test.go
index f6a9bb7c..6c3d7305 100644
--- a/core/validatorapi/validatorapi_test.go
+++ b/core/validatorapi/validatorapi_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package validatorapi_test
 
diff --git a/dkg/bcast/impl_test.go b/dkg/bcast/impl_test.go
index 811bf17a..bdf5a805 100644
--- a/dkg/bcast/impl_test.go
+++ b/dkg/bcast/impl_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package bcast_test
 
diff --git a/dkg/disk_internal_test.go b/dkg/disk_internal_test.go
index ea5f8d07..5016a380 100644
--- a/dkg/disk_internal_test.go
+++ b/dkg/disk_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package dkg
 
diff --git a/dkg/dkg_internal_test.go b/dkg/dkg_internal_test.go
index d60ce6e2..09573a11 100644
--- a/dkg/dkg_internal_test.go
+++ b/dkg/dkg_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package dkg
 
diff --git a/dkg/dkg_test.go b/dkg/dkg_test.go
index 95e5cb3b..30505ca4 100644
--- a/dkg/dkg_test.go
+++ b/dkg/dkg_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package dkg_test
 
diff --git a/dkg/exchanger_internal_test.go b/dkg/exchanger_internal_test.go
index 42ef877b..5dd3b5c7 100644
--- a/dkg/exchanger_internal_test.go
+++ b/dkg/exchanger_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package dkg
 
diff --git a/dkg/frost_internal_test.go b/dkg/frost_internal_test.go
index f5a07ac9..f069ad22 100644
--- a/dkg/frost_internal_test.go
+++ b/dkg/frost_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package dkg
 
diff --git a/dkg/frostp2p_internal_test.go b/dkg/frostp2p_internal_test.go
index 16d2fe66..f5457faf 100644
--- a/dkg/frostp2p_internal_test.go
+++ b/dkg/frostp2p_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package dkg
 
diff --git a/dkg/nodesigs_internal_test.go b/dkg/nodesigs_internal_test.go
index 841b0f96..1a560c40 100644
--- a/dkg/nodesigs_internal_test.go
+++ b/dkg/nodesigs_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package dkg
 
diff --git a/dkg/sync/server_internal_test.go b/dkg/sync/server_internal_test.go
index 597f7cef..19857fb5 100644
--- a/dkg/sync/server_internal_test.go
+++ b/dkg/sync/server_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package sync
 
diff --git a/dkg/sync/sync_test.go b/dkg/sync/sync_test.go
index 00c6779c..6cbf6922 100644
--- a/dkg/sync/sync_test.go
+++ b/dkg/sync/sync_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package sync_test
 
diff --git a/eth2util/deposit/deposit_internal_test.go b/eth2util/deposit/deposit_internal_test.go
index ea8a7378..430ac5b8 100644
--- a/eth2util/deposit/deposit_internal_test.go
+++ b/eth2util/deposit/deposit_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package deposit
 
diff --git a/eth2util/deposit/deposit_test.go b/eth2util/deposit/deposit_test.go
index 552ec5e8..5fb6d2d0 100644
--- a/eth2util/deposit/deposit_test.go
+++ b/eth2util/deposit/deposit_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package deposit_test
 
diff --git a/eth2util/eip712/eip712_test.go b/eth2util/eip712/eip712_test.go
index e4e585fb..c52022b4 100644
--- a/eth2util/eip712/eip712_test.go
+++ b/eth2util/eip712/eip712_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eip712_test
 
diff --git a/eth2util/enr/enr_internal_test.go b/eth2util/enr/enr_internal_test.go
index c997028e..49cbafc8 100644
--- a/eth2util/enr/enr_internal_test.go
+++ b/eth2util/enr/enr_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package enr
 
diff --git a/eth2util/enr/enr_test.go b/eth2util/enr/enr_test.go
index 5715f878..e72b376f 100644
--- a/eth2util/enr/enr_test.go
+++ b/eth2util/enr/enr_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package enr_test
 
diff --git a/eth2util/eth2exp/attagg_test.go b/eth2util/eth2exp/attagg_test.go
index 46076c49..e2d4960b 100644
--- a/eth2util/eth2exp/attagg_test.go
+++ b/eth2util/eth2exp/attagg_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2exp_test
 
diff --git a/eth2util/hash_test.go b/eth2util/hash_test.go
index 6a9bbc47..9cbd1eea 100644
--- a/eth2util/hash_test.go
+++ b/eth2util/hash_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2util_test
 
diff --git a/eth2util/helper_capella_test.go b/eth2util/helper_capella_test.go
index 5d7eb34f..d2c8bb31 100644
--- a/eth2util/helper_capella_test.go
+++ b/eth2util/helper_capella_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2util_test
 
diff --git a/eth2util/helpers_test.go b/eth2util/helpers_test.go
index 4687e435..d5d71b16 100644
--- a/eth2util/helpers_test.go
+++ b/eth2util/helpers_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2util_test
 
diff --git a/eth2util/keymanager/keymanager_test.go b/eth2util/keymanager/keymanager_test.go
index 7b14c084..6b6962a8 100644
--- a/eth2util/keymanager/keymanager_test.go
+++ b/eth2util/keymanager/keymanager_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package keymanager_test
 
diff --git a/eth2util/keystore/keystore_test.go b/eth2util/keystore/keystore_test.go
index fa03d888..0485dea0 100644
--- a/eth2util/keystore/keystore_test.go
+++ b/eth2util/keystore/keystore_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package keystore_test
 
diff --git a/eth2util/network_test.go b/eth2util/network_test.go
index 2d05ab04..59eb8e1f 100644
--- a/eth2util/network_test.go
+++ b/eth2util/network_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2util_test
 
diff --git a/eth2util/registration/registration_test.go b/eth2util/registration/registration_test.go
index fd67700c..4d4f2776 100644
--- a/eth2util/registration/registration_test.go
+++ b/eth2util/registration/registration_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package registration_test
 
diff --git a/eth2util/rlp/rlp_internal_test.go b/eth2util/rlp/rlp_internal_test.go
index 53d35e6f..79705b50 100644
--- a/eth2util/rlp/rlp_internal_test.go
+++ b/eth2util/rlp/rlp_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package rlp
 
diff --git a/eth2util/rlp/rlp_test.go b/eth2util/rlp/rlp_test.go
index b32dc848..46fa96cb 100644
--- a/eth2util/rlp/rlp_test.go
+++ b/eth2util/rlp/rlp_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package rlp_test
 
diff --git a/eth2util/signing/signing_test.go b/eth2util/signing/signing_test.go
index 0639a0ec..f60c1dbf 100644
--- a/eth2util/signing/signing_test.go
+++ b/eth2util/signing/signing_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package signing_test
 
diff --git a/eth2util/types_test.go b/eth2util/types_test.go
index ca6a424c..d9d3b2fc 100644
--- a/eth2util/types_test.go
+++ b/eth2util/types_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package eth2util_test
 
diff --git a/p2p/config_internal_test.go b/p2p/config_internal_test.go
index f7f83607..2aa46657 100644
--- a/p2p/config_internal_test.go
+++ b/p2p/config_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p
 
diff --git a/p2p/errors_internal_test.go b/p2p/errors_internal_test.go
index 96b0e45d..67f39616 100644
--- a/p2p/errors_internal_test.go
+++ b/p2p/errors_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p
 
diff --git a/p2p/gater_test.go b/p2p/gater_test.go
index edb29215..2f52c3b2 100644
--- a/p2p/gater_test.go
+++ b/p2p/gater_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p_test
 
diff --git a/p2p/name_test.go b/p2p/name_test.go
index 76f7c064..c66614d0 100644
--- a/p2p/name_test.go
+++ b/p2p/name_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p_test
 
diff --git a/p2p/p2p_internal_test.go b/p2p/p2p_internal_test.go
index 489fe9c7..2e62c982 100644
--- a/p2p/p2p_internal_test.go
+++ b/p2p/p2p_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p
 
diff --git a/p2p/peer_test.go b/p2p/peer_test.go
index 48bffb48..1846210a 100644
--- a/p2p/peer_test.go
+++ b/p2p/peer_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p_test
 
diff --git a/p2p/receive_test.go b/p2p/receive_test.go
index c44ce26c..fe0647c1 100644
--- a/p2p/receive_test.go
+++ b/p2p/receive_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p_test
 
diff --git a/p2p/sender_internal_test.go b/p2p/sender_internal_test.go
index 3b801560..4fa5fe0b 100644
--- a/p2p/sender_internal_test.go
+++ b/p2p/sender_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p
 
diff --git a/p2p/sender_test.go b/p2p/sender_test.go
index abc30041..b7eed6f3 100644
--- a/p2p/sender_test.go
+++ b/p2p/sender_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package p2p_test
 
diff --git a/tbls/tbls_test.go b/tbls/tbls_test.go
index 8a967a33..c99790ef 100644
--- a/tbls/tbls_test.go
+++ b/tbls/tbls_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package tbls_test
 
diff --git a/tbls/tblsconv/tblsconv_test.go b/tbls/tblsconv/tblsconv_test.go
index a61f1bfd..b04ee755 100644
--- a/tbls/tblsconv/tblsconv_test.go
+++ b/tbls/tblsconv/tblsconv_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package tblsconv_test
 
diff --git a/testutil/beaconmock/attestation.go b/testutil/beaconmock/attestation.go
index 0ebc3111..22b8ccc2 100644
--- a/testutil/beaconmock/attestation.go
+++ b/testutil/beaconmock/attestation.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package beaconmock
 
diff --git a/testutil/beaconmock/beaconmock.go b/testutil/beaconmock/beaconmock.go
index 846eb49f..0935e770 100644
--- a/testutil/beaconmock/beaconmock.go
+++ b/testutil/beaconmock/beaconmock.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package beaconmock provides a mock beacon node server and client primarily for testing.
 //
diff --git a/testutil/beaconmock/beaconmock_fuzz.go b/testutil/beaconmock/beaconmock_fuzz.go
index 6632d320..16d2649d 100644
--- a/testutil/beaconmock/beaconmock_fuzz.go
+++ b/testutil/beaconmock/beaconmock_fuzz.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package beaconmock
 
diff --git a/testutil/beaconmock/beaconmock_test.go b/testutil/beaconmock/beaconmock_test.go
index de8f757e..834d9085 100644
--- a/testutil/beaconmock/beaconmock_test.go
+++ b/testutil/beaconmock/beaconmock_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package beaconmock_test
 
diff --git a/testutil/beaconmock/headproducer.go b/testutil/beaconmock/headproducer.go
index 55a744dd..eae0a844 100644
--- a/testutil/beaconmock/headproducer.go
+++ b/testutil/beaconmock/headproducer.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package beaconmock
 
diff --git a/testutil/beaconmock/headproducer_internal_test.go b/testutil/beaconmock/headproducer_internal_test.go
index da1d9ec9..fa0dc11b 100644
--- a/testutil/beaconmock/headproducer_internal_test.go
+++ b/testutil/beaconmock/headproducer_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package beaconmock
 
diff --git a/testutil/beaconmock/options.go b/testutil/beaconmock/options.go
index 1504d249..450d04bd 100644
--- a/testutil/beaconmock/options.go
+++ b/testutil/beaconmock/options.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package beaconmock
 
diff --git a/testutil/beaconmock/options_internal_test.go b/testutil/beaconmock/options_internal_test.go
index 3a94ac41..3a769aa8 100644
--- a/testutil/beaconmock/options_internal_test.go
+++ b/testutil/beaconmock/options_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package beaconmock
 
diff --git a/testutil/beaconmock/server.go b/testutil/beaconmock/server.go
index 2bad2d9f..d355060d 100644
--- a/testutil/beaconmock/server.go
+++ b/testutil/beaconmock/server.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package beaconmock
 
diff --git a/testutil/beaconmock/server_test.go b/testutil/beaconmock/server_test.go
index 98f204a5..cc4171d3 100644
--- a/testutil/beaconmock/server_test.go
+++ b/testutil/beaconmock/server_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package beaconmock_test
 
diff --git a/testutil/charon_dir.go b/testutil/charon_dir.go
index 94cd24d8..f51e7765 100644
--- a/testutil/charon_dir.go
+++ b/testutil/charon_dir.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package testutil
 
diff --git a/testutil/compose/alert.go b/testutil/compose/alert.go
index c78766ce..0ea66881 100644
--- a/testutil/compose/alert.go
+++ b/testutil/compose/alert.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package compose
 
diff --git a/testutil/compose/auto.go b/testutil/compose/auto.go
index 7fa615e2..8dbc6fda 100644
--- a/testutil/compose/auto.go
+++ b/testutil/compose/auto.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package compose
 
diff --git a/testutil/compose/compose/main.go b/testutil/compose/compose/main.go
index f6dc7511..0d664c6d 100644
--- a/testutil/compose/compose/main.go
+++ b/testutil/compose/compose/main.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Command compose provides a tool to run, test, debug local charon clusters
 // using docker compose.
diff --git a/testutil/compose/compose_internal_test.go b/testutil/compose/compose_internal_test.go
index e7859561..c16a15e6 100644
--- a/testutil/compose/compose_internal_test.go
+++ b/testutil/compose/compose_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package compose
 
diff --git a/testutil/compose/config.go b/testutil/compose/config.go
index ad2d5081..70b08e42 100644
--- a/testutil/compose/config.go
+++ b/testutil/compose/config.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package compose
 
diff --git a/testutil/compose/define.go b/testutil/compose/define.go
index f68cbd0b..d17fbaaa 100644
--- a/testutil/compose/define.go
+++ b/testutil/compose/define.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package compose
 
diff --git a/testutil/compose/fuzz/fuzz_test.go b/testutil/compose/fuzz/fuzz_test.go
index bce615f3..3c6af8ff 100644
--- a/testutil/compose/fuzz/fuzz_test.go
+++ b/testutil/compose/fuzz/fuzz_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package fuzz_test
 
diff --git a/testutil/compose/lock.go b/testutil/compose/lock.go
index fc9da517..96ff9d34 100644
--- a/testutil/compose/lock.go
+++ b/testutil/compose/lock.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package compose
 
diff --git a/testutil/compose/new.go b/testutil/compose/new.go
index cb4ede9a..ac1e17a7 100644
--- a/testutil/compose/new.go
+++ b/testutil/compose/new.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package compose
 
diff --git a/testutil/compose/new_test.go b/testutil/compose/new_test.go
index 9fb606a3..e36919ba 100644
--- a/testutil/compose/new_test.go
+++ b/testutil/compose/new_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package compose_test
 
diff --git a/testutil/compose/run.go b/testutil/compose/run.go
index 23e465b0..0c1082db 100644
--- a/testutil/compose/run.go
+++ b/testutil/compose/run.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package compose
 
diff --git a/testutil/compose/smoke/smoke_test.go b/testutil/compose/smoke/smoke_test.go
index b4a921e4..f19c0e89 100644
--- a/testutil/compose/smoke/smoke_test.go
+++ b/testutil/compose/smoke/smoke_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package smoke_test
 
diff --git a/testutil/compose/template.go b/testutil/compose/template.go
index 125ab3e5..79b73fe4 100644
--- a/testutil/compose/template.go
+++ b/testutil/compose/template.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package compose
 
diff --git a/testutil/error.go b/testutil/error.go
index 7ca7a70c..9941db53 100644
--- a/testutil/error.go
+++ b/testutil/error.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package testutil
 
diff --git a/testutil/fuzz.go b/testutil/fuzz.go
index bbac8f75..eaab3b57 100644
--- a/testutil/fuzz.go
+++ b/testutil/fuzz.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package testutil
 
diff --git a/testutil/genchangelog/main.go b/testutil/genchangelog/main.go
index b5644548..8c7e1d53 100644
--- a/testutil/genchangelog/main.go
+++ b/testutil/genchangelog/main.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Command genchangelog provides a tool to generate a changelog.md file from a git commit range.
 // It requires the following:
diff --git a/testutil/genchangelog/main_internal_test.go b/testutil/genchangelog/main_internal_test.go
index bf9593b5..e9aa61ac 100644
--- a/testutil/genchangelog/main_internal_test.go
+++ b/testutil/genchangelog/main_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package main
 
diff --git a/testutil/golden.go b/testutil/golden.go
index eee12eb2..f91b477a 100644
--- a/testutil/golden.go
+++ b/testutil/golden.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package testutil provides test utilities.
 package testutil
diff --git a/testutil/helpers.go b/testutil/helpers.go
index cad33892..8bb2c616 100644
--- a/testutil/helpers.go
+++ b/testutil/helpers.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package testutil
 
diff --git a/testutil/integration/doc.go b/testutil/integration/doc.go
index 1439e225..eccb3a34 100644
--- a/testutil/integration/doc.go
+++ b/testutil/integration/doc.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package integration provides integration tests that includes multiple
 // instances communicating via loopback networking.
diff --git a/testutil/integration/helpers_test.go b/testutil/integration/helpers_test.go
index 72c6a7e0..2eeb9a75 100644
--- a/testutil/integration/helpers_test.go
+++ b/testutil/integration/helpers_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package integration_test
 
diff --git a/testutil/integration/infosync_test.go b/testutil/integration/infosync_test.go
index e3afb672..464d817c 100644
--- a/testutil/integration/infosync_test.go
+++ b/testutil/integration/infosync_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package integration_test
 
diff --git a/testutil/integration/nightly_dkg_test.go b/testutil/integration/nightly_dkg_test.go
index 3ac97226..fd42c0a0 100644
--- a/testutil/integration/nightly_dkg_test.go
+++ b/testutil/integration/nightly_dkg_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package integration_test
 
diff --git a/testutil/integration/ping_test.go b/testutil/integration/ping_test.go
index 9a3691be..4fd6672c 100644
--- a/testutil/integration/ping_test.go
+++ b/testutil/integration/ping_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package integration_test
 
diff --git a/testutil/integration/simnet_test.go b/testutil/integration/simnet_test.go
index 1434e3a2..d8dfe6cd 100644
--- a/testutil/integration/simnet_test.go
+++ b/testutil/integration/simnet_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package integration_test
 
diff --git a/testutil/obolapimock/obolapi_exit.go b/testutil/obolapimock/obolapi_exit.go
index 86f2de15..21b14ae7 100644
--- a/testutil/obolapimock/obolapi_exit.go
+++ b/testutil/obolapimock/obolapi_exit.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package obolapimock
 
diff --git a/testutil/promrated/metrics.go b/testutil/promrated/metrics.go
index 414a076f..71b4fd39 100644
--- a/testutil/promrated/metrics.go
+++ b/testutil/promrated/metrics.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package promrated
 
diff --git a/testutil/promrated/prometheus.go b/testutil/promrated/prometheus.go
index f0f78190..f359aab4 100644
--- a/testutil/promrated/prometheus.go
+++ b/testutil/promrated/prometheus.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package promrated
 
diff --git a/testutil/promrated/promrated.go b/testutil/promrated/promrated.go
index 92c03492..3028e357 100644
--- a/testutil/promrated/promrated.go
+++ b/testutil/promrated/promrated.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Command promrated grabs rated stats for all monitored charon clusters
 
diff --git a/testutil/promrated/promrated/main.go b/testutil/promrated/promrated/main.go
index 6e7431fe..3b1a4eaa 100644
--- a/testutil/promrated/promrated/main.go
+++ b/testutil/promrated/promrated/main.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package main
 
diff --git a/testutil/promrated/promrated_internal_test.go b/testutil/promrated/promrated_internal_test.go
index ffdaafb6..0083a234 100644
--- a/testutil/promrated/promrated_internal_test.go
+++ b/testutil/promrated/promrated_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package promrated
 
diff --git a/testutil/promrated/rated.go b/testutil/promrated/rated.go
index ed14c384..ead72cc2 100644
--- a/testutil/promrated/rated.go
+++ b/testutil/promrated/rated.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package promrated
 
diff --git a/testutil/promrated/rated_internal_test.go b/testutil/promrated/rated_internal_test.go
index 4ac3cfbe..c7b58ff1 100644
--- a/testutil/promrated/rated_internal_test.go
+++ b/testutil/promrated/rated_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package promrated
 
diff --git a/testutil/random.go b/testutil/random.go
index 7c19ac6e..2bb65de3 100644
--- a/testutil/random.go
+++ b/testutil/random.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 //nolint:gosec
 package testutil
diff --git a/testutil/timeout.go b/testutil/timeout.go
index a2054c90..02d04d9c 100644
--- a/testutil/timeout.go
+++ b/testutil/timeout.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package testutil
 
diff --git a/testutil/url.go b/testutil/url.go
index f44eb64c..e1cb710c 100644
--- a/testutil/url.go
+++ b/testutil/url.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package testutil
 
diff --git a/testutil/validatormock/attest.go b/testutil/validatormock/attest.go
index 10958ea5..1d459971 100644
--- a/testutil/validatormock/attest.go
+++ b/testutil/validatormock/attest.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package validatormock
 
diff --git a/testutil/validatormock/component.go b/testutil/validatormock/component.go
index e149f055..457dc461 100644
--- a/testutil/validatormock/component.go
+++ b/testutil/validatormock/component.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package validatormock
 
diff --git a/testutil/validatormock/meta.go b/testutil/validatormock/meta.go
index c8ab3d1b..917de361 100644
--- a/testutil/validatormock/meta.go
+++ b/testutil/validatormock/meta.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package validatormock
 
diff --git a/testutil/validatormock/propose.go b/testutil/validatormock/propose.go
index 1787b7cb..69cc234a 100644
--- a/testutil/validatormock/propose.go
+++ b/testutil/validatormock/propose.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Package validatormock provides mock validator client functionality.
 package validatormock
diff --git a/testutil/validatormock/propose_test.go b/testutil/validatormock/propose_test.go
index 2ebf8d04..a462b7ca 100644
--- a/testutil/validatormock/propose_test.go
+++ b/testutil/validatormock/propose_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package validatormock_test
 
diff --git a/testutil/validatormock/synccomm.go b/testutil/validatormock/synccomm.go
index f238f6e8..36db2545 100644
--- a/testutil/validatormock/synccomm.go
+++ b/testutil/validatormock/synccomm.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package validatormock
 
diff --git a/testutil/validatormock/synccomm_internal_test.go b/testutil/validatormock/synccomm_internal_test.go
index 226638c2..4b9c41e4 100644
--- a/testutil/validatormock/synccomm_internal_test.go
+++ b/testutil/validatormock/synccomm_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 package validatormock
 
diff --git a/testutil/verifypr/main.go b/testutil/verifypr/main.go
index b9ced6ce..a7f18fb9 100644
--- a/testutil/verifypr/main.go
+++ b/testutil/verifypr/main.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Command verifypr provides a tool to verify charon PRs against the template defined in docs/contibuting.md.
 package main
diff --git a/testutil/verifypr/verify.go b/testutil/verifypr/verify.go
index 0300a66a..d7bf46c9 100644
--- a/testutil/verifypr/verify.go
+++ b/testutil/verifypr/verify.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Command verifypr provides a tool to verify charon PRs against the template defined in docs/contibuting.md.
 //
diff --git a/testutil/verifypr/verify_internal_test.go b/testutil/verifypr/verify_internal_test.go
index 79a3b4ab..9b1bedd2 100644
--- a/testutil/verifypr/verify_internal_test.go
+++ b/testutil/verifypr/verify_internal_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2022-2024 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
+// Copyright © 2022-2025 Obol Labs Inc. Licensed under the terms of a Business Source License 1.1
 
 // Command verifypr provides a tool to verify charon PRs against the template defined in docs/contibuting.md.
 package main