diff --git a/web/e.cash/components/navbar/getNavbarData.js b/web/e.cash/components/navbar/getNavbarData.js
--- a/web/e.cash/components/navbar/getNavbarData.js
+++ b/web/e.cash/components/navbar/getNavbarData.js
@@ -7,6 +7,7 @@
 
 export const ApiDataProvider = ({ children }) => {
     const [priceLinkText, setPriceLinkText] = useState('Buy XEC');
+    const [blockHeight, setBlockHeight] = useState(0);
 
     const getPrice = () => {
         const api =
@@ -19,12 +20,21 @@
             .catch(err => console.log(err));
     };
 
+    const getBlockHeight = () => {
+        const api = 'https://api.blockchair.com/ecash/stats';
+        fetch(api)
+            .then(response => response.json())
+            .then(data => setBlockHeight(data.data.best_block_height))
+            .catch(err => console.log(err));
+    };
+
     useEffect(() => {
         getPrice();
+        getBlockHeight();
     }, []);
 
     return (
-        <ApiDataContext.Provider value={{ priceLinkText }}>
+        <ApiDataContext.Provider value={{ priceLinkText, blockHeight }}>
             {children}
         </ApiDataContext.Provider>
     );
diff --git a/web/e.cash/components/navbar/index.js b/web/e.cash/components/navbar/index.js
--- a/web/e.cash/components/navbar/index.js
+++ b/web/e.cash/components/navbar/index.js
@@ -17,7 +17,7 @@
     const [windowHeight, setWindowHeight] = useState(0);
     const [navBackground, setNavBackground] = useState(false);
     const mobileBreakPoint = 920;
-    const { priceLinkText } = useApiData();
+    const { priceLinkText, blockHeight } = useApiData();
 
     const handleResize = () => {
         setWindowWidth(window.innerWidth);
@@ -50,8 +50,27 @@
         }
     }, [windowHeight]);
 
+    const blocksBeforeHalving = 840000 - blockHeight;
+
     return (
         <NavbarOuter navBackground={navBackground}>
+            {blocksBeforeHalving > 0 && (
+                <AnnouncementBar
+                    navBackground={navBackground}
+                    href="https://ecash.supply"
+                >
+                    <span>
+                        {blockHeight > 0 ? (
+                            <span>
+                                eCash halving in {blocksBeforeHalving} block
+                                {blocksBeforeHalving > 1 ? 's' : ''}!
+                            </span>
+                        ) : (
+                            <span>eCash halving is imminent!</span>
+                        )}
+                    </span>
+                </AnnouncementBar>
+            )}
             <AnnouncementBar navBackground={navBackground} href="/upgrade">
                 <span>
                     <span>Prepare for the eCash network upgrade!</span>
@@ -65,7 +84,7 @@
                 </EnvVarMessage>
             )}
             {!process.env.NEXT_PUBLIC_WEGLOT_API_KEY && (
-                <EnvVarMessage>
+                <EnvVarMessage style={{ top: '14px' }}>
                     Translations are disabled, set the env
                     NEXT_PUBLIC_WEGLOT_API_KEY to fix
                 </EnvVarMessage>