diff --git a/locale/cnr/translation.toml b/locale/cnr/translation.toml
index 5b394d2f4..e76ad7023 100644
--- a/locale/cnr/translation.toml
+++ b/locale/cnr/translation.toml
@@ -327,3 +327,4 @@ WALLET_UNLOCKED = "Novčanik je uspešno otključan!" # Wallet successfully Unlo
CONFIRM_LEDGER_TX = "" # Confirm this transaction matches the one on your {hardwareWallet}
CONFIRM_LEDGER_TX_OUT = "" # You will send {value} {ticker} to
{address}
MISSING_FUNDS = "" # Balance is too small! Missing {sats} sats!
+MISSING_SHIELD = "" # Shield is not enabled in this wallet!
diff --git a/locale/de/translation.toml b/locale/de/translation.toml
index b5a1277c1..72ece15bf 100644
--- a/locale/de/translation.toml
+++ b/locale/de/translation.toml
@@ -327,3 +327,4 @@ WALLET_UNLOCKED = "" # Wallet successfully Unlocked!
CONFIRM_LEDGER_TX = "" # Confirm this transaction matches the one on your {hardwareWallet}
CONFIRM_LEDGER_TX_OUT = "" # You will send {value} {ticker} to {address}
MISSING_FUNDS = "" # Balance is too small! Missing {sats} sats!
+MISSING_SHIELD = "" # Shield is not enabled in this wallet!
diff --git a/locale/en/translation.toml b/locale/en/translation.toml
index 889b3ed96..5d1bab74b 100644
--- a/locale/en/translation.toml
+++ b/locale/en/translation.toml
@@ -327,3 +327,4 @@ WALLET_UNLOCKED = "Wallet successfully Unlocked!" # Wallet successfully Unlocked
CONFIRM_LEDGER_TX = "Confirm this transaction matches the one on your {hardwareWallet}" # Confirm this transaction matches the one on your {hardwareWallet}
CONFIRM_LEDGER_TX_OUT = "You will send {value} {ticker} to {address}
" # You will send {value} {ticker} to {address}
MISSING_FUNDS = "Balance is too small! Missing {sats} sats!" # Balance is too small! Missing {sats} sats!
+MISSING_SHIELD = "Shield is not enabled in this wallet!" # Shield is not enabled in this wallet!
diff --git a/locale/es-mx/translation.toml b/locale/es-mx/translation.toml
index 7aa38bdc8..3fdf9fe66 100644
--- a/locale/es-mx/translation.toml
+++ b/locale/es-mx/translation.toml
@@ -327,3 +327,4 @@ WALLET_UNLOCKED = "" # Wallet successfully Unlocked!
CONFIRM_LEDGER_TX = "" # Confirm this transaction matches the one on your {hardwareWallet}
CONFIRM_LEDGER_TX_OUT = "" # You will send {value} {ticker} to {address}
MISSING_FUNDS = "" # Balance is too small! Missing {sats} sats!
+MISSING_SHIELD = "" # Shield is not enabled in this wallet!
diff --git a/locale/fr/translation.toml b/locale/fr/translation.toml
index 2d6021867..d12144505 100644
--- a/locale/fr/translation.toml
+++ b/locale/fr/translation.toml
@@ -327,3 +327,4 @@ WALLET_UNLOCKED = "" # Wallet successfully Unlocked!
CONFIRM_LEDGER_TX = "" # Confirm this transaction matches the one on your {hardwareWallet}
CONFIRM_LEDGER_TX_OUT = "" # You will send {value} {ticker} to {address}
MISSING_FUNDS = "" # Balance is too small! Missing {sats} sats!
+MISSING_SHIELD = "" # Shield is not enabled in this wallet!
diff --git a/locale/it/translation.toml b/locale/it/translation.toml
index d01239cff..4c89cc462 100644
--- a/locale/it/translation.toml
+++ b/locale/it/translation.toml
@@ -327,3 +327,4 @@ WALLET_UNLOCKED = "" # Wallet successfully Unlocked!
CONFIRM_LEDGER_TX = "" # Confirm this transaction matches the one on your {hardwareWallet}
CONFIRM_LEDGER_TX_OUT = "" # You will send {value} {ticker} to {address}
MISSING_FUNDS = "" # Balance is too small! Missing {sats} sats!
+MISSING_SHIELD = "" # Shield is not enabled in this wallet!
diff --git a/locale/nl/translation.toml b/locale/nl/translation.toml
index 8d86f626c..998a7afb2 100644
--- a/locale/nl/translation.toml
+++ b/locale/nl/translation.toml
@@ -327,3 +327,4 @@ WALLET_UNLOCKED = "" # Wallet successfully Unlocked!
CONFIRM_LEDGER_TX = "" # Confirm this transaction matches the one on your {hardwareWallet}
CONFIRM_LEDGER_TX_OUT = "" # You will send {value} {ticker} to {address}
MISSING_FUNDS = "" # Balance is too small! Missing {sats} sats!
+MISSING_SHIELD = "" # Shield is not enabled in this wallet!
diff --git a/locale/ph/translation.toml b/locale/ph/translation.toml
index b0e4f2b4d..00d278cfe 100644
--- a/locale/ph/translation.toml
+++ b/locale/ph/translation.toml
@@ -327,3 +327,4 @@ WALLET_UNLOCKED = "" # Wallet successfully Unlocked!
CONFIRM_LEDGER_TX = "" # Confirm this transaction matches the one on your {hardwareWallet}
CONFIRM_LEDGER_TX_OUT = "" # You will send {value} {ticker} to {address}
MISSING_FUNDS = "" # Balance is too small! Missing {sats} sats!
+MISSING_SHIELD = "" # Shield is not enabled in this wallet!
diff --git a/locale/pl/translation.toml b/locale/pl/translation.toml
index d3db0a9c8..aecb43a5a 100644
--- a/locale/pl/translation.toml
+++ b/locale/pl/translation.toml
@@ -327,3 +327,4 @@ WALLET_UNLOCKED = "Portfel pomyślnie odblokowany!" # Wallet successfully Unlock
CONFIRM_LEDGER_TX = "" # Confirm this transaction matches the one on your {hardwareWallet}
CONFIRM_LEDGER_TX_OUT = "" # You will send {value} {ticker} to {address}
MISSING_FUNDS = "" # Balance is too small! Missing {sats} sats!
+MISSING_SHIELD = "" # Shield is not enabled in this wallet!
diff --git a/locale/pt-br/translation.toml b/locale/pt-br/translation.toml
index 0add6fa1e..f828b4d06 100644
--- a/locale/pt-br/translation.toml
+++ b/locale/pt-br/translation.toml
@@ -126,3 +126,4 @@ WALLET_UNLOCKED = "" # Wallet successfully Unlocked!
CONFIRM_LEDGER_TX = "" # Confirm this transaction matches the one on your {hardwareWallet}
CONFIRM_LEDGER_TX_OUT = "" # You will send {value} {ticker} to {address}
MISSING_FUNDS = "" # Balance is too small! Missing {sats} sats!
+MISSING_SHIELD = "" # Shield is not enabled in this wallet!
diff --git a/locale/pt-pt/translation.toml b/locale/pt-pt/translation.toml
index b9b98eb9c..e72bd5210 100644
--- a/locale/pt-pt/translation.toml
+++ b/locale/pt-pt/translation.toml
@@ -126,3 +126,4 @@ WALLET_UNLOCKED = "" # Wallet successfully Unlocked!
CONFIRM_LEDGER_TX = "" # Confirm this transaction matches the one on your {hardwareWallet}
CONFIRM_LEDGER_TX_OUT = "" # You will send {value} {ticker} to {address}
MISSING_FUNDS = "" # Balance is too small! Missing {sats} sats!
+MISSING_SHIELD = "" # Shield is not enabled in this wallet!
diff --git a/locale/template/translation.toml b/locale/template/translation.toml
index 30c3f6abd..0a6b36fe6 100644
--- a/locale/template/translation.toml
+++ b/locale/template/translation.toml
@@ -350,4 +350,5 @@ CONFIRM_POPUP_DELETE_ACCOUNT = 'This will delete all your data, including master
CONFIRM_POPUP_DELETE_ACCOUNT_TITLE = 'Are you sure?'
CONFIRM_LEDGER_TX = 'Confirm this transaction matches the one on your {hardwareWallet}'
CONFIRM_LEDGER_TX_OUT = 'You will send {value} {ticker} to {address}
'
-MISSING_FUNDS = 'Balance is too small! Missing {sats} sats!'
\ No newline at end of file
+MISSING_FUNDS = 'Balance is too small! Missing {sats} sats!'
+MISSING_SHIELD = "Shield is not enabled in this wallet!"
\ No newline at end of file
diff --git a/locale/uwu/translation.toml b/locale/uwu/translation.toml
index c5e33e00f..5833a6e4a 100644
--- a/locale/uwu/translation.toml
+++ b/locale/uwu/translation.toml
@@ -327,3 +327,4 @@ WALLET_UNLOCKED = "" # Wallet successfully Unlocked!
CONFIRM_LEDGER_TX = "" # Confirm this transaction matches the one on your {hardwareWallet}
CONFIRM_LEDGER_TX_OUT = "" # You will send {value} {ticker} to {address}
MISSING_FUNDS = "" # Balance is too small! Missing {sats} sats!
+MISSING_SHIELD = "" # Shield is not enabled in this wallet!
diff --git a/scripts/dashboard/Dashboard.vue b/scripts/dashboard/Dashboard.vue
index 62d8dab16..44ab98cba 100644
--- a/scripts/dashboard/Dashboard.vue
+++ b/scripts/dashboard/Dashboard.vue
@@ -359,6 +359,13 @@ async function send(address, amount, useShieldInputs) {
// If a Contact were found, we use it's Pubkey
if (cContact) address = cContact.pubkey;
+ // Make sure wallet has shield enabled
+ if (!wallet.hasShield.value) {
+ if (useShieldInputs || isShieldAddress(address)) {
+ return createAlert('warning', ALERTS.MISSING_SHIELD);
+ }
+ }
+
// If this is an XPub, we'll fetch their last used 'index', and derive a new public key for enhanced privacy
if (isXPub(address)) {
const cNet = getNetwork();
diff --git a/scripts/wallet.js b/scripts/wallet.js
index a75f8b4b9..ad4b33586 100644
--- a/scripts/wallet.js
+++ b/scripts/wallet.js
@@ -1012,6 +1012,11 @@ export class Wallet {
if (transaction.version !== 3) {
throw new Error('`signShield` was called with a non-shield tx');
}
+ if (!this.hasShield()) {
+ throw new Error(
+ 'trying to create a shield transaction without having shield enable'
+ );
+ }
const periodicFunction = setInterval(async () => {
const percentage = 5 + (await this.#shield.getTxStatus()) * 95;