diff --git a/CMakeLists.txt b/CMakeLists.txt
index 694e3eca1..5fb0bc0bd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,156 +1,156 @@
 # Copyright (c) 2017 The Bitcoin developers
 
 cmake_minimum_required(VERSION 3.18)
 
 set(CMAKE_USER_MAKE_RULES_OVERRIDE
 	"${CMAKE_SOURCE_DIR}/cmake/modules/OverrideInitFlags.cmake"
 )
 
 project(bitcoin-abc
-	VERSION 0.30.8
+	VERSION 0.30.9
 	DESCRIPTION "Bitcoin ABC is a full node implementation of the eCash protocol."
 	HOMEPAGE_URL "https://www.bitcoinabc.org"
 )
 
 add_custom_target(print-version
   COMMENT "Print the current ${PROJECT_NAME} version"
   COMMAND "${CMAKE_COMMAND}" -E echo "${PROJECT_VERSION}"
 )
 
 add_custom_target(print-project-name
   COMMENT "Print the current ${PROJECT_NAME}"
   COMMAND "${CMAKE_COMMAND}" -E echo "${PROJECT_NAME}"
 )
 
 # Package information
 set(PACKAGE_NAME "Bitcoin ABC")
 set(PACKAGE_BUGREPORT "https://github.com/Bitcoin-ABC/bitcoin-abc/issues")
 
 # Copyright
 set(COPYRIGHT_YEAR 2025)
 set(COPYRIGHT_HOLDERS "The %s developers")
 set(COPYRIGHT_HOLDERS_SUBSTITUTION Bitcoin)
 string(REPLACE "%s" ${COPYRIGHT_HOLDERS_SUBSTITUTION} COPYRIGHT_HOLDERS_FINAL ${COPYRIGHT_HOLDERS})
 
 # Add path for custom modules
 list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
 
 # Make contrib script accessible.
 set(CONTRIB_PATH ${CMAKE_CURRENT_SOURCE_DIR}/contrib)
 
 # Default to RelWithDebInfo configuration
 if(NOT CMAKE_BUILD_TYPE)
 	set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
 		"Select the configuration for the build" FORCE)
 	set(__NO_USER_CMAKE_BUILD_TYPE ON CACHE BOOL "True if the user didn't set a build type on the command line")
 endif()
 
 # Find the host python interpreter. This is required for several targets.
 # Make sure we don't pick the python version that is built in the native depends
 # as we need the libraries as well.
 set(CMAKE_PREFIX_PATH_SAVED "${CMAKE_PREFIX_PATH}")
 unset(CMAKE_PREFIX_PATH)
 find_package(Python 3.9 COMPONENTS Interpreter REQUIRED)
 set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH_SAVED}")
 
 # Add the magic targets `check-*`
 add_custom_target(check-all)
 add_custom_target(check)
 add_custom_target(check-extended)
 add_custom_target(check-upgrade-activated)
 add_custom_target(check-upgrade-activated-extended)
 
 # Add the global install targets
 add_custom_target(install-all)
 add_custom_target(install-debug)
 add_custom_target(install-all-debug)
 
 include(PackageHelper)
 exclude_git_ignored_files_from_source_package()
 
 # Ignore hidden files and directories (starting with a '.')
 set_property(GLOBAL APPEND PROPERTY SOURCE_PACKAGE_IGNORE_FILES	"/\\\\.")
 
 # If the build is out-of-tree, then the build directory can be ignored.
 if(NOT CMAKE_BINARY_DIR STREQUAL CMAKE_SOURCE_DIR)
 	set_property(GLOBAL APPEND PROPERTY SOURCE_PACKAGE_IGNORE_FILES
 		"${CMAKE_BINARY_DIR}/"
 	)
 endif()
 
 exclude_from_source_package(
 	# Subdirectories
 	"arcanist/"
 	"depends/"
 
 	# Files
 	"[^.]+[.]md$"
 
 	# GUIX
 	"var/"
 	"output/"
 	"distsrc-.*/"
 
 	# CI
 	"abc-ci-builds/"
 )
 
 option(ENABLE_COVERAGE "Enable coverage" OFF)
 option(ENABLE_BRANCH_COVERAGE "Enable branch coverage" OFF)
 
 if(ENABLE_COVERAGE)
 	include(Coverage)
 	enable_coverage(${ENABLE_BRANCH_COVERAGE})
 
 	include(AddCompilerFlags)
 
 	# If no build type is manually defined, override the optimization level.
 	# Otherwise, alert the user than the coverage result might be useless.
 	if(__NO_USER_CMAKE_BUILD_TYPE)
 		set_c_optimization_level(0)
 
 		# Setting -Og instead of -O0 is a workaround for the GCC bug 90380:
 		# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90380
 		#
 		# This bug is fixed upstream, but is not widely distributed yet.
 		# Fixed in GCC versions:
 		#  - GCC 7.x: versions <= 7.2 are unaffected
 		#  - GCC 8.x: versions >= 8.3.1
 		#  - GCC 9.x: versions >= 9.1.1
 		#  - GCC 10.x: all versions
 		set_cxx_optimization_level(g)
 	else()
 		message(WARNING "It is advised to not enforce CMAKE_BUILD_TYPE to get the best coverage results")
 	endif()
 
 	exclude_from_coverage(
 		"depends"
 		"src/bench"
 		"src/crypto/ctaes"
 		"src/leveldb"
 		"src/univalue"
 	)
 
 	add_custom_target_coverage(check)
 	add_custom_target_coverage(check-all)
 	add_custom_target_coverage(check-extended)
 	add_custom_target_coverage(check-upgrade-activated)
 	add_custom_target_coverage(check-upgrade-activated-extended)
 endif()
 
 add_subdirectory(src)
 
 option(BUILD_BITCOIN_CHRONIK "Activate the Chronik indexer" OFF)
 option(BUILD_BITCOIN_CHRONIK_PLUGINS "Activate the plugin system for Chronik" OFF)
 if(BUILD_BITCOIN_CHRONIK)
 	add_subdirectory(chronik)
 endif()
 
 add_subdirectory(test)
 
 add_subdirectory(electrum)
 
 add_subdirectory(contrib)
 add_subdirectory(doc)
 
 include(PackageOptions.cmake)
