diff --git a/cms/src/components/wallet/BitcoinWallet.vue b/cms/src/components/wallet/BitcoinWallet.vue
new file mode 100644
index 0000000..c1a9dd5
--- /dev/null
+++ b/cms/src/components/wallet/BitcoinWallet.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Status
+ Refresh
+
+
+
+
+ {{ walletStatus.network }}
+ {{ walletStatus.rpcVersion }}
+
+ {{ walletStatus.blockHeight ?? 'Unavailable' }}
+
+
+ {{ walletStatus.serverHeight ?? 'Unavailable' }}
+
+
+
+ {{ resolveWalletSyncStatusLabel(walletStatus.syncStatus) }}
+
+
+ {{ walletStatus.balanceBtc }} BTC
+
+ {{ walletStatus.confirmedBalanceBtc }} BTC
+
+
+
+
+
+
+
+
diff --git a/cms/src/stores/bitcoinWallet.ts b/cms/src/stores/bitcoinWallet.ts
new file mode 100644
index 0000000..011c7f8
--- /dev/null
+++ b/cms/src/stores/bitcoinWallet.ts
@@ -0,0 +1,21 @@
+import { defineStore } from 'pinia';
+import { ref } from 'vue';
+import { api } from '@/plugins/axios';
+import type { BitcoinWalletStatus } from '@/types/bitcoinWallet/BitcoinWalletStatus';
+
+export const useBitcoinWalletStore = defineStore('bitcoinWallet', () => {
+ const status = ref(null);
+
+ const fetchStatus = async (): Promise => {
+ const { data } = await api.get('/bitcoin-wallet');
+
+ status.value = data;
+
+ return data;
+ };
+
+ return {
+ status,
+ fetchStatus
+ };
+});
diff --git a/cms/src/types/bitcoinWallet/BitcoinNetwork.ts b/cms/src/types/bitcoinWallet/BitcoinNetwork.ts
new file mode 100644
index 0000000..5005392
--- /dev/null
+++ b/cms/src/types/bitcoinWallet/BitcoinNetwork.ts
@@ -0,0 +1 @@
+export type BitcoinNetwork = 'mainnet' | 'testnet4';
diff --git a/cms/src/types/bitcoinWallet/BitcoinWalletStatus.ts b/cms/src/types/bitcoinWallet/BitcoinWalletStatus.ts
new file mode 100644
index 0000000..4728f48
--- /dev/null
+++ b/cms/src/types/bitcoinWallet/BitcoinWalletStatus.ts
@@ -0,0 +1,12 @@
+import type { BitcoinNetwork } from './BitcoinNetwork';
+import type { WalletSyncStatus } from '../wallet/WalletSyncStatus';
+
+export interface BitcoinWalletStatus {
+ network: BitcoinNetwork;
+ rpcVersion: string;
+ blockHeight: number | null;
+ serverHeight: number | null;
+ syncStatus: WalletSyncStatus;
+ balanceBtc: string;
+ confirmedBalanceBtc: string;
+}
diff --git a/cms/src/views/CmsWalletView.vue b/cms/src/views/CmsWalletView.vue
index d0655e4..f8bc083 100644
--- a/cms/src/views/CmsWalletView.vue
+++ b/cms/src/views/CmsWalletView.vue
@@ -2,6 +2,31 @@
Wallet
-
+
+
+
+
+
+
+
+