diff --git a/contrib/aur/bitcoin-abc-qt/PKGBUILD b/contrib/aur/bitcoin-abc-qt/PKGBUILD
index 947a4773c..1359130f3 100644
--- a/contrib/aur/bitcoin-abc-qt/PKGBUILD
+++ b/contrib/aur/bitcoin-abc-qt/PKGBUILD
@@ -1,105 +1,105 @@
 # Maintainer: Josh Ellithorpe <quest@mac.com>
 
 pkgname=bitcoin-abc-qt
-pkgver=0.30.8
+pkgver=0.30.9
 pkgrel=0
 pkgdesc="Bitcoin ABC with bitcoind, bitcoin-cli, bitcoin-tx, bitcoin-seeder and bitcoin-qt"
 arch=('i686' 'x86_64')
 url="https://bitcoinabc.org"
 depends=('boost-libs' 'libevent' 'desktop-file-utils' 'qt5-base' 'protobuf' 'openssl' 'miniupnpc' 'libnatpmp' 'zeromq' 'qrencode' 'jemalloc')
 makedepends=('cmake' 'ninja' 'boost' 'qt5-tools' 'python' 'help2man' 'xorg-server-xvfb')
 license=('MIT')
 source=(https://github.com/Bitcoin-ABC/bitcoin-abc/archive/v$pkgver.tar.gz
         bitcoin.conf
         bitcoin.logrotate
         bitcoin.service
         bitcoin-reindex.service
         bitcoin.install)
 backup=('etc/bitcoin/bitcoin.conf'
         'etc/logrotate.d/bitcoin')
 provides=('bitcoin-cli' 'bitcoin-daemon' 'bitcoin-tx' 'bitcoin-qt' 'bitcoin-seeder' 'bitcoin-wallet')
 conflicts=('bitcoin-cli' 'bitcoin-daemon' 'bitcoin-tx' 'bitcoin-qt' 'bitcoin-seeder' 'bitcoin-wallet')
 install=bitcoin.install
 
 build() {
   cd "$srcdir/bitcoin-abc-$pkgver"
 
   msg2 'Building...'
   mkdir -p build
   pushd build
 
   cmake -GNinja .. \
     -DENABLE_CLANG_TIDY=OFF \
     -DCLIENT_VERSION_IS_RELEASE=ON \
     -DENABLE_REDUCE_EXPORTS=ON \
     -DENABLE_STATIC_LIBSTDCXX=ON \
     -DBUILD_BITCOIN_IGUANA=OFF \
     -DUSE_LINKER= \
     -DCMAKE_INSTALL_PREFIX=$pkgdir/usr
 
   ninja
   popd
 }
 
 check() {
   cd "$srcdir/bitcoin-abc-$pkgver/build"
 
   msg2 'Testing...'
   ninja check
 }
 
 package() {
   cd "$srcdir/bitcoin-abc-$pkgver"
 
   msg2 'Installing desktop shortcut...'
   install -Dm644 contrib/debian/bitcoin-qt.desktop \
     "$pkgdir"/usr/share/applications/bitcoin.desktop
   install -Dm644 share/pixmaps/bitcoin-abc128.png \
     "$pkgdir"/usr/share/pixmaps/bitcoin-abc128.png
 
   msg2 'Installing license...'
   install -Dm 644 COPYING -t "$pkgdir/usr/share/licenses/${pkgname}"
 
   msg2 'Installing examples...'
   install -Dm644 "contrib/debian/examples/bitcoin.conf" \
     -t "$pkgdir/usr/share/doc/bitcoin/examples"
 
   msg2 'Installing documentation...'
   install -dm 755 "$pkgdir/usr/share/doc/bitcoin"
   for _doc in \
     $(find doc -maxdepth 1 -type f -name "*.md" -printf '%f\n') \
     release-notes; do
       cp -dpr --no-preserve=ownership "doc/$_doc" \
         "$pkgdir/usr/share/doc/bitcoin/$_doc"
   done
 
   msg2 'Installing essential directories'
   install -dm 700 "$pkgdir/etc/bitcoin"
   install -dm 755 "$pkgdir/srv/bitcoin"
   install -dm 755 "$pkgdir/run/bitcoin"
 
   pushd build
   msg2 'Installing executables...'
   ninja install/strip
 
   msg2 'Installing man pages...'
   xvfb-run ninja install-manpages
   popd
 
   msg2 'Installing bitcoin.conf...'
   install -Dm 600 "$srcdir/bitcoin.conf" -t "$pkgdir/etc/bitcoin"
 
   msg2 'Installing bitcoin.service...'
   install -Dm 644 "$srcdir/bitcoin.service" -t "$pkgdir/usr/lib/systemd/system"
   install -Dm 644 "$srcdir/bitcoin-reindex.service" \
     -t "$pkgdir/usr/lib/systemd/system"
 
   msg2 'Installing bitcoin.logrotate...'
   install -Dm 644 "$srcdir/bitcoin.logrotate" "$pkgdir/etc/logrotate.d/bitcoin"
 
   msg2 'Installing bash completion...'
   for _compl in bitcoin-cli bitcoin-tx bitcoind; do
     install -Dm 644 "contrib/${_compl}.bash-completion" \
       "$pkgdir/usr/share/bash-completion/completions/$_compl"
   done
 }
diff --git a/contrib/aur/bitcoin-abc/PKGBUILD b/contrib/aur/bitcoin-abc/PKGBUILD
index 28c9ab00d..a43981a57 100644
--- a/contrib/aur/bitcoin-abc/PKGBUILD
+++ b/contrib/aur/bitcoin-abc/PKGBUILD
@@ -1,101 +1,101 @@
 # Maintainer: Josh Ellithorpe <quest@mac.com>
 
 pkgname=bitcoin-abc
-pkgver=0.30.8
+pkgver=0.30.9
 pkgrel=0
 pkgdesc="Bitcoin ABC with bitcoind, bitcoin-tx, bitcoin-seeder and bitcoin-cli"
 arch=('i686' 'x86_64')
 url="https://bitcoinabc.org"
 depends=('boost-libs' 'libevent' 'openssl' 'zeromq' 'miniupnpc' 'libnatpmp' 'jemalloc')
 makedepends=('cmake' 'ninja' 'boost' 'python' 'help2man')
 license=('MIT')
 source=(https://github.com/Bitcoin-ABC/bitcoin-abc/archive/v$pkgver.tar.gz
         bitcoin.conf
         bitcoin.logrotate
         bitcoin.service
         bitcoin-reindex.service
         bitcoin.install)
 backup=('etc/bitcoin/bitcoin.conf'
         'etc/logrotate.d/bitcoin')
 provides=('bitcoin-cli' 'bitcoin-daemon' 'bitcoin-tx' 'bitcoin-seeder')
 conflicts=('bitcoin-cli' 'bitcoin-daemon' 'bitcoin-tx' 'bitcoin-seeder')
 install=bitcoin.install
 
 build() {
   cd "$srcdir/${pkgname}-$pkgver"
 
   msg2 'Building...'
   mkdir -p build
   pushd build
 
   cmake -GNinja .. \
     -DENABLE_CLANG_TIDY=OFF \
     -DCLIENT_VERSION_IS_RELEASE=ON \
     -DENABLE_REDUCE_EXPORTS=ON \
     -DENABLE_STATIC_LIBSTDCXX=ON \
     -DBUILD_BITCOIN_WALLET=OFF \
     -DBUILD_BITCOIN_QT=OFF \
     -DBUILD_BITCOIN_IGUANA=OFF \
     -DUSE_LINKER= \
     -DCMAKE_INSTALL_PREFIX=$pkgdir/usr
 
   ninja
   popd
 }
 
 check() {
   cd "$srcdir/${pkgname}-$pkgver/build"
 
   msg2 'Testing...'
   ninja check
 }
 
 package() {
   cd "$srcdir/${pkgname}-$pkgver"
 
   msg2 'Installing license...'
   install -Dm 644 COPYING -t "$pkgdir/usr/share/licenses/${pkgname}"
 
   msg2 'Installing examples...'
   install -Dm644 "contrib/debian/examples/bitcoin.conf" \
     -t "$pkgdir/usr/share/doc/bitcoin/examples"
 
   msg2 'Installing documentation...'
   install -dm 755 "$pkgdir/usr/share/doc/bitcoin"
   for _doc in \
     $(find doc -maxdepth 1 -type f -name "*.md" -printf '%f\n') \
     release-notes; do
       cp -dpr --no-preserve=ownership "doc/$_doc" \
         "$pkgdir/usr/share/doc/bitcoin/$_doc"
   done
 
   msg2 'Installing essential directories'
   install -dm 700 "$pkgdir/etc/bitcoin"
   install -dm 755 "$pkgdir/srv/bitcoin"
   install -dm 755 "$pkgdir/run/bitcoin"
 
   pushd build
   msg2 'Installing executables...'
   ninja install/strip
 
   msg2 'Installing man pages...'
   ninja install-manpages
   popd
 
   msg2 'Installing bitcoin.conf...'
   install -Dm 600 "$srcdir/bitcoin.conf" -t "$pkgdir/etc/bitcoin"
 
   msg2 'Installing bitcoin.service...'
   install -Dm 644 "$srcdir/bitcoin.service" -t "$pkgdir/usr/lib/systemd/system"
   install -Dm 644 "$srcdir/bitcoin-reindex.service" \
     -t "$pkgdir/usr/lib/systemd/system"
 
   msg2 'Installing bitcoin.logrotate...'
   install -Dm 644 "$srcdir/bitcoin.logrotate" "$pkgdir/etc/logrotate.d/bitcoin"
 
   msg2 'Installing bash completion...'
   for _compl in bitcoin-cli bitcoin-tx bitcoind; do
     install -Dm 644 "contrib/${_compl}.bash-completion" \
       "$pkgdir/usr/share/bash-completion/completions/$_compl"
   done
 }
diff --git a/doc/release-notes.md b/doc/release-notes.md
index 8a3d5e0e7..b9fa2069b 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -1,7 +1,8 @@
-# Bitcoin ABC 0.30.8 Release Notes
+# Bitcoin ABC 0.30.9 Release Notes
 
-Bitcoin ABC version 0.30.8 is now available from:
+Bitcoin ABC version 0.30.9 is now available from:
 
-  <https://download.bitcoinabc.org/0.30.8/>
+  <https://download.bitcoinabc.org/0.30.9/>
 
-This is a maintenance release with no user-visible change.
+This version contains a bugfix for a potential crash of the Chronik indexer.
+Chronik operators are advised to update.
diff --git a/doc/release-notes.md b/doc/release-notes/release-notes-0.30.8.md
similarity index 100%
copy from doc/release-notes.md
copy to doc/release-notes/release-notes-0.30.8.md