diff --git a/articles.md b/articles.md
index 9a9becd..46cc206 100644
--- a/articles.md
+++ b/articles.md
@@ -17,77 +17,81 @@ tags: [node, wallet, security, privacy, nokyc]
-
# Wallets
-| Name | Description | Published |
+| Name | Description | Published |
|----------------------------------|----------|-----------------------------------------------------------------|----------------------------------------|
-| [Blixt 101](/blixt) | Collaborative post with [Expatriotic](https://twitter.com/expatri0tic) on using Blixt wallet | 05 Jul 2023 |
-| [Stack Duo 101](/stack-duo) | Guest post by [Bitlevi](https://twitter.com/Bit_levi) on using Stack Duo mobile wallet | Updated 09 Aug 2023 |
-| [Passport 101](/passport) | Basic explainer on setting up and using Passport HWW | 07 Jul 2021 |
-| [Specter Desktop 101](/specter) | Basic explainer on setting up and using Specter desktop wallet | Updated 13 Apr 2021 |
-| [Sparrow Wallet 101](/sparrow) | Basic explainer on setting up and using Sparrow desktop wallet | Updated 21 May 2021 |
-| [Sentinel 101](/sentinel) | Basic explainer on setting up and using Sentinel 'watch only' wallet | 01 Sep 2020 |
-| [Blue Wallet 101](/blue) | Basic explainer on setting up and using Blue Wallet | 11 Jul 2020 |
-| [Zap 101](/zap) | Basic explainer on setting up and using Zap | 06 Jul 2020 |
-| [Coldcard 101](/coldcard) | Basic explainer on setting up and using a Coldcard | 03 Jul 2020 |
-| [Zeus 101](/zeus) | Basic explainer on setting up and using Zeus | 12 Jun 2020 |
-| [OpenDime 101](/opendime) | Basic explainer on setting up and using an an Opendime | 11 Jun 2020 |
-| [Samourai Wallet 101](/samourai) | Basic explainer of Samourai Wallet | 01 May 2020 |
+| [Blixt 101](/blixt) | Collaborative post with [Expatriotic](https://twitter.com/expatri0tic) on using Blixt wallet | 05 Jul 2023 |
+| [Stack Duo 101](/stack-duo) | Guest post by [Bitlevi](https://twitter.com/Bit_levi) on using Stack Duo mobile wallet | Updated 09 Aug 2023 |
+| [Passport 101](/passport) | Basic explainer on setting up and using Passport HWW | 07 Jul 2021 |
+| [Specter Desktop 101](/specter) | Basic explainer on setting up and using Specter desktop wallet | Updated 13 Apr 2021 |
+| [Sparrow Wallet 101](/sparrow) | Basic explainer on setting up and using Sparrow desktop wallet | Updated 21 May 2021 |
+| [Sentinel 101](/sentinel) | Basic explainer on setting up and using Sentinel 'watch only' wallet | 01 Sep 2020 |
+| [Blue Wallet 101](/blue) | Basic explainer on setting up and using Blue Wallet | 11 Jul 2020 |
+| [Zap 101](/zap) | Basic explainer on setting up and using Zap | 06 Jul 2020 |
+| [Coldcard 101](/coldcard) | Basic explainer on setting up and using a Coldcard | 03 Jul 2020 |
+| [Zeus 101](/zeus) | Basic explainer on setting up and using Zeus | 12 Jun 2020 |
+| [OpenDime 101](/opendime) | Basic explainer on setting up and using an an Opendime | 11 Jun 2020 |
+| [Samourai Wallet 101](/samourai) | Basic explainer of Samourai Wallet | 01 May 2020 |
+| [Ashigaru Mobile](/ashigaru-mobile) | Detailed guide on Ashigaru Mobile wallet and all postmix spending tools | 29 Nov 2025 |
+| [Passport Core Advanced](/passport-core-advanced) | How to seup Passport Core manually with Sparrow | 29 Nov 2025 |
+| [Passport Core](/passport-core) | How to setup Passport Core easily with Envoy | 29 Nov 2025 |
# Nodes
-| Name | Description | Published |
+| Name | Description | Published |
|----------------------------------|----------|-----------------------------------------------------------------|----------------------------------------|
-| [Migrating your Samourai Wallet to RoninDojo](/rdmigrate) | Connect or migrating Samourai Wallet to RoninDojo guide | 30 Jul 2020 |
-| [RoninDojo 101](/ronindojo) | Feature breakdown of RoninDojo | 07 Jun 2020 |
-| [Rescanning XPUBs using DMT](/dojo) | Guide to restore balances using Dojo Maintenance Tool | 24 May 2020 |
-| [myNode 101](/mynode) | Feature breakdown of myNode | 16 May 2020 |
+| [Migrating your Samourai Wallet to RoninDojo](/rdmigrate) | Connect or migrating Samourai Wallet to RoninDojo guide | 30 Jul 2020 |
+| [RoninDojo 101](/ronindojo) | Feature breakdown of RoninDojo | 07 Jun 2020 |
+| [Rescanning XPUBs using DMT](/dojo) | Guide to restore balances using Dojo Maintenance Tool | 24 May 2020 |
+| [myNode 101](/mynode) | Feature breakdown of myNode | 16 May 2020 |
+| [Vanilla Dojo](/vanilla-dojo) | Guide to verify and setup vanilla Dojo | 29 Nov 2025 |
# Security
-| Name | Description | Published |
+| Name | Description | Published |
|----------------------------------|----------|-----------------------------------------------------------------|----------------------------------------|
-| [Verifying Software 101](/verifysoftware) | Guide to help users verify the software they download | 10 Jan 2021 |
-| [10 ways to lose your bitcoin](/lostbitcoin) | Tips for newcomers to avoid losing their bitcoin | 12 Dec 2020 |
+| [Verifying Software 101](/verifysoftware) | Guide to help users verify the software they download | 10 Jan 2021 |
+| [10 ways to lose your bitcoin](/lostbitcoin) | Tips for newcomers to avoid losing their bitcoin | 12 Dec 2020 |
# Privacy
-| Name | Description | Published |
+| Name | Description | Published |
|----------------------------------|----------|------------------------------------------------------|----------------------------------------|
-| [GrapheneOS 101](/grapheneos) | The ultimate guide to phone privacy with GrapheneOS | 10 Aug 2023 |
-| [CalyxOS 101](/calyxos) | CalyxOS installation guide | 11 Mar 2021 |
-| [PayNyms 101](/paynym) | Explainer on BIP47 PayNyms | 02 Mar 2021 |
-| [Whirlpool + Postmix FAQ](/whirlpool) | Whirlpool explainer and FAQ | 08 Aug 2020 |
-| [Bitcoin Privacy Tips](/privacytips) | Privacy tips for interacting with Bitcoin | 26 Jun 2020 |
-| [Your First Mobile Coinjoin](/mobilecoinjoin) | Learn to use Whirlpool on mobile | 20 Jun 2020 |
-| [Deal With Coinjoin Change Outputs](/doxxic) | Dealing with toxic change | 15 Jun 2020 |
-| [Coinjoin to Cold Implications](/csimplications) | Considerations when spending to cold storage | 03 May 2020 |
+| [GrapheneOS 101](/grapheneos) | The ultimate guide to phone privacy with GrapheneOS | 10 Aug 2023 |
+| [CalyxOS 101](/calyxos) | CalyxOS installation guide | 11 Mar 2021 |
+| [PayNyms 101](/paynym) | Explainer on BIP47 PayNyms | 02 Mar 2021 |
+| [Whirlpool + Postmix FAQ](/whirlpool) | Whirlpool explainer and FAQ | 08 Aug 2020 |
+| [Bitcoin Privacy Tips](/privacytips) | Privacy tips for interacting with Bitcoin | 26 Jun 2020 |
+| [Your First Mobile Coinjoin](/mobilecoinjoin) | Learn to use Whirlpool on mobile | 20 Jun 2020 |
+| [Deal With Coinjoin Change Outputs](/doxxic) | Dealing with toxic change | 15 Jun 2020 |
+| [Coinjoin to Cold Implications](/csimplications) | Considerations when spending to cold storage | 03 May 2020 |
+| [Ashigaru Whirlpool](/ashigaru-terminal-whirlpool) | How to whirlpool with Ashigaru Terminal | 29 Nov 2025 |
-# no-KYC
+# no-KYC
-| Name | Description | Published |
+| Name | Description | Published |
|----------------------------------|----------|-----------------------------------------------------------------|----------------------------------------|
-| [Azteco Bitcoin Vouchers](/azteco) | Guest post by [Bitlevi](https://twitter.com/Bit_levi) on using Azteco Vouchers | 31 Jul 2023 |
-| [AgoraDesk P2P Exchange](/agora) | Guest post by [Bitlevi](https://twitter.com/Bit_levi) on using AgoraDesk | 10 Jul 2023 |
-| [Peach Bitcoin Mobile P2P Exchange](/peach) | Guest post by [Bitlevi](https://twitter.com/Bit_levi) on using Peach Bitcoin | Updated 09 Aug 2023 |
-| [RoboSats Lightning P2P Exchange](/robosats) | Guide for purchasing P2P sats via Lightning using RoboSats | 22 May 2023 |
-| [Creating A Buy Offer On Hodl Hodl](/hodlhodloffer) | Guide for creating a buy offer using Hodl Hodl | 11 Sep 2020 |
-| [10 Steps To Your First no-KYC Bitcoin (Hodl Hodl)](/hodlhodl) | Guide for purchasing bitcoin on Hodl Hodl | 04 Aug 2020 |
-| [10 Steps To Your First no-KYC Bitcoin](/bisq) | Guide for purchasing bitcoin on Bisq | 08 Jun 2020 |
+| [Azteco Bitcoin Vouchers](/azteco) | Guest post by [Bitlevi](https://twitter.com/Bit_levi) on using Azteco Vouchers | 31 Jul 2023 |
+| [AgoraDesk P2P Exchange](/agora) | Guest post by [Bitlevi](https://twitter.com/Bit_levi) on using AgoraDesk | 10 Jul 2023 |
+| [Peach Bitcoin Mobile P2P Exchange](/peach) | Guest post by [Bitlevi](https://twitter.com/Bit_levi) on using Peach Bitcoin | Updated 09 Aug 2023 |
+| [RoboSats Lightning P2P Exchange](/robosats) | Guide for purchasing P2P sats via Lightning using RoboSats | 22 May 2023 |
+| [Creating A Buy Offer On Hodl Hodl](/hodlhodloffer) | Guide for creating a buy offer using Hodl Hodl | 11 Sep 2020 |
+| [10 Steps To Your First no-KYC Bitcoin (Hodl Hodl)](/hodlhodl) | Guide for purchasing bitcoin on Hodl Hodl | 04 Aug 2020 |
+| [10 Steps To Your First no-KYC Bitcoin](/bisq) | Guide for purchasing bitcoin on Bisq | 08 Jun 2020 |
-# Misc
+# Misc
-| Name | Description | Published |
+| Name | Description | Published |
|----------------------------------|----------|-----------------------------------------------------------------|----------------------------------------|
-| [How To Fork an Open Source Project](/fork) | Guest post by [Bitlevi](https://twitter.com/Bit_levi) on contributing to FOSS projects | 23 May 2023 |
\ No newline at end of file
+| [How To Fork an Open Source Project](/fork) | Guest post by [Bitlevi](https://twitter.com/Bit_levi) on contributing to FOSS projects | 23 May 2023 |
\ No newline at end of file
diff --git a/ashigaru-mobile.md b/ashigaru-mobile.md
new file mode 100644
index 0000000..03ae6fb
--- /dev/null
+++ b/ashigaru-mobile.md
@@ -0,0 +1,874 @@
+---
+layout: page
+title: Ashigaru Mobile
+subtitle: How to Setup and Use Ashigaru Mobile and its spending tools to Privately Secure and Manage your Bitcoin
+---
+
+
+ Prerequisites |
+ Install & Verify |
+ Initialize & Wallet |
+ Settings |
+ Receive |
+ Send |
+ Recovery |
+ Update |
+ Donate |
+ Spending Tools |
+ Stonewall |
+ Stonewall x2 |
+ Payjoin |
+ Stowaway |
+ Ricochet
+
+ Original Author
+
+
+
+
+
+
+
+Ashigaru is a mobile Bitcoin wallet that continues the work of the Samourai Wallet project in a new form. The software emerged in a specific context: in April 2024, Samourai Wallet’s founders were arrested by U.S. authorities and their servers were seized. Although the Samourai app itself remained usable, it is currently no longer maintained. Ashigaru is a free and open fork of Samourai Wallet, maintained by an anonymous team, to preserve Samourai’s features and its original philosophy: defending the privacy and sovereignty of Bitcoin users.
+
+Ashigaru keeps the core DNA of Samourai: a similar interface, a self‑custodial approach, open‑source code, and a strong focus on privacy. The code is licensed under GNU GPLv3, which guarantees anyone can audit, modify, or redistribute the software.
+
+Ashigaru integrates a suite of advanced tools for privacy and UTXO management:
+- Whirlpool, a coinjoin protocol based on Zerolink, to break deterministic links between transaction inputs and outputs without surrendering custody.
+- PayNym, which implements reusable payment codes (BIP47), now represented via “Pepehash” avatars.
+- Ricochet, which adds intermediate hops to transactions to complicate tracing.
+- Coin Control to precisely select, freeze, and label your UTXOs.
+- Batch Spending to reduce fees by grouping multiple payments into one transaction.
+- Stealth Mode, which hides the app behind a decoy launcher to pass unnoticed during a physical phone inspection.
+- Advanced spending tools to optimize privacy (payjoin, stonewall etc).
+- An optimized recovery flow using a BIP39 passphrase.
+- Automatic fee selection to optimize miner fees.
+
+
+
+Ashigaru is designed for users who are mindful of transaction traceability on Bitcoin. Whether you care about preserving privacy, you’re an experienced bitcoiner focused on self‑custody, or you face heightened surveillance risks, this wallet gives you the tools to take back control of your on‑chain activity.
+
+Ashigaru is available as a mobile app, which we’ll explore in this tutorial. It has a companion desktop application called [Ashigaru Terminal](https://bitcoiner.guide/ashigaru-terminal-whirlpool), which can be used to initiate whirlpool coinjoins.
+
+
+
+In this tutorial, we’ll cover Ashigaru’s basic use: installation, connecting to Dojo, backups, receiving, sending bitcoin and using all the avaliable postmix spending tools.
+
+## 1. Prerequisites for Ashigaru
+
+Ashigaru requires a few prerequisites to work correctly. First, it is not available from mainstream app stores like Google Play or the App Store. It must be sideloaded on your phone from its .apk file, downloaded via Tor. Therefore, if you use an iPhone, this method will not work: you will need an Android device.
+
+To download the .apk via Tor, you’ll need a browser that can access .onion sites. The easiest way is to install Tor Browser on your phone, available on the [Google Play Store](https://play.google.com/store/apps/details?id=org.torproject.torbrowser) or directly [via its .apk](https://www.torproject.org/download/#android).
+
+
+
+Most modern smartphones block app installs from unknown sources by default. You will need to temporarily enable this option for Tor Browser in your device settings to allow the install. Once Ashigaru is installed, disable this option again to keep your phone secure.
+
+> Only enable “Install unknown apps” temporarily, and restrict it to Tor Browser for the install — then disable it again.
+{: .prompt-warning }
+
+Another critical prerequisite for using Ashigaru is running a Dojo Bitcoin node. For security and sovereignty, the Ashigaru team does not maintain centralized servers to connect your app. You must run your own Dojo instance or connect to one operated by someone you trust.
+
+Dojo lets your Ashigaru app query blockchain data, view the balance of your addresses, and broadcast transactions to the Bitcoin network.
+
+To learn more about Dojo and how to install it, check out the [Vanilla Samourai Dojo Guide](https://bitcoiner.guide/vanilla-dojo/) or download and run dojo on your [start9 directly](https://marketplace.start9.com/) by switching to the community registry.
+
+If you truly cannot run your own Dojo, you can find people willing to share their instance on [dojobay.pw](https://www.dojobay.pw/mainnet/). This can be a temporary solution, but for the long term, it is strongly recommended to run your own Dojo to ensure sovereignty and privacy.
+
+> Relying on a third‑party Dojo introduces trust and privacy trade‑offs. Treat it as a temporary measure and migrate to your own Dojo as soon as feasible.
+{: .prompt-warning }
+
+## 2. Verify and install the Ashigaru app
+
+### 2.1. Download Ashigaru
+
+On your phone, open Tor Browser and go to [Ashigaru’s official website](https://ashigaru.rs/download/), under the “Download” section. Tap “Download for Android” to get the .apk installer.
+
+
+
+Before installing, we will verify the app’s authenticity and integrity. This is especially important when installing from a .apk.
+
+### 2.2. Verify the Ashigaru app
+
+Back on [Ashigaru’s official website](https://ashigaru.rs/download/) in the “Download” section, copy the message shown under “SHA-256 Hash of the APK file.” Copy the entire block, from “BEGIN PGP SIGNED MESSAGE” to “END PGP SIGNATURE.”
+
+
+
+Still on your phone, open a new tab in Tor Browser and visit the [Keybase verify tool](https://keybase.io/verify). Paste the message you just copied and tap “Verify.”
+
+
+
+If the signature is valid, Keybase will confirm the file was signed by Ashigaru’s developers. You can also tap the “ashigarudev” profile shown by Keybase and verify that the key fingerprint matches exactly: A138 06B1 FA2A 676B.
+
+If an error appears at this step, the signature is invalid. In that case, do not install the APK. Restart the process from the beginning or ask the community for help before proceeding.
+
+
+
+Keybase provided the app’s hash. Next, we’ll verify that the hash of the .apk you downloaded matches the verified value from Keybase. Go to [HASH FILE ONLINE](https://hash-file.online/).
+
+
+
+Tap “BROWSE...” and select the .apk file you downloaded in step 2.1.
+Choose the SHA-256 hashing function, then tap “CALCULATE HASH” to compute your file’s hash.
+
+
+
+The site will display your .apk file’s hash. Compare it to the value you verified on Keybase.io. If both hashes match exactly, the authenticity and integrity checks are successful. You can now proceed with the installation.
+
+
+
+> Never install the .apk if the signature check or the hash comparison fails — investigate first.
+{: .prompt-danger }
+
+### 2.3. Install the Ashigaru app
+
+To install, open your phone’s file manager and go to the downloads folder. Tap the .apk file we just verified, then confirm the installation when prompted.
+
+Ashigaru is now installed on your phone.
+
+## 3. Initialize the app and create a Bitcoin wallet
+
+On first launch, select “MAINNET.”
+
+
+
+Tap “Get Started.”
+
+
+
+We’ll now create a new Bitcoin wallet. Tap “Create a new wallet.”
+
+
+
+### 3.1. Create a Bitcoin wallet
+
+Ashigaru requires a BIP39 passphrase. Choose your passphrase and enter it in the fields. It should be as long and random as possible to resist brute‑force attacks.
+
+Immediately make a physical backup of this passphrase. This step is crucial: if you lose your phone and you no longer have this passphrase, you will not be able to access the bitcoin secured by your Ashigaru wallet. This same passphrase is also used to encrypt the wallet recovery file.
+
+If you don’t fully understand what a passphrase is or how it works, WATCH [THIS](https://www.youtube.com/watch?v=l1ISySyy72Y) passphrase overview from BTCSESSIONS. It’s critical: misunderstanding passphrase usage can cause irreversible loss of funds.
+
+Once entered, tap “NEXT.”
+
+
+
+Next, choose a PIN code. This code unlocks your Ashigaru wallet and protects it against unauthorized physical access. It is not part of key derivation for your wallet. This means that even without the PIN, anyone who has your mnemonic and passphrase can regain access to your bitcoin.
+
+Choose a long, random PIN. Keep a backup in a location separate from your phone so they are not compromised together.
+
+
+
+After setting the PIN, Ashigaru displays your wallet’s mnemonic phrase. Warning: this phrase, combined with your passphrase, gives full access to your bitcoin. Anyone with it can steal your funds, even without your phone. This 12‑word list restores your wallet if your phone is lost, stolen, or broken. Back it up carefully on physical media (paper or metal).
+
+Never store this phrase digitally — doing so exposes your funds to theft. Depending on your security model, you can make multiple physical copies, but never split the phrase. Keep the words in order and number them.
+
+Finally, never store the mnemonic phrase and the passphrase in the same place. If both are compromised at once, an attacker can access your wallet.
+
+
+
+Ashigaru will then ask you to confirm your passphrase again. Use this step to double‑check your physical backup is accurate.
+
+
+
+> Your mnemonic + passphrase = full wallet access. Treat both with extreme caution — they must be kept private, offline, and never digitized.
+{: .prompt-danger }
+
+### 3.2. Connect a Dojo
+
+Next, connect to your Dojo. As explained earlier, Ashigaru requires a Dojo to interact with the Bitcoin network.
+
+Log in to your Dojo’s Maintenance Tool and open the “PAIRING” menu.
+
+
+
+In Ashigaru, tap “Scan QR,” then scan the pairing QR displayed by your DMT. Tap “Continue” to confirm.
+
+
+
+Enter your PIN to unlock the wallet. You’ll see the synchronization screen. It’s normal to see PayNym‑related errors at this stage because the wallet is new. Just tap “Continue.”
+
+
+
+You’ll then arrive at your wallet’s home screen.
+
+
+
+## 4. Configure the Ashigaru app
+
+To access app settings, tap your PayNym image at the top left, then select “Settings.”
+
+
+
+You’ll find several options to tailor Ashigaru to your needs. Two settings are especially important to enable early on.
+
+First, open “Security > Stealth mode,” then enable it if you need it. Stealth Mode hides Ashigaru behind a normal‑looking app on your phone. The goal is to prevent anyone from identifying Ashigaru during a physical inspection of your phone.
+
+
+
+Each decoy app has a specific method to unlock Ashigaru’s real interface. For example, if you choose the calculator, the Ashigaru icon disappears from your home screen and is replaced by a fake calculator. When opened, it works like a regular calculator, but to access Ashigaru, tap the “=” symbol five times quickly.
+
+The second key setting is RBF (Replace‑by‑Fee). This lets you bump transaction fees if a transaction is stuck in mempools due to low fees. Enable it in “Transactions > Spend using RBF.”
+
+
+
+Tip: You can toggle the wallet display unit between BTC and sats by tapping the total balance on the home screen.
+
+## 5. Receive bitcoin in Ashigaru
+
+Once your wallet is ready, you can receive sats. Tap the “+” button in the bottom‑right corner, then tap the green “Receive” button.
+
+
+
+Ashigaru shows you the first unused receiving address to avoid address reuse (which is very harmful to privacy). Share this address with the individual or service sending you bitcoin.
+
+
+
+Once the transaction is broadcast, it will automatically appear on the app’s home screen.
+
+
+
+## 6. Send bitcoin with Ashigaru
+
+Once you have funds in Ashigaru, you can send them. Tap the “+” button at the bottom right, then select the red “Send” button.
+
+
+
+Choose the account to spend from. For now, we haven’t covered the “Postmix” account (used for coinjoins and covered in another [tutorial](https://bitcoiner.guide/ashigaru-terminal-whirlpool)). We’ll send from the main deposit account.
+
+
+
+Enter the transaction details: amount to send and the recipient’s Bitcoin address.
+
+
+
+By tapping the three dots in the top‑right, then “Show unspent outputs,” you can precisely select which UTXOs to spend to improve your privacy.
+
+
+
+When everything is set, tap the white arrow at the bottom to continue.
+
+You’ll see a summary page with all transaction details:
+- Destination: double‑check the recipient address and amount.
+- Fees: review the fee rate automatically selected by Ashigaru; adjust via “MANAGE” if needed.
+- Transaction: shows the transaction type (simple here); Ashigaru also supports other privacy‑optimized spending types (covered in another tutorial).
+- Transaction Alert (red): flags patterns recognized by chain‑analysis heuristics that may degrade privacy. Tap to see details. For example, if your amount is a round number (e.g., “3000 sats”), it may reveal which output is the spend and which is the change.
+- Label: you can add a label to remember the transaction’s purpose.
+
+Once everything is correct, use the green arrow to send. Press and hold the arrow, then slide it to the right to confirm.
+
+
+
+Your transaction is now broadcast on the Bitcoin network.
+
+
+
+## 7. Recover your Ashigaru wallet
+
+Ashigaru wallet recovery differs slightly from a standard Bitcoin wallet, as it inherits Samourai Wallet’s methods. If you lose access to your wallet (PIN forgotten, app uninstalled, or phone lost), you have several options to recover your funds.
+
+If you still have access to your phone or you backed up the file, the simplest method is using the backup file “ashigaru.txt.” This file contains everything needed to restore your wallet on a new Ashigaru instance (or in Sparrow Wallet), but it is encrypted with the passphrase you set in step 3.1. You must have both the “ashigaru.txt” file and your passphrase to use this method.
+
+With these two items, you can, for example, restore your wallet in Sparrow Wallet.
+
+
+
+If you don’t have the “ashigaru.txt” file, you can still access your funds using your mnemonic phrase and passphrase, like any other BIP39 wallet. It’s recommended to recover either in a new Ashigaru instance or directly in Sparrow Wallet, which simplifies retrieving Whirlpool derivation paths (if you used it). Otherwise, you can import into any BIP39‑compatible software by entering derivation paths manually.
+
+As you’ve seen, regardless of the recovery method, the passphrase is indispensable. Make sure it is securely backed up. You can keep multiple copies depending on your security model.
+
+> The passphrase is critical for recovery. Without it, even a correct mnemonic won’t unlock your wallet.
+{: .prompt-danger }
+
+## 8. Update the app
+
+To update Ashigaru (since it was installed via .apk rather than the Play Store), you’ll need to download the new .apk for the updated version and install it manually.
+
+Repeat the steps from section 2 of this tutorial. The only difference is that when you tap the .apk to start installation, your Android phone should offer “Update” and not “Install.”
+
+
+
+This is very important: if Android shows “Install” instead of “Update,” you’re likely installing a fraudulent version. Stop immediately.
+
+As with the initial install, carefully verify the .apk’s authenticity and integrity before proceeding.
+
+To know when a new version is available, check the official Ashigaru site occasionally. Ashigaru is a stable, mature app inherited from Samourai Wallet, so updates are relatively less frequent than in newer projects.
+
+> Always verify signatures and hashes for each new .apk prior to updating.
+{: .prompt-warning }
+
+## 9. Donate to the Ashigaru project
+
+Ashigaru is open source. To support development, you can donate directly from the app via PayNym.
+
+Tap your PayNym at the top‑right of the interface, then select your payment code starting with “PM…”.
+
+
+
+Tap the “+” button at the bottom‑right.
+
+
+
+Choose “Ashigaru Open Source Project” as the recipient.
+
+
+
+Tap “CONNECT” to establish the BIP47 (PayNym) communication channel.
+
+
+
+Once the notification transaction confirms, you can send donations to the project by tapping the small white arrow at the top‑right of the interface.
+
+
+
+You now know how to use Ashigaru’s core features. In [this guide](https://bitcoiner.guide/ashigaru-terminal-whirlpool), we explore advanced spending types and Whirlpool — the coinjoin implementation inherited from Samourai Wallet.
+
+## Spending tools overview
+
+Below, we transition from basic sends (covered in Section 6) to Ashigaru’s privacy‑enhancing spending tools. To minimize repetition:
+
+When steps begin with “Start a send,” use the standard flow described earlier (tap “+” → “Send,” choose account, enter details).
+
+Use Coin Control (Section 6) to select UTXOs that best fit each tool’s privacy goals.
+
+## Stonewall
+
+> Break the assumptions of blockchain analysis with mathematically provable doubt between the sender and the recipient of your transactions.
+
+### What is a Stonewall transaction?
+
+Stonewall is a specific form of Bitcoin transaction that boosts user privacy by imitating a two‑party coinjoin — without actually being one. The transaction is not collaborative. A single user can construct it alone, using only their own UTXOs as inputs. You can create a Stonewall transaction anytime, without needing to coordinate with another user.
+
+Mechanics:
+- Inputs: the sender uses 2 of their own UTXOs
+- Outputs: the transaction produces 4 outputs, including 2 outputs that are exactly the same amount; the other 2 are change
+- Among the 2 equal‑amount outputs, only one goes to the actual payment recipient
+
+There are only two roles in a Stonewall transaction:
+- The sender, who makes the actual payment
+- The recipient, who can ignore the specific nature of the transaction and simply expects a payment
+
+Let’s use a simple example. Alice buys a loaf of bread for 4,000 sats and wants to pay in bitcoin while keeping her payment private. She decides to build a Stonewall transaction.
+
+
+
+Analyzing this transaction, the baker receives 4,000 sats for the bread. Alice used two inputs: 10,000 sats and 15,000 sats. The outputs on Alice’s side are 4,000 sats, 6,000 sats, and 11,000 sats. Alice’s net balance change is −4,000 sats, which matches the price.
+
+> For clarity, the example omits mining fees. In reality, the sender pays all transaction fees.
+{: .prompt-info }
+
+### What’s the difference between Stonewall and Stonewall x2?
+
+Stonewall and Stonewall x2 share the same external pattern. The difference is collaboration:
+- Stonewall is non‑collaborative — the sender creates it alone
+- Stonewall x2 is collaborative — a second participant (“the collaborator”) contributes an input and receives their entire contribution back in the outputs (minus fees)
+
+Continuing the bakery example: if Alice wanted Stonewall x2, she would collaborate with Bob. Each would contribute one input. Bob would receive back all his input on the outputs. The baker would receive the 4,000 sats payment as before, and Alice would end up with her initial balance minus the bread cost.
+
+
+
+From the outside, the transaction pattern appears identical.
+
+
+
+In short: Stonewall and Stonewall x2 share the same structure. Stonewall is built alone; Stonewall x2 involves cooperation between two users.
+
+> Observers cannot distinguish Stonewall from Stonewall x2 with on‑chain data alone. This ambiguity is the point — more doubt, more privacy.
+{: .prompt-info }
+
+### Why use a Stonewall transaction?
+
+The Stonewall structure adds meaningful entropy and confuses common chain‑analysis heuristics. From the outside, it can look like a small two‑party coinjoin. But in reality (like Stonewall x2), it’s just a payment. This duality introduces uncertainty and can lead watchers down false trails.
+
+Returning to Alice’s bakery purchase, the blockchain view might look like this:
+
+
+
+A typical heuristic‑driven conclusion could be: “Two people performed a small coinjoin, each with one input and two outputs.”
+
+
+
+But you know the truth: one output went to the baker, both inputs belong to Alice, and she received three outputs of change.
+
+
+
+Even if an observer recognizes the Stonewall pattern, they still cannot know:
+- Which of the two equal‑amount outputs is the payment
+- Whether the two inputs belong to two different people or to one person combining them
+
+The second point exists because Stonewall x2 (collaborative) and Stonewall (non‑collaborative) share the same pattern. Without additional context, differentiating them is impossible, which adds yet more doubt to the spend.
+
+
+
+> Stonewall introduces uncertainty about input ownership and payment destination. This uncertainty is privacy.
+{: .prompt-tip }
+
+### How to do a Stonewall transaction in Ashigaru
+
+Stonewall was originally developed by the Samourai Wallet team and is now implemented in Ashigaru, the fork created after the Samourai developers’ arrest. Install Ashigaru and create a wallet as demonstrated above.
+
+Unlike Stowaway or Stonewall x2 (“cahoots”), Stonewall does not require PayNyms. It can be executed directly, without preparation or collaboration.
+
+In practice, Ashigaru generates Stonewall automatically for each spend when your wallet has sufficient UTXOs.
+
+- Start a send using the standard flow (Section 6).
+
+
+
+- Choose the account to spend from.
+
+
+
+- Enter recipient address and amount, then confirm.
+
+
+
+- Adjust fees if needed; note the transaction type is “STONEWALL.” Tap “PREVIEW” for more details.
+
+
+
+You’ll see the Stonewall pattern: 2 inputs of equal amount, 2 outputs of equal amount, plus change outputs, and (in this example) an additional input to reach the payment sum.
+
+
+
+If you prefer a simple payment, tap the pencil icon (top‑right), then switch “STONEWALL” to “Simple.”
+
+
+
+After checking all details, slide the green arrow at the bottom to sign and broadcast.
+
+
+
+You now know how to make a Stonewall transaction and, more importantly, how it works. To further your privacy, read the [Ashigaru Terminal guide](https://bitcoiner.guide/ashigaru-terminal-whirlpool) explaining coinjoins via Whirlpool.
+
+## Stonewall x2
+
+> Make every spend a coinjoin.
+
+### What is a Stonewall x2 transaction?
+
+Stonewall x2 is a specific form of Bitcoin transaction that increases user privacy by collaborating with a third party who is not involved in the actual payment. This method simulates a mini‑coinjoin between two participants while making a payment to a third party. Stonewall x2 transactions are available in the Ashigaru Mobile app, a fork of Samourai Wallet (the team that originally created this transaction type).
+
+Mechanics:
+- You use one of your own UTXOs to fund the payment.
+- A collaborator contributes one of their own UTXOs.
+- The transaction has four outputs:
+ - Two equal‑amount outputs: one goes to the payment recipient; the other returns to the collaborator.
+ - A third output returns the rest of the collaborator’s input (so their net is neutral, minus mining fees).
+ - A fourth output is your change.
+
+Roles in Stonewall x2:
+- The sender (payer), who makes the actual payment
+- The collaborator, who contributes bitcoin to improve the transaction’s anonymity set and receives all their funds back (net‑neutral, minus mining fees)
+- The recipient, who can ignore the transaction’s structure and simply receives a payment
+
+Example: Alice buys a loaf for 4,000 sats and wants privacy. She collaborates with her friend Bob.
+
+
+
+Analyzing the transaction:
+- The baker receives 4,000 sats
+- Alice inputs 10,000 sats and receives 6,000 sats as change (net −4,000 sats)
+- Bob inputs 15,000 sats and receives two outputs: 4,000 sats and 11,000 sats (net 0)
+
+> For clarity, mining fees are omitted in the example. In practice, transaction fees are split equally between the sender and the collaborator.
+{: .prompt-info }
+
+### What’s the difference between Stonewall and Stonewall x2?
+
+A Stonewall x2 works exactly like a Stonewall in pattern, except that x2 is collaborative while Stonewall is not. Stonewall x2 involves a third party (outside the payment) who contributes bitcoin to boost privacy. In a regular Stonewall, the “collaborator’s role” is played by the sender alone.
+
+Continuing the bakery example: if Alice didn’t find a collaborator like Bob, she could do a Stonewall by herself — both inputs would be hers, and she would receive three change outputs.
+
+
+
+From the outside, the pattern would look the same:
+
+
+
+Practical logic for Ashigaru spending tools:
+- If the merchant does not support Payjoin/Stowaway, you can perform a collaborative spend (Stonewall x2) with an external participant.
+- If you don’t find a collaborator, you can do a solo Stonewall that mimics the Stonewall x2 pattern.
+
+> Both transactions share the same structure on‑chain. The difference (collaborative vs non‑collaborative) is invisible to observers, which increases doubt — and privacy.
+{: .prompt-tip }
+
+### Why use a Stonewall x2 transaction?
+
+Stonewall x2 adds significant entropy to the transaction and confuses chain‑analysis heuristics. From the outside, it can be misinterpreted as a small two‑party coinjoin. In reality, it’s a payment with a collaborator who remains net‑neutral.
+
+Returning to Alice, Bob, and the Baker, the blockchain view might look like:
+
+
+
+A typical heuristic‑driven conclusion could be:
+
+“**Alice and Bob did a small coinjoin, one input each, two outputs each.**”
+
+
+
+But the actual situation is different: one output is the baker’s payment, Alice has one change output, and Bob has two outputs returning his contribution.
+
+
+
+Even if the observer identifies the Stonewall x2 pattern, they cannot know:
+- Which of the two equal‑amount outputs is the payment
+- Whether Alice or Bob made the payment
+- Whether the two inputs came from two different people or one person combining UTXOs
+
+Because Stonewall (solo) and Stonewall x2 (collaborative) share the same pattern, distinguishing them without extra context is impossible, adding more doubt to the spend.
+
+
+
+> The ambiguity about who paid and who contributed which inputs/outputs is the privacy benefit.
+{: .prompt-info }
+
+### Collaboration prerequisites (PayNyms & Soroban)
+
+Like other collaborative Ashigaru transactions (Cahoots), Stonewall x2 requires exchanging partially signed transactions (PSBTs) between sender and collaborator. This can be done:
+- Manually, when you’re physically together (QR exchange)
+- Automatically, via the Soroban communication protocol
+
+For Soroban (online) collaboration:
+- Establish a PayNym connection first: your PayNym must “follow” your collaborator’s PayNym, and vice versa.
+- Soroban uses BIP47 channels between PayNyms to exchange PSBTs securely.
+
+> Verify you’re following each other before initiating; keep both devices online during the exchange.
+{: .prompt-tip }
+
+### How to do a Stonewall x2 in Ashigaru
+
+- Open “Collaborate” (top‑left PayNym), then coordinate roles:
+ - “Initiate” if you are the payer
+ - “Participate” if you are the collaborator
+
+
+
+
+- If you’re the collaborator (Soroban):
+ - Tap “Participate”
+ - Choose the account
+ - Tap “LISTEN FOR CAHOOTS REQUESTS”
+
+
+
+- For in‑person collaboration:
+ - On wallet home, tap the QR icon
+ - Scan the payer’s QR
+
+
+
+- If you’re the payer:
+ - “Collaborate” → “Initiate”
+ - Choose “STONEWALL X2”
+ - Pick collaboration mode: “Online” (Soroban) or “In Person / Manual”
+
+
+
+
+
+#### Online Cahoots (Soroban)
+
+- Select a collaborator from the PayNyms you follow
+- Tap “Set up transaction,” choose account
+- Enter recipient address, amount, fee rate
+- Tap “Review transaction setup,” then “BEGIN TRANSACTION”
+- Keep apps open; sign and broadcast when complete
+
+
+
+
+
+
+
+> Keep the app open and online during the Soroban flow; interruptions will pause the PSBT exchange.
+{: .prompt-info }
+
+#### In‑person exchange (QR)
+
+- Select “STONEWALL X2” → “In Person / Manual”
+- “Set up transaction” → choose account
+- Enter recipient address, amount, fee rate
+- “Review transaction setup” → “BEGIN TRANSACTION”
+- Alternate scans until all five steps complete
+- Verify and broadcast
+
+
+
+
+
+
+
+
+[The transaction has been broadcast](https://mempool.space/testnet4/tx/9082f3d989728aacd290535a1ac374ab8c04a241a1d798b378db626dabea7a24). Its structure looks like this:
+
+
+
+Credit: [mempool.space](https://mempool.space/)
+
+Observations:
+- Two inputs are mine: 91,869 sats and 64,823 sats
+- Two inputs are from the collaborator’s wallet
+- Outputs:
+ - 100,000 sats goes to the real recipient
+ - 100,000 sats and 159,578 sats return to the collaborator (net‑neutral, minus mining fees)
+ - 56,270 sats is my change
+
+I can describe this structure since I built the transaction; but for an external observer, it’s generally impossible to determine which UTXOs belong to which participant — either on inputs or outputs.
+
+> Stonewall x2 blurs input ownership and destination heuristics. Observers cannot reliably ascribe roles, adding doubt and protecting privacy.
+{: .prompt-tip }
+
+## Payjoin
+
+> Force blockchain spies to rethink everything they think they know.
+
+### Understanding Payjoin transactions on Bitcoin
+
+Payjoin is a specific structure of Bitcoin transaction that enhances user privacy during a payment by collaborating with the payment recipient.
+
+In 2015, [LaurentMT](https://twitter.com/LaurentMT) first described this method as “steganographic transactions” in a document available [here](https://gist.githubusercontent.com/LaurentMT/e758767ca4038ac40aaf/raw/c8125f6a3c3d0e90246dc96d3b603690ab6f1dcc/gistfile1.txt). Samourai Wallet adopted and implemented it as “Stowaway” in 2018. Payjoin concepts are also discussed in [BIP79](https://github.com/bitcoin/bips/blob/master/bip-0079.mediawiki) and [BIP78](https://github.com/bitcoin/bips/blob/master/bip-0078.mediawiki). Common terms you may see:
+
+- Payjoin
+- Stowaway
+- P2EP (Pay‑to‑End‑Point)
+- Steganographic transaction
+
+What makes Payjoin unique is that it produces a transaction that looks ordinary at first glance but is actually a mini coinjoin between two parties. To achieve this, the recipient participates in the inputs alongside the sender. The recipient also includes a self‑payment in the transaction, allowing them to be paid.
+
+Example: if you buy a baguette for 4,000 sats using a 10,000‑sat UTXO and opt for a Payjoin, the baker adds a 15,000‑sat UTXO that belongs to them as an input. They receive that in full as an output, plus your 4,000‑sat payment:
+
+
+
+In this example, the baker introduces 15,000 sats as input and receives 19,000 sats as output — a difference of exactly 4,000 sats, the price of the baguette. You input 10,000 sats and end with 6,000 sats in change — a −4,000‑sat balance, i.e., the payment amount.
+
+> For clarity, mining fees are omitted here. In practice, they are included and paid by the parties.
+{: .prompt-info }
+
+### What is the purpose of a Payjoin transaction?
+
+Payjoin achieves two privacy goals:
+
+A Payjoin transaction serves two objectives that allow users to enhance the privacy of their payment. First of all, Payjoin aims to mislead an external observer by creating a decoy in chain analysis. This is made possible through the Common Input Ownership Heuristic (CIOH). Usually, when a transaction on the blockchain has multiple inputs, it is assumed that all these inputs likely belong to the same entity or user. Thus, when an analyst examines a Payjoin transaction, they are led to believe that all the inputs come from the same person. However, this perception is incorrect because the payment recipient also contributes inputs alongside the actual payer. Therefore, chain analysis is diverted towards an interpretation that turns out to be false.
+
+Furthermore, Payjoin also allows for deceiving an external observer about the actual amount of the payment that has been made. By examining the transaction structure, the analyst might believe that the payment is equivalent to the amount of one of the outputs. However, in reality, the payment amount does not correspond to any of the outputs. It is actually the difference between the recipient's output UTXO and the recipient's input UTXO. In this sense, the Payjoin transaction falls into the domain of steganography. It allows for hiding the actual amount of a transaction within a fake transaction that acts as a decoy.
+
+Definition — Steganography:
+> Steganography is a technique of concealing information within other data or objects in such a way that the presence of the hidden information is not perceptible. For example, a secret message can be hidden inside a dot in a text that has nothing to do with it, making it undetectable to the naked eye (this is the technique of micropoint). Unlike encryption, which makes information incomprehensible without the decryption key, steganography does not modify the information. It remains displayed in plain sight. Its objective is rather to hide the existence of the secret message, whereas encryption clearly reveals the presence of hidden information, although inaccessible without the key.
+{: .prompt-tip }
+
+Returning to our baguette example:
+
+
+
+A typical heuristic might conclude: “Alice merged 2 UTXOs to pay 19,000 sats to Bob.”
+
+
+
+That’s wrong. The two input UTXOs do not belong to one person, and the actual payment value is 4,000 sats — the difference between Bob’s output and Bob’s input. The observer’s analysis is led to an erroneous conclusion, protecting participants’ privacy.
+
+
+
+If you want to analyze a real Payjoin, here’s one performed on testnet:
+[8dba6657ab9bb44824b3317c8cc3f333c2f465d3668c678691a091cdd6e5984c](https://mempool.space/fr/testnet/tx/8dba6657ab9bb44824b3317c8cc3f333c2f465d3668c678691a091cdd6e5984c)
+
+External resources:
+- [LaurentMT steganography gist](https://gist.githubusercontent.com/LaurentMT/e758767ca4038ac40aaf/raw/c8125f6a3c3d0e90246dc96d3b603690ab6f1dcc/gistfile1.txt)
+- [BIP78: Payjoin](https://github.com/bitcoin/bips/blob/master/bip-0078.mediawiki)
+- [payjoin.org](https://payjoin.org/)
+- BTC 204 — Privacy on Bitcoin: Part 5
+ [https://planb.academy/courses/65c138b0-4161-4958-bbe3-c12916bc959c](https://planb.academy/courses/65c138b0-4161-4958-bbe3-c12916bc959c)
+
+## Stowaway (Payjoin)
+
+Payjoin is implemented in Ashigaru as “Stowaway.” Below is how Stowaway works and how to use it step by step.
+
+### How does Stowaway work?
+
+Ashigaru includes a Payjoin tool called Stowaway, available in the Ashigaru Android app. To complete a Payjoin, the recipient (who also acts as the collaborator) must use software compatible with Stowaway — currently, Ashigaru only.
+
+Stowaway belongs to Samourai’s “Cahoots” category — collaborative transactions that exchange information off‑chain. Ashigaru currently offers two Cahoots tools: Stowaway (Payjoins) and Stonewall X2.
+
+Cahoots require exchanging PSBTs (partially signed transactions) between users. Manually, this involves five successive QR scans between participants (suitable when you’re together in person). At a distance, manual exchange is cumbersome; Soroban (an encrypted Tor‑based protocol) automates the PSBT exchange in the background.
+
+Soroban requires an authenticated channel between participants. It uses users’ PayNyms for identification and encrypted communications.
+
+A PayNym is a unique wallet identifier that activates features like encrypted exchanges. It appears as an ID with an illustration (example on testnet):
+
+
+
+Summary:
+- Payjoin = specific collaborative transaction structure
+- Stowaway = Ashigaru’s Payjoin implementation
+- Cahoots = collaborative transaction types (Stowaway, Stonewall X2)
+- Soroban = Tor‑based encrypted communications for Cahoots
+- PayNym = unique wallet identifier used to establish Soroban communications for Cahoots
+
+> Soroban automates PSBT exchange over Tor; PayNyms provide the authenticated channel used by Soroban.
+{: .prompt-info }
+
+### How to establish a connection between PayNyms
+
+First, install Ashigaru and create a wallet (covered earlier in Sections 2–3).
+
+To do a remote Cahoots (Payjoin/Stowaway), you must “follow” the user you’ll collaborate with, using their PayNym — in Stowaway, this means following the person you intend to pay.
+
+> Before initiating Stowaway, ensure both PayNyms follow each other — it’s required to establish the encrypted Soroban channel.
+{: .prompt-tip }
+
+### How to do a Payjoin in Ashigaru
+
+- Open “Collaborate” from your PayNym image (top‑left). The participant must do the same — unless you’re exchanging QR codes in person.
+
+
+
+- Choose:
+ - “Initiate” if you are the payer (sender)
+ - “Participate” if you are the recipient (collaborator)
+
+
+
+- If you’re the recipient/collaborator (Soroban):
+ - Tap “Participate”
+ - Choose the account
+ - Tap “LISTEN FOR CAHOOTS REQUESTS”
+
+
+
+- For in‑person collaboration:
+ - Go to wallet home
+ - Tap the QR icon
+ - Scan the payer’s QR code
+
+
+
+- If you’re the payer (initiator):
+ - “Collaborate” → “Initiate”
+ - Choose “Stowaway” (Payjoin)
+ - Pick collaboration mode: “Online” (Soroban) or “In Person / Manual”
+
+
+
+
+
+#### Online Cahoots (Soroban)
+
+- Select the recipient from the PayNyms you follow
+- Tap “Set up transaction,” then choose the spending account
+- Enter amount and fee rate (no address needed; recipient supplies it during exchange)
+- Tap “Review transaction setup,” then “BEGIN TRANSACTION”
+- Keep both devices online; sign and broadcast when complete
+
+
+
+
+
+
+
+> Keep both devices online and inside the app during Soroban — interruptions pause the PSBT exchange.
+{: .prompt-info }
+
+#### In‑person exchanges (QR)
+
+- Select “Stowaway” → “In Person / Manual”
+- “Set up transaction” → choose spending account
+- Enter amount and fee rate (recipient provides address during exchange)
+- “Review transaction setup” → “BEGIN TRANSACTION”
+- Alternate scans until all five steps complete
+- Verify and broadcast
+
+
+
+
+
+
+
+
+[Broadcasted transaction (testnet)](https://mempool.space/testnet4/tx/82efd3700bba87b0f172e9cc045e441b38622c95a60df9f39a21f63eb4590a96)
+
+Its structure looks like this:
+
+
+
+Credit: [mempool.space](https://mempool.space)
+
+Analysis:
+- Inputs: my UTXO (164,211 sats) + recipient’s UTXO (190,002 sats)
+- Outputs: my change (63,995 sats) + recipient’s output (290,002 sats)
+
+Comparing inputs and outputs:
+- Recipient gains 100,000 sats (payment amount)
+- I lose 100,000 sats plus mining fees
+
+I can describe this structure because I built the transaction; but for external observers, it’s generally impossible to determine which UTXOs belong to which participant — inputs or outputs.
+
+> Stowaway blurs input ownership and destination; observers cannot reliably assign roles, which strengthens privacy.
+{: .prompt-tip }
+
+## Ricochet
+
+> A premium tool that adds extra hops of history to your transaction. Stump blacklists and help guard against unjust third‑party account closures.
+
+### What is Ricochet?
+
+Ricochet is a technique where you create several self‑payments (to your own fresh addresses) to simulate a change of ownership of your bitcoin before the final spend. Unlike Ashigaru’s other spending tools (inherited from Samourai Wallet), Ricochet does not aim for prospective anonymity; instead, it provides a form of retrospective anonymity. In practice, Ricochet blurs properties that could compromise the fungibility of a Bitcoin UTXO.
+
+For example, if you perform a coinjoin, your postmix coin will be identifiable as having passed through a coinjoin. Chain‑analysis tools can detect coinjoin patterns and tag coins that exit them. Coinjoins break historical links, but their presence is still detectable — like encrypted text: you can’t read it, but it’s easy to see that encryption was applied.
+
+That “coinjoin‑tagged coin” label can affect fungibility. Regulated entities (e.g., exchanges) may refuse coinjoin‑sourced UTXOs, ask for explanations, or even freeze accounts/funds. In some cases, an exchange may report activity to state authorities.
+
+Ricochet addresses this by inserting four successive self‑transactions, each to a new address you control, then sending to the final destination (e.g., an exchange). The goal is to create distance between the original coinjoin and the final spend. This makes chain‑analysis tools more likely to consider a change of ownership has occurred post‑coinjoin, discouraging them from taking action against the sender.
+
+
+
+You might ask why chain‑analysis tools don’t simply look beyond four hops. In practice, these companies face an optimization dilemma: they must choose a threshold for “number of hops” after which they assume a change of ownership likely occurred and ignore older links. Raising that threshold increases false positives exponentially. As a result, raising the threshold is challenging; four hops is often enough to defeat their heuristics in many cases.
+
+> Ideally, do not send coinjoin‑sourced coins to regulated entities. If you must (e.g., urgent fiat liquidation), Ricochet can help reduce misclassification risks.
+{: .prompt-warning }
+
+> Ricochet is a pragmatic, retrospective privacy tool. It does not guarantee acceptance by any third party, but it commonly reduces friction with blacklist heuristics.
+{: .prompt-info }
+
+### How Ricochet works in Ashigaru
+
+Ricochet is simply sending bitcoin to yourself; you can simulate it manually without any specialized tool. Ashigaru offers streamlined, automated Ricochet that produces clean results.
+
+- Service cost: Ricochet on Ashigaru charges 100,000 sats for service fees, plus mining fees.
+- Practical use: Best suited for larger transfers where the fee overhead is proportionally reasonable.
+
+> Because Ricochet costs 100,000 sats plus mining fees, it’s recommended for significant amounts rather than small spends.
+{: .prompt-warning }
+
+Ashigaru offers two Ricochet variants:
+- Staggered delivery (reinforced Ricochet): distributes fees across five transactions, ensures distinct broadcast/confirmation times, maximizes ownership‑change appearance; slower.
+- Classic Ricochet: faster execution, less privacy; use for urgent sends only.
+
+> Choose “staggered delivery” for best privacy; choose “Classic” only if you need speed.
+{: .prompt-tip }
+
+### How to do a Ricochet in Ashigaru
+
+- Start a send using the standard flow (Section 6): tap “+” → “Send,” select account.
+
+
+
+- Fill transaction details: amount, final destination address, check “Ricochet.”
+
+
+
+- Choose Ricochet mode: “Classic” or “staggered delivery,” then confirm.
+
+
+
+- Review and fee management: adjust miner fees; slide the green arrow to sign and broadcast the Ricochet sequence.
+
+
+
+- Wait for automatic hops to complete, then confirm final delivery.
+
+
+
+
+> Ricochet will automatically manage the sequence of hops. If you chose staggered delivery, allow time for each hop to confirm in a separate block.
+{: .prompt-info }
+
+You now know how to use the full suite of tools avaliable in Ashigaru Mobile.
\ No newline at end of file
diff --git a/ashigaru-terminal-whirlpool.md b/ashigaru-terminal-whirlpool.md
new file mode 100644
index 0000000..4cc9157
--- /dev/null
+++ b/ashigaru-terminal-whirlpool.md
@@ -0,0 +1,469 @@
+---
+layout: page
+title: Ashigaru Whirlpool
+subtitle: How to Peform CoinJoins with Ashigaru Whirlpool
+---
+
+
+ Install |
+ Verify |
+ Launch |
+ Get Familiar |
+ Connect Node |
+ Create Wallet |
+ Use Wallet |
+ Whirlpool: How It Works |
+ Required Software |
+ Receive |
+ Tx0 |
+ Run Coinjoin |
+ Finish Coinjoin |
+ Doxxic Change |
+ Postmix
+
+ Original Author
+
+
+
+
+
+
+
+Ashigaru Terminal is Ashigaru’s adaptation of Sparrow Server that implements the Whirlpool coinjoin protocol. It continues the work started by Samourai Wallet, especially around Whirlpool GUI, keeping the core principles of self‑custody and privacy preservation.
+
+This software is a fork of Sparrow Server, modified and optimized for full integration with the Whirlpool ecosystem — the ZeroLink coinjoin protocol originally developed by the Samourai team.
+
+Ashigaru Terminal runs in a minimalist TUI interface and can be deployed on a personal computer or a dedicated server. It lets you interact directly with Whirlpool to initiate Tx0 transactions, manage the Deposit, Premix, Postmix, and Badbank accounts, and perform automatic remixing to strengthen the privacy of your coins.
+
+In short, Ashigaru Terminal is particularly useful if you want to perform coinjoins via Whirlpool.
+
+In this first tutorial, we’ll handle installation and the basics of Ashigaru Terminal. A second, more advanced tutorial will then cover performing coinjoins in practice.
+
+> Proper coinjoins improve privacy by breaking deterministic links between inputs and outputs.
+{: .prompt-info }
+
+## 1. Install Ashigaru Terminal
+
+To install Ashigaru Terminal, you’ll need Tor Browser because binaries are distributed only over the Tor network. If you haven’t already, [install Tor Browser](https://www.torproject.org/download/) on your machine.
+
+### 1.1. Download Ashigaru Terminal
+
+From Tor Browser, go to the releases page of the Git repository and download the latest version for your operating system:
+
+Onion link - http://ashicodepbnpvslzsl2bz7l2pwrjvajgumgac423pp3y2deprbnzz7id.onion/Ashigaru/Ashigaru-Terminal/releases/
+
+
+
+Download the two files that match your operating system:
+- The binary (for example: `ashigaru_terminal_v1.0.0_amd64.deb ` for Debian/Ubuntu, `.dmg ` for macOS, or `.zip ` for Windows)
+- The signed hashes file: `ashigaru_terminal_v1.0.0_signed_hashes.txt `
+
+> Always download both the binary and the signed hashes file — you’ll need the latter to verify authenticity and integrity before running anything.
+{: .prompt-warning }
+
+### 1.2. Verify Ashigaru Terminal
+
+Before running the software, verify its authenticity and integrity. This step helps you avoid installing a tampered version that could compromise your bitcoin or infect your machine.
+
+Open a new tab and go to the [Keybase verification tool](https://keybase.io/verify). Paste the content of the `.txt ` signed hashes file into the field, then click “Verify.”
+
+
+
+To diversify verification sources, you can also compare the message with what’s on the clearnet site [ashigaru.rs](https://ashigaru.rs/download/) under the `/download ` section.
+
+
+
+If the signature is valid, Keybase will confirm the file was signed by the Ashigaru developers.
+
+
+
+You can also click the “ashigarudev” profile shown by Keybase and ensure the key fingerprint matches exactly: A138 06B1 FA2A 676B.
+
+
+
+> If the Keybase verification fails, do not install the software. Start the process over or ask the community for help before proceeding.
+{: .prompt-danger }
+
+Keybase gives you the authenticated hash for the app. Now verify the hash of the `.deb `, `.zip `, or `.dmg ` you downloaded matches the Keybase-verified value. Use [HASH FILE ONLINE](https://hash-file.online/).
+
+- Click “BROWSE...” and select the `.deb `, `.zip `, or `.dmg ` you downloaded
+- Choose SHA‑256 as the hashing function
+- Click “CALCULATE HASH” to generate your file’s hash
+
+
+
+The site will display the software hash. Compare it to the one verified on Keybase. If both match perfectly, authenticity and integrity checks have succeeded. You can now install/run the software.
+
+
+
+> Never proceed if the signature or hash comparison fails — investigate the mismatch first.
+{: .prompt-danger }
+
+### 1.3. Launch Ashigaru Terminal
+
+- Debian / Ubuntu
+
+To install:
+
+ ` ` `bash
+cd ~/Downloads
+sudo apt install ./ashigaru_terminal_v1.0.0_amd64.deb
+ ` ` `
+> Adjust the filename to match the version you downloaded.
+{: .prompt-info }
+
+Then verify the installation:
+
+ ` ` `bash
+/opt/ashigaru-terminal/bin/Ashigaru-terminal --version
+ ` ` `
+> Prints the installed version to confirm the binary is available.
+{: .prompt-tip }
+
+Launch the software:
+
+ ` ` `bash
+/opt/ashigaru-terminal/bin/Ashigaru-terminal
+ ` ` `
+> Starts the TUI app in your terminal.
+{: .prompt-info }
+
+- Windows
+
+Right‑click the `.zip ` file you downloaded and verified, then select “Extract All...” to unpack it.
+
+Once extraction is complete, double‑click `Ashigaru-terminal.exe ` to launch the app.
+
+
+
+> On macOS, open the downloaded `.dmg ` and follow the standard app installation process. Gatekeeper may require you to allow running apps from this developer.
+{: .prompt-tip }
+
+## 2. Get familiar with Ashigaru Terminal
+
+Ashigaru Terminal uses a TUI (Text‑based User Interface), meaning a minimalist interface that runs directly in the terminal. You interact using menus and keyboard shortcuts without a traditional GUI.
+
+
+
+Navigation is straightforward: use your keyboard’s arrow keys to move through menus, and press `Enter ` to confirm or perform actions.
+
+## 3. Connect your node to Ashigaru Terminal
+
+By default, Ashigaru Terminal connects to a public Electrum server. This has obvious privacy and sovereignty drawbacks. Configure it to connect directly to your own Electrum server.
+
+Open `Preferences > Server `.
+
+
+
+Click `< Edit > `.
+
+
+
+Select `Private Electrum Server `, then click `< Continue > `.
+
+
+
+Enter your server’s URL and port. You can enter a Tor `.onion ` address. Click `< Test > ` to check the connection.
+
+
+
+If the connection works, you’ll see `Success ` and your server’s details.
+
+
+
+> For best privacy, use your own Electrum server (onion if remote). Public servers can see and correlate wallet queries.
+{: .prompt-warning }
+
+To learn more about Dojo and how to install it, I have the following dedicated guide:
+
+[Vanilla Samourai Dojo Guide](https://bitcoiner.guide/vanilla-dojo/)
+
+Note: For this tutorial, the author disconnects from their because they’re on testnet. Operation is the same on mainnet.
+
+## 4. Create a wallet in Ashigaru Terminal
+
+With the software configured, add a Bitcoin wallet.
+
+You have two choices:
+- Create a brand‑new wallet to use exclusively with Ashigaru Terminal. You’ll need this app running whenever you want to interact with the wallet.
+- Import your existing Ashigaru (mobile) wallet into Ashigaru Terminal. This slightly reduces security (one wallet across two environments), but it lets Ashigaru Terminal run continuously to mix coins while you spend from the mobile app.
+
+In this tutorial, we’ll use the second option. If you prefer creating a new wallet, the procedure is identical — the only difference is you’ll back up the new mnemonic and BIP39 passphrase during creation.
+
+Note: Ashigaru Terminal does not allow you to spend your bitcoins directly. You can either synchronize the same wallet on Ashigaru Terminal and the Ashigaru app (which I will do in this tutorial), or on Sparrow Wallet.
+
+If you don’t yet have a wallet in the Ashigaru app, follow [this guide](https://bitcoiner.guide/ashigaru-mobile).
+
+Go to `Wallets `.
+
+
+
+Select `Create / restore wallet... `. Use `Open Wallet... ` later to reopen a wallet already saved in Ashigaru Terminal.
+
+
+
+Give your wallet a name.
+
+
+
+Choose `Hot Wallet ` as the wallet type.
+
+Note: `Watch‑only ` lets you save a hardware wallet xpub for later use with `Mix to `. A watch‑only wallet cannot participate in coinjoins. We’ll cover “Mix to” in a future tutorial.
+
+
+
+Now the flow differs based on your choice:
+- To create a new wallet from scratch, click `< Generate New Wallet > `, set a BIP39 passphrase, and carefully back up the mnemonic and passphrase on physical media:
+
+- To use the same wallet as your Ashigaru Mobile app, enter your 12‑word mnemonic and your BIP39 passphrase exactly: lowercase words, in order, separated by a single space, with no extra characters.
+
+Click `< Next > ` when done.
+
+Note: If `< Next > ` is disabled, your mnemonic is invalid. Double‑check for typos or incorrect words.
+
+
+
+You’ll then set a password. This unlocks your wallet in Ashigaru Terminal and protects it from unauthorized physical access. It is not part of key derivation. In other words, even without this password, anyone with your mnemonic and passphrase can restore your wallet and access your funds.
+
+Choose a long, random password. Store a copy safely — ideally on physical media or in a secure password manager.
+
+Click `< OK > ` when finished.
+
+
+
+> Mnemonic + passphrase = full access. Treat the Terminal password as a local lock; it does not replace seed security.
+{: .prompt-info }
+
+## 5. Use the wallet
+
+Choose which account to view. Since we haven’t started mixing yet, open the `Deposit ` account.
+
+
+
+Operation is similar to Sparrow (Ashigaru Terminal is a fork of Sparrow Server), so you’ll see familiar menus:
+
+
+
+- `Transactions `: view transaction history for this account. In this example, some appear already because they were made with the Ashigaru Mobile app using the same wallet.
+
+
+
+- `Receive `: generate a fresh receiving address to fund the deposit account.
+
+
+
+- `Addresses `: list all addresses in this account (internal and external chains).
+
+
+
+- `UTXOs `: list all available UTXOs.
+
+
+
+- `Settings `: view the wallet descriptor, check the seed, adjust Gap Limit, or change the wallet birthday/start date.
+
+
+
+You now know how to install and get started with Ashigaru Terminal. Next we’ll cover performing coinjoins and managing Postmix funds via the Ashigaru mobile app.
+
+“a bitcoin wallet for the streets”
+
+Here, you’ll learn what a coinjoin is in practice and how to perform one using the Ashigaru ecosystem and Whirlpool — a coinjoin protocol inherited from Samourai Wallet — via Ashigaru Terminal.
+
+## How Whirlpool coinjoins work
+
+This guide does not explain coinjoin theory, why it’s useful, or the formal design of Whirlpool, as these topics will be covered in detail in a future post.
+
+Here are a few quick points that will help in practice.
+
+Wallets compatible with Whirlpool use 4 distinct accounts to support the coinjoin process:
+- Deposit account, index `0' `
+- Bad Bank (aka doxxic change), index `2 147 483 644' `
+- Premix, index `2 147 483 645' `
+- Postmix, index `2 147 483 646' `
+
+As of November 2025 on Ashigaru, two pool denominations are available (this list will likely evolve in the coming months — check values at the time you read this):
+- `0.25 BTC `, with an entry fee of `0.0125 BTC `
+- `0.025 BTC `, with an entry fee of `0.00125 BTC `
+
+Each mixing cycle usually includes 5 UTXOs as inputs and outputs.
+
+
+
+> Pool sizes and entry fees can change. Be sure to check current values before starting.
+{: .prompt-info }
+
+## Required software
+
+To perform coinjoins with Whirlpool, you need three separate tools:
+
+- Ashigaru Terminal — manage your coinjoins directly from your computer
+
+- [Ashigaru Mobile](https://bitcoiner.guide/ashigaru-mobile/) — the mobile app you’ll use to spend your postmix bitcoin anywhere
+
+- Dojo — a Bitcoin node implementation to ensure a sovereign connection without relying on third‑party servers, it can be run on:
+
+ - Start9 by downloading dojo from the community marketplace (I would link to this directly but start9's marketplace website is poor to say the least)
+
+ - Umbrel by installing the "[Samourai Server](https://apps.umbrel.com/app/samourai-server)" app
+
+ - Vanilla dojo on Ubuntu or Debian by following [this guide](https://bitcoiner.guide/vanilla-dojo/).
+
+ - You may also use a public dojo run by a community member but know that this is not ideal for privacy and you should strive to run your own dojo. You may want to use a public dojo if you are just testing with testnet coins for example. Learn more here: [dojobay.pw](https://dojobay.pw/)
+
+Install each tool following its dedicated tutorial. Then you can start doing your first coinjoins.
+
+## Receive bitcoin
+
+After creating your wallet, you start with a single account — index `0' ` — called `Deposit `. Send bitcoin you intend to coinjoin to this Deposit account. You can receive via the Ashigaru mobile app (see Section 5 of its tutorial) or via Ashigaru Terminal (also detailed in Section 5 of its tutorial).
+
+Once your Deposit account holds at least the amount required to join the smallest pool (plus service fees and a minimum to cover mining fees), you’re ready to initiate your first coinjoins.
+
+
+
+## Create the Tx0
+
+When funds have arrived in your Deposit account and the transaction is confirmed, you can start the coinjoin process. In Ashigaru Terminal, open the `Wallets ` menu, then choose your wallet. If it’s locked, you’ll be asked for your password and passphrase.
+
+
+
+Select the `Deposit ` account.
+
+
+
+Go to the `UTXOs ` menu.
+
+
+
+You’ll see all UTXOs in your Deposit account. Select the UTXOs you want to enter into coinjoin cycles.
+
+For better privacy — and to avoid the Common Input Ownership Heuristic (CIOH) — it’s recommended to use a UTXOs from the same sources in each Tx0, you do not want accidentally associate your KYC and Non-KYC coins for example.
+
+Press `ENTER ` to select a UTXO: an asterisk `(*) ` will appear next to it.
+
+
+
+Click `Mix Selected `.
+
+
+
+If you have a UTXO large enough to enter one of the available pools, choose the pool using the arrow keys. On this page, you’ll see your Tx0 details:
+- Number of UTXOs entering the pool
+- Fees applied (service fees and mining fees)
+- Amount of doxxic change
+
+Review the information carefully, then click `Broadcast ` to send the Tx0.
+
+
+
+Ashigaru will then show the TXID of your Tx0, confirming the transaction was broadcast to the network.
+
+
+
+> Use UTXOs from similar sources when possible — combining multiple UTXOs can expose your ownership of said UTXOs via the CIOH.
+{: .prompt-warning }
+
+## Run the coinjoins
+
+After broadcasting the Tx0, return to your Deposit account’s home page, click `Accounts `, and select the `Premix ` account.
+
+
+
+In the `UTXOs ` menu, you’ll see the equalized pieces ready to enter coinjoin cycles. As soon as the Tx0 confirms, Ashigaru Terminal can automatically start the first mixing cycle.
+
+
+
+Once the Tx0 is confirmed, the first coinjoin transaction will be created and broadcast automatically by Ashigaru Terminal. In `Accounts > Postmix > UTXOs `, you can view your equalized UTXOs waiting for their first cycle’s confirmation.
+
+
+
+You can now leave Ashigaru Terminal running in the background. It will continue mixing and remixing your coins automatically.
+
+> Remixes continue automatically and cost nothing extra in Whirlpool (no additional service or mining fees for remixes).
+{: .prompt-tip }
+
+## Finishing the coinjoins
+
+You can let your coins keep remixing automatically. In Whirlpool, remixes accrue no extra fees — neither service nor mining — so more cycles can only improve your privacy.
+
+To better understand this mechanism and how many cycles are worthwhile, I will post a detailed article in the future, stay tuned!
+
+To see how many remixes each coin has completed, open the `UTXOs ` menu of the `Postmix ` account.
+
+
+
+To spend your mixed coins, use the Ashigaru mobile app, which shares the same wallet as Ashigaru Terminal. The default view is the `Deposit ` account. To access the `Postmix ` account (where mixed UTXOs live), tap the Whirlpool icon at the top right.
+
+
+
+In this account, you’ll see all your coins in the mixing process. To spend, tap the `+ ` symbol at the bottom right, then select `Send `.
+
+
+
+Enter your transaction details: the recipient address, the amount, and — if you wish — select a specific transaction type for even stronger privacy.
+
+
+
+Carefully check the transaction information, then slide the arrow at the bottom of the screen to confirm sending.
+
+
+
+Your transaction has been signed and broadcast to the Bitcoin network.
+
+
+
+## Spending the doxxic change
+
+Remember: Whirlpool’s model equalizes coins in the Tx0 before entering pools, which makes tracking harder. This is the most effective coinjoin model, but it has a drawback: a change output that does not go through the coinjoin process, we call this doxxic change.
+
+This change output is created for each Tx0. It is isolated in a specific account named `Doxxic Change ` or `Bad Bank ` (depending on the software) to avoid using it with your other UTXOs. This point is critical: these UTXOs have not been mixed — their traceability links remain intact and can compromise your privacy by tying you to your coinjoin activity. Handle them carefully and never use them with other UTXOs, mixed or not. Combining a toxic UTXO with a mixed UTXO destroys all privacy gains from coinjoins. — Although using official wallets should never allow this to happen, easy tiger.
+
+Currently, Ashigaru does not provide direct access to the `Doxxic Change ` account (at least, it wasn’t found at the time of writing). This feature will likely be added in a future update. In the meantime, the only way to retrieve these funds is to import your seed into Sparrow Wallet. Sparrow usually auto‑detects a Whirlpool wallet and gives access to all four accounts, including `Doxxic Change `. You can then spend those UTXOs like regular bitcoin from Sparrow.
+
+Here are several possible strategies to handle coinjoin change UTXOs without compromising your privacy:
+
+- Mix them in smaller pools: If a toxic UTXO is large enough for a smaller pool, this is often the best option. Do not merge multiple toxic UTXOs to reach the threshold — that would link your entries.
+
+- Mark them as unspendable: Another cautious approach is to keep them in their separate account and not touch them to avoid accidental spending. If BTC appreciates, new pools may become available for their size.
+
+- Donate them: You can donate toxic UTXOs to Bitcoin developers, open‑source projects, or nonprofits that accept BTC. This disposes of them usefully while supporting the ecosystem.
+
+- Buy gift cards or prepaid Visa cards: Platforms like [Bitrefill](https://www.bitrefill.com/) allow exchanging bitcoin for gift cards or reloadable Visa cards. This can be a simple, discreet way to spend toxic UTXOs. But be aware that these UTXOs are still linked to their previous history so be careful which ones you spend
+
+- Swap them for Monero: Samourai Wallet previously offered atomic BTC/XMR swaps (now discontinued). This service exists in [Eigen Wallet](https://eigenwallet.org/), you can isolate these UTXOs, convert to XMR, then back to BTC if desired. This method can be costly and depends on available liquidity. Also you must consider do you want to potentially risk a UTXO that may be associated with you being given to a third party who can do whatever they want with it?
+
+- Open a lightning channel: Transferring toxic UTXOs to LN to benefit from lower transaction fees can be useful. However, this may leak information depending on your LN usage, so proceed carefully.
+
+> Carefully consider what you want to do with your doxxic change, always proceed carefully.
+{: .prompt-danger }
+
+## How to assess coinjoin quality
+
+Effective coinjoins exhibit high homogeneity between input and output amounts. This uniformity increases the number of plausible interpretations for an external observer and therefore uncertainty about the transaction. We measure this uncertainty using entropy applied to the transaction. Whirlpool’s model is recognized as one of the strongest in this regard, thanks to excellent homogeneity between participants.
+
+The performance across multiple coinjoin cycles is measured by the size of the sets in which a coin is hidden — called anonsets. There are two types:
+- One measures privacy against retrospective analysis (from present to past)
+- The other measures resistance against prospective analysis (from past to present)
+
+For a full explanation of these two indicators a follow-up post will be posted.
+
+## How to manage postmix
+
+After several coinjoin cycles, the best strategy is to keep UTXOs in the `Postmix ` account, letting them remix indefinitely until you actually need to spend them.
+
+Some users prefer moving mixed BTC to a hardware wallet. This is possible, but it requires discipline to avoid compromising privacy gains from coinjoins.
+
+The most common mistake is merging UTXOs. Never combine mixed UTXOs with unmixed UTXOs in the same transaction, or you risk creating links via the CIOH. This means rigorous UTXO management is key — clear and precise labeling is essential. In general, UTXO merging is risky and often leads to privacy loss when done poorly.
+
+Be careful with consolidation of mixed UTXOs with each other, too. Limited consolidation may be acceptable if UTXOs have large anonsets, but it inevitably reduces your privacy. Avoid large or rushed consolidations before sufficient remixes, as they can create deducible links between your coins before and after mixing. When in doubt, do not consolidate postmix UTXOs. Instead, transfer them one by one to your hardware wallet, generating a fresh receiving address each time. Label every transferred UTXO carefully.
+
+It is strongly discouraged to move postmix UTXOs into wallets using minority scripts. For example, if you participated in Whirlpool from a multisig `P2WSH ` wallet, few users share that script type. Sending postmix UTXOs back to the same script greatly reduces your anonymity set. Beyond script type, other wallet fingerprints can harm your privacy. The safest option is to spend from the Ashigaru app.
+
+Finally, as with any Bitcoin usage, never reuse a receiving address. Each payment should go to a fresh, unused address.
+
+The simplest and safest method remains: keep mixed UTXOs resting in `Postmix `, let them remix naturally, and spend only when needed from Ashigaru.
+
+Ashigaru and Sparrow include additional protections against common chain‑analysis pitfalls, helping you preserve transaction privacy.
+
+> Avoid merging mixed and unmixed UTXOs; prefer spending from Postmix directly; don’t reuse addresses; and be cautious with script types and consolidations.
+{: .prompt-warning }
\ No newline at end of file
diff --git a/assets/img/ashigaru-mobile-guide/01.webp b/assets/img/ashigaru-mobile-guide/01.webp
new file mode 100644
index 0000000..2ba8d71
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/01.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/02.webp b/assets/img/ashigaru-mobile-guide/02.webp
new file mode 100644
index 0000000..86b5c44
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/02.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/03.webp b/assets/img/ashigaru-mobile-guide/03.webp
new file mode 100644
index 0000000..de1d94c
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/03.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/04.webp b/assets/img/ashigaru-mobile-guide/04.webp
new file mode 100644
index 0000000..0d9a0bb
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/04.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/05.webp b/assets/img/ashigaru-mobile-guide/05.webp
new file mode 100644
index 0000000..082fbaa
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/05.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/06.webp b/assets/img/ashigaru-mobile-guide/06.webp
new file mode 100644
index 0000000..7d77b4a
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/06.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/07.webp b/assets/img/ashigaru-mobile-guide/07.webp
new file mode 100644
index 0000000..4bdb33b
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/07.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/08.webp b/assets/img/ashigaru-mobile-guide/08.webp
new file mode 100644
index 0000000..1f757c9
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/08.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/09.webp b/assets/img/ashigaru-mobile-guide/09.webp
new file mode 100644
index 0000000..96ab375
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/09.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/10.webp b/assets/img/ashigaru-mobile-guide/10.webp
new file mode 100644
index 0000000..44f1542
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/10.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/11.webp b/assets/img/ashigaru-mobile-guide/11.webp
new file mode 100644
index 0000000..fe004eb
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/11.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/12.webp b/assets/img/ashigaru-mobile-guide/12.webp
new file mode 100644
index 0000000..97befaf
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/12.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/13.webp b/assets/img/ashigaru-mobile-guide/13.webp
new file mode 100644
index 0000000..5322110
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/13.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/14.webp b/assets/img/ashigaru-mobile-guide/14.webp
new file mode 100644
index 0000000..765d2dc
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/14.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/15.webp b/assets/img/ashigaru-mobile-guide/15.webp
new file mode 100644
index 0000000..05da9e2
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/15.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/16.webp b/assets/img/ashigaru-mobile-guide/16.webp
new file mode 100644
index 0000000..2b07cc9
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/16.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/17.webp b/assets/img/ashigaru-mobile-guide/17.webp
new file mode 100644
index 0000000..9f7bf5d
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/17.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/18.webp b/assets/img/ashigaru-mobile-guide/18.webp
new file mode 100644
index 0000000..ef4aeba
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/18.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/19.webp b/assets/img/ashigaru-mobile-guide/19.webp
new file mode 100644
index 0000000..8993889
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/19.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/20.webp b/assets/img/ashigaru-mobile-guide/20.webp
new file mode 100644
index 0000000..a92a861
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/20.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/21.webp b/assets/img/ashigaru-mobile-guide/21.webp
new file mode 100644
index 0000000..1b45a1d
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/21.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/22.webp b/assets/img/ashigaru-mobile-guide/22.webp
new file mode 100644
index 0000000..efbc486
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/22.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/23.webp b/assets/img/ashigaru-mobile-guide/23.webp
new file mode 100644
index 0000000..bfb215d
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/23.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/24.webp b/assets/img/ashigaru-mobile-guide/24.webp
new file mode 100644
index 0000000..326abd0
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/24.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/25.webp b/assets/img/ashigaru-mobile-guide/25.webp
new file mode 100644
index 0000000..96eef19
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/25.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/26.webp b/assets/img/ashigaru-mobile-guide/26.webp
new file mode 100644
index 0000000..805f774
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/26.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/27.webp b/assets/img/ashigaru-mobile-guide/27.webp
new file mode 100644
index 0000000..aae3989
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/27.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/28.webp b/assets/img/ashigaru-mobile-guide/28.webp
new file mode 100644
index 0000000..eb12af2
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/28.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/29.webp b/assets/img/ashigaru-mobile-guide/29.webp
new file mode 100644
index 0000000..9fa9baa
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/29.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/30.webp b/assets/img/ashigaru-mobile-guide/30.webp
new file mode 100644
index 0000000..0e50b8a
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/30.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/31.webp b/assets/img/ashigaru-mobile-guide/31.webp
new file mode 100644
index 0000000..ab8476c
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/31.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/32.webp b/assets/img/ashigaru-mobile-guide/32.webp
new file mode 100644
index 0000000..c890a82
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/32.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/33.webp b/assets/img/ashigaru-mobile-guide/33.webp
new file mode 100644
index 0000000..67500f1
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/33.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/34.webp b/assets/img/ashigaru-mobile-guide/34.webp
new file mode 100644
index 0000000..94c824a
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/34.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/35.webp b/assets/img/ashigaru-mobile-guide/35.webp
new file mode 100644
index 0000000..16e889b
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/35.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/36.webp b/assets/img/ashigaru-mobile-guide/36.webp
new file mode 100644
index 0000000..b3d917b
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/36.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/37.webp b/assets/img/ashigaru-mobile-guide/37.webp
new file mode 100644
index 0000000..c1ef535
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/37.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/38.webp b/assets/img/ashigaru-mobile-guide/38.webp
new file mode 100644
index 0000000..202067f
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/38.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/39.webp b/assets/img/ashigaru-mobile-guide/39.webp
new file mode 100644
index 0000000..565d015
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/39.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/40.webp b/assets/img/ashigaru-mobile-guide/40.webp
new file mode 100644
index 0000000..8f30c9e
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/40.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/41.webp b/assets/img/ashigaru-mobile-guide/41.webp
new file mode 100644
index 0000000..873d6a0
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/41.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/cover.webp b/assets/img/ashigaru-mobile-guide/cover.webp
new file mode 100644
index 0000000..cc7e625
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/cover.webp differ
diff --git a/assets/img/ashigaru-mobile-guide/header.png b/assets/img/ashigaru-mobile-guide/header.png
new file mode 100644
index 0000000..d02e0ee
Binary files /dev/null and b/assets/img/ashigaru-mobile-guide/header.png differ
diff --git a/assets/img/ashigaru-ricochet/01.webp b/assets/img/ashigaru-ricochet/01.webp
new file mode 100644
index 0000000..7dc6dc0
Binary files /dev/null and b/assets/img/ashigaru-ricochet/01.webp differ
diff --git a/assets/img/ashigaru-ricochet/02.webp b/assets/img/ashigaru-ricochet/02.webp
new file mode 100644
index 0000000..d83ccf4
Binary files /dev/null and b/assets/img/ashigaru-ricochet/02.webp differ
diff --git a/assets/img/ashigaru-ricochet/03.webp b/assets/img/ashigaru-ricochet/03.webp
new file mode 100644
index 0000000..1fc43c1
Binary files /dev/null and b/assets/img/ashigaru-ricochet/03.webp differ
diff --git a/assets/img/ashigaru-ricochet/04.webp b/assets/img/ashigaru-ricochet/04.webp
new file mode 100644
index 0000000..fc94228
Binary files /dev/null and b/assets/img/ashigaru-ricochet/04.webp differ
diff --git a/assets/img/ashigaru-ricochet/05.webp b/assets/img/ashigaru-ricochet/05.webp
new file mode 100644
index 0000000..1f7575f
Binary files /dev/null and b/assets/img/ashigaru-ricochet/05.webp differ
diff --git a/assets/img/ashigaru-ricochet/06.webp b/assets/img/ashigaru-ricochet/06.webp
new file mode 100644
index 0000000..b6a6fce
Binary files /dev/null and b/assets/img/ashigaru-ricochet/06.webp differ
diff --git a/assets/img/ashigaru-ricochet/07.webp b/assets/img/ashigaru-ricochet/07.webp
new file mode 100644
index 0000000..b9bddf9
Binary files /dev/null and b/assets/img/ashigaru-ricochet/07.webp differ
diff --git a/assets/img/ashigaru-stonewall/01.webp b/assets/img/ashigaru-stonewall/01.webp
new file mode 100644
index 0000000..c374ccb
Binary files /dev/null and b/assets/img/ashigaru-stonewall/01.webp differ
diff --git a/assets/img/ashigaru-stonewall/02.webp b/assets/img/ashigaru-stonewall/02.webp
new file mode 100644
index 0000000..fe81911
Binary files /dev/null and b/assets/img/ashigaru-stonewall/02.webp differ
diff --git a/assets/img/ashigaru-stonewall/03.webp b/assets/img/ashigaru-stonewall/03.webp
new file mode 100644
index 0000000..cf04f30
Binary files /dev/null and b/assets/img/ashigaru-stonewall/03.webp differ
diff --git a/assets/img/ashigaru-stonewall/04.webp b/assets/img/ashigaru-stonewall/04.webp
new file mode 100644
index 0000000..36969a3
Binary files /dev/null and b/assets/img/ashigaru-stonewall/04.webp differ
diff --git a/assets/img/ashigaru-stonewall/05.webp b/assets/img/ashigaru-stonewall/05.webp
new file mode 100644
index 0000000..695a22f
Binary files /dev/null and b/assets/img/ashigaru-stonewall/05.webp differ
diff --git a/assets/img/ashigaru-stonewall/06.webp b/assets/img/ashigaru-stonewall/06.webp
new file mode 100644
index 0000000..55b611f
Binary files /dev/null and b/assets/img/ashigaru-stonewall/06.webp differ
diff --git a/assets/img/ashigaru-stonewall/07.webp b/assets/img/ashigaru-stonewall/07.webp
new file mode 100644
index 0000000..9560047
Binary files /dev/null and b/assets/img/ashigaru-stonewall/07.webp differ
diff --git a/assets/img/ashigaru-stonewall/08.webp b/assets/img/ashigaru-stonewall/08.webp
new file mode 100644
index 0000000..16fcb20
Binary files /dev/null and b/assets/img/ashigaru-stonewall/08.webp differ
diff --git a/assets/img/ashigaru-stonewall/09.webp b/assets/img/ashigaru-stonewall/09.webp
new file mode 100644
index 0000000..3fb02cc
Binary files /dev/null and b/assets/img/ashigaru-stonewall/09.webp differ
diff --git a/assets/img/ashigaru-stonewall/10.webp b/assets/img/ashigaru-stonewall/10.webp
new file mode 100644
index 0000000..b9ef2d7
Binary files /dev/null and b/assets/img/ashigaru-stonewall/10.webp differ
diff --git a/assets/img/ashigaru-stonewall/11.webp b/assets/img/ashigaru-stonewall/11.webp
new file mode 100644
index 0000000..a51feba
Binary files /dev/null and b/assets/img/ashigaru-stonewall/11.webp differ
diff --git a/assets/img/ashigaru-stonewall/12.webp b/assets/img/ashigaru-stonewall/12.webp
new file mode 100644
index 0000000..7909b08
Binary files /dev/null and b/assets/img/ashigaru-stonewall/12.webp differ
diff --git a/assets/img/ashigaru-stonewall/cover.webp b/assets/img/ashigaru-stonewall/cover.webp
new file mode 100644
index 0000000..cc7e625
Binary files /dev/null and b/assets/img/ashigaru-stonewall/cover.webp differ
diff --git a/assets/img/ashigaru-stowaway/01.webp b/assets/img/ashigaru-stowaway/01.webp
new file mode 100644
index 0000000..ac378e2
Binary files /dev/null and b/assets/img/ashigaru-stowaway/01.webp differ
diff --git a/assets/img/ashigaru-stowaway/02.webp b/assets/img/ashigaru-stowaway/02.webp
new file mode 100644
index 0000000..3096145
Binary files /dev/null and b/assets/img/ashigaru-stowaway/02.webp differ
diff --git a/assets/img/ashigaru-stowaway/03.webp b/assets/img/ashigaru-stowaway/03.webp
new file mode 100644
index 0000000..2410438
Binary files /dev/null and b/assets/img/ashigaru-stowaway/03.webp differ
diff --git a/assets/img/ashigaru-stowaway/04.webp b/assets/img/ashigaru-stowaway/04.webp
new file mode 100644
index 0000000..a077d68
Binary files /dev/null and b/assets/img/ashigaru-stowaway/04.webp differ
diff --git a/assets/img/ashigaru-stowaway/05.webp b/assets/img/ashigaru-stowaway/05.webp
new file mode 100644
index 0000000..9805be8
Binary files /dev/null and b/assets/img/ashigaru-stowaway/05.webp differ
diff --git a/assets/img/ashigaru-stowaway/06.webp b/assets/img/ashigaru-stowaway/06.webp
new file mode 100644
index 0000000..2410438
Binary files /dev/null and b/assets/img/ashigaru-stowaway/06.webp differ
diff --git a/assets/img/ashigaru-stowaway/07.webp b/assets/img/ashigaru-stowaway/07.webp
new file mode 100644
index 0000000..2c1488d
Binary files /dev/null and b/assets/img/ashigaru-stowaway/07.webp differ
diff --git a/assets/img/ashigaru-stowaway/08.webp b/assets/img/ashigaru-stowaway/08.webp
new file mode 100644
index 0000000..32ea2a3
Binary files /dev/null and b/assets/img/ashigaru-stowaway/08.webp differ
diff --git a/assets/img/ashigaru-stowaway/09.webp b/assets/img/ashigaru-stowaway/09.webp
new file mode 100644
index 0000000..ac8a4e4
Binary files /dev/null and b/assets/img/ashigaru-stowaway/09.webp differ
diff --git a/assets/img/ashigaru-stowaway/10.webp b/assets/img/ashigaru-stowaway/10.webp
new file mode 100644
index 0000000..a4c6892
Binary files /dev/null and b/assets/img/ashigaru-stowaway/10.webp differ
diff --git a/assets/img/ashigaru-stowaway/11.webp b/assets/img/ashigaru-stowaway/11.webp
new file mode 100644
index 0000000..e546b76
Binary files /dev/null and b/assets/img/ashigaru-stowaway/11.webp differ
diff --git a/assets/img/ashigaru-stowaway/12.webp b/assets/img/ashigaru-stowaway/12.webp
new file mode 100644
index 0000000..c3c87c5
Binary files /dev/null and b/assets/img/ashigaru-stowaway/12.webp differ
diff --git a/assets/img/ashigaru-stowaway/13.webp b/assets/img/ashigaru-stowaway/13.webp
new file mode 100644
index 0000000..b22357b
Binary files /dev/null and b/assets/img/ashigaru-stowaway/13.webp differ
diff --git a/assets/img/ashigaru-stowaway/14.webp b/assets/img/ashigaru-stowaway/14.webp
new file mode 100644
index 0000000..32ea2a3
Binary files /dev/null and b/assets/img/ashigaru-stowaway/14.webp differ
diff --git a/assets/img/ashigaru-stowaway/15.webp b/assets/img/ashigaru-stowaway/15.webp
new file mode 100644
index 0000000..952c4e8
Binary files /dev/null and b/assets/img/ashigaru-stowaway/15.webp differ
diff --git a/assets/img/ashigaru-stowaway/16.webp b/assets/img/ashigaru-stowaway/16.webp
new file mode 100644
index 0000000..77e53ec
Binary files /dev/null and b/assets/img/ashigaru-stowaway/16.webp differ
diff --git a/assets/img/ashigaru-stowaway/17.webp b/assets/img/ashigaru-stowaway/17.webp
new file mode 100644
index 0000000..ff833db
Binary files /dev/null and b/assets/img/ashigaru-stowaway/17.webp differ
diff --git a/assets/img/ashigaru-stowaway/18.webp b/assets/img/ashigaru-stowaway/18.webp
new file mode 100644
index 0000000..7c4bb4b
Binary files /dev/null and b/assets/img/ashigaru-stowaway/18.webp differ
diff --git a/assets/img/ashigaru-stowaway/19.webp b/assets/img/ashigaru-stowaway/19.webp
new file mode 100644
index 0000000..195ef1d
Binary files /dev/null and b/assets/img/ashigaru-stowaway/19.webp differ
diff --git a/assets/img/ashigaru-stowaway/20.webp b/assets/img/ashigaru-stowaway/20.webp
new file mode 100644
index 0000000..87ca117
Binary files /dev/null and b/assets/img/ashigaru-stowaway/20.webp differ
diff --git a/assets/img/ashigaru-stowaway/d.png b/assets/img/ashigaru-stowaway/d.png
new file mode 100644
index 0000000..f790ac4
Binary files /dev/null and b/assets/img/ashigaru-stowaway/d.png differ
diff --git a/assets/img/ashigaru-terminal-guide/01.webp b/assets/img/ashigaru-terminal-guide/01.webp
new file mode 100644
index 0000000..0f21a55
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/01.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/02.webp b/assets/img/ashigaru-terminal-guide/02.webp
new file mode 100644
index 0000000..c7ad505
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/02.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/03.webp b/assets/img/ashigaru-terminal-guide/03.webp
new file mode 100644
index 0000000..038acae
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/03.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/04.webp b/assets/img/ashigaru-terminal-guide/04.webp
new file mode 100644
index 0000000..b06dada
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/04.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/05.webp b/assets/img/ashigaru-terminal-guide/05.webp
new file mode 100644
index 0000000..39a0bd0
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/05.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/06.webp b/assets/img/ashigaru-terminal-guide/06.webp
new file mode 100644
index 0000000..c3e03f1
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/06.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/07.webp b/assets/img/ashigaru-terminal-guide/07.webp
new file mode 100644
index 0000000..4a08994
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/07.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/08.webp b/assets/img/ashigaru-terminal-guide/08.webp
new file mode 100644
index 0000000..643660f
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/08.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/09.webp b/assets/img/ashigaru-terminal-guide/09.webp
new file mode 100644
index 0000000..32f49c9
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/09.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/10.webp b/assets/img/ashigaru-terminal-guide/10.webp
new file mode 100644
index 0000000..7b77511
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/10.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/11.webp b/assets/img/ashigaru-terminal-guide/11.webp
new file mode 100644
index 0000000..beddf8a
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/11.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/12.webp b/assets/img/ashigaru-terminal-guide/12.webp
new file mode 100644
index 0000000..1c4203e
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/12.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/13.webp b/assets/img/ashigaru-terminal-guide/13.webp
new file mode 100644
index 0000000..0da5c3a
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/13.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/14.webp b/assets/img/ashigaru-terminal-guide/14.webp
new file mode 100644
index 0000000..289e9d9
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/14.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/15.webp b/assets/img/ashigaru-terminal-guide/15.webp
new file mode 100644
index 0000000..c7834e4
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/15.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/16.webp b/assets/img/ashigaru-terminal-guide/16.webp
new file mode 100644
index 0000000..4fc5c00
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/16.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/17.webp b/assets/img/ashigaru-terminal-guide/17.webp
new file mode 100644
index 0000000..a51acd4
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/17.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/18.webp b/assets/img/ashigaru-terminal-guide/18.webp
new file mode 100644
index 0000000..99b2d3c
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/18.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/cover.webp b/assets/img/ashigaru-terminal-guide/cover.webp
new file mode 100644
index 0000000..66163e6
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/cover.webp differ
diff --git a/assets/img/ashigaru-terminal-guide/header.png b/assets/img/ashigaru-terminal-guide/header.png
new file mode 100644
index 0000000..60fa5ee
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/header.png differ
diff --git a/assets/img/ashigaru-terminal-guide/logo.webp b/assets/img/ashigaru-terminal-guide/logo.webp
new file mode 100644
index 0000000..9edf459
Binary files /dev/null and b/assets/img/ashigaru-terminal-guide/logo.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/01.webp b/assets/img/ashigaru-terminal-setup/01.webp
new file mode 100644
index 0000000..916b104
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/01.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/02.webp b/assets/img/ashigaru-terminal-setup/02.webp
new file mode 100644
index 0000000..bdb0d83
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/02.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/03.webp b/assets/img/ashigaru-terminal-setup/03.webp
new file mode 100644
index 0000000..36eb688
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/03.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/04.webp b/assets/img/ashigaru-terminal-setup/04.webp
new file mode 100644
index 0000000..bdb3356
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/04.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/05.webp b/assets/img/ashigaru-terminal-setup/05.webp
new file mode 100644
index 0000000..5708c4d
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/05.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/06.webp b/assets/img/ashigaru-terminal-setup/06.webp
new file mode 100644
index 0000000..435900a
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/06.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/07.webp b/assets/img/ashigaru-terminal-setup/07.webp
new file mode 100644
index 0000000..bcf74f8
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/07.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/08.webp b/assets/img/ashigaru-terminal-setup/08.webp
new file mode 100644
index 0000000..e822cd5
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/08.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/09.webp b/assets/img/ashigaru-terminal-setup/09.webp
new file mode 100644
index 0000000..4c1d103
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/09.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/10.webp b/assets/img/ashigaru-terminal-setup/10.webp
new file mode 100644
index 0000000..7c10a17
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/10.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/11.webp b/assets/img/ashigaru-terminal-setup/11.webp
new file mode 100644
index 0000000..735a378
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/11.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/12.webp b/assets/img/ashigaru-terminal-setup/12.webp
new file mode 100644
index 0000000..3544483
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/12.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/13.webp b/assets/img/ashigaru-terminal-setup/13.webp
new file mode 100644
index 0000000..e2f986e
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/13.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/14.webp b/assets/img/ashigaru-terminal-setup/14.webp
new file mode 100644
index 0000000..795edb2
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/14.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/15.webp b/assets/img/ashigaru-terminal-setup/15.webp
new file mode 100644
index 0000000..16a2f73
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/15.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/16.webp b/assets/img/ashigaru-terminal-setup/16.webp
new file mode 100644
index 0000000..faa233a
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/16.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/17.webp b/assets/img/ashigaru-terminal-setup/17.webp
new file mode 100644
index 0000000..e108466
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/17.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/18.webp b/assets/img/ashigaru-terminal-setup/18.webp
new file mode 100644
index 0000000..55c0b23
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/18.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/19.webp b/assets/img/ashigaru-terminal-setup/19.webp
new file mode 100644
index 0000000..89c0346
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/19.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/20.webp b/assets/img/ashigaru-terminal-setup/20.webp
new file mode 100644
index 0000000..3521628
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/20.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/21.webp b/assets/img/ashigaru-terminal-setup/21.webp
new file mode 100644
index 0000000..37d665b
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/21.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/22.webp b/assets/img/ashigaru-terminal-setup/22.webp
new file mode 100644
index 0000000..1f18913
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/22.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/23.webp b/assets/img/ashigaru-terminal-setup/23.webp
new file mode 100644
index 0000000..b47d211
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/23.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/24.webp b/assets/img/ashigaru-terminal-setup/24.webp
new file mode 100644
index 0000000..a2c0849
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/24.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/25.webp b/assets/img/ashigaru-terminal-setup/25.webp
new file mode 100644
index 0000000..ea5ed95
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/25.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/26.webp b/assets/img/ashigaru-terminal-setup/26.webp
new file mode 100644
index 0000000..1c7edd6
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/26.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/27.webp b/assets/img/ashigaru-terminal-setup/27.webp
new file mode 100644
index 0000000..59ab16c
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/27.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/cover.webp b/assets/img/ashigaru-terminal-setup/cover.webp
new file mode 100644
index 0000000..73fe91f
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/cover.webp differ
diff --git a/assets/img/ashigaru-terminal-setup/header.png b/assets/img/ashigaru-terminal-setup/header.png
new file mode 100644
index 0000000..503eccd
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/header.png differ
diff --git a/assets/img/ashigaru-terminal-setup/logo.webp b/assets/img/ashigaru-terminal-setup/logo.webp
new file mode 100644
index 0000000..40624a4
Binary files /dev/null and b/assets/img/ashigaru-terminal-setup/logo.webp differ
diff --git a/assets/img/envoy-guide-images/01.webp b/assets/img/envoy-guide-images/01.webp
new file mode 100644
index 0000000..fa2ae1c
Binary files /dev/null and b/assets/img/envoy-guide-images/01.webp differ
diff --git a/assets/img/envoy-guide-images/02.webp b/assets/img/envoy-guide-images/02.webp
new file mode 100644
index 0000000..b5f8086
Binary files /dev/null and b/assets/img/envoy-guide-images/02.webp differ
diff --git a/assets/img/envoy-guide-images/03.webp b/assets/img/envoy-guide-images/03.webp
new file mode 100644
index 0000000..a4eafcc
Binary files /dev/null and b/assets/img/envoy-guide-images/03.webp differ
diff --git a/assets/img/envoy-guide-images/04.webp b/assets/img/envoy-guide-images/04.webp
new file mode 100644
index 0000000..194cd12
Binary files /dev/null and b/assets/img/envoy-guide-images/04.webp differ
diff --git a/assets/img/envoy-guide-images/05.webp b/assets/img/envoy-guide-images/05.webp
new file mode 100644
index 0000000..bed61c9
Binary files /dev/null and b/assets/img/envoy-guide-images/05.webp differ
diff --git a/assets/img/envoy-guide-images/07.webp b/assets/img/envoy-guide-images/07.webp
new file mode 100644
index 0000000..22ecf56
Binary files /dev/null and b/assets/img/envoy-guide-images/07.webp differ
diff --git a/assets/img/envoy-guide-images/08.webp b/assets/img/envoy-guide-images/08.webp
new file mode 100644
index 0000000..8997958
Binary files /dev/null and b/assets/img/envoy-guide-images/08.webp differ
diff --git a/assets/img/envoy-guide-images/09.webp b/assets/img/envoy-guide-images/09.webp
new file mode 100644
index 0000000..5c420c6
Binary files /dev/null and b/assets/img/envoy-guide-images/09.webp differ
diff --git a/assets/img/envoy-guide-images/10.webp b/assets/img/envoy-guide-images/10.webp
new file mode 100644
index 0000000..ef6fb5f
Binary files /dev/null and b/assets/img/envoy-guide-images/10.webp differ
diff --git a/assets/img/envoy-guide-images/11.webp b/assets/img/envoy-guide-images/11.webp
new file mode 100644
index 0000000..eb2d1cb
Binary files /dev/null and b/assets/img/envoy-guide-images/11.webp differ
diff --git a/assets/img/envoy-guide-images/12.webp b/assets/img/envoy-guide-images/12.webp
new file mode 100644
index 0000000..1c6ce5e
Binary files /dev/null and b/assets/img/envoy-guide-images/12.webp differ
diff --git a/assets/img/envoy-guide-images/13.webp b/assets/img/envoy-guide-images/13.webp
new file mode 100644
index 0000000..79155db
Binary files /dev/null and b/assets/img/envoy-guide-images/13.webp differ
diff --git a/assets/img/envoy-guide-images/14.webp b/assets/img/envoy-guide-images/14.webp
new file mode 100644
index 0000000..a0c6740
Binary files /dev/null and b/assets/img/envoy-guide-images/14.webp differ
diff --git a/assets/img/envoy-guide-images/15.webp b/assets/img/envoy-guide-images/15.webp
new file mode 100644
index 0000000..e99a048
Binary files /dev/null and b/assets/img/envoy-guide-images/15.webp differ
diff --git a/assets/img/envoy-guide-images/16.webp b/assets/img/envoy-guide-images/16.webp
new file mode 100644
index 0000000..8bfb9ae
Binary files /dev/null and b/assets/img/envoy-guide-images/16.webp differ
diff --git a/assets/img/envoy-guide-images/17.webp b/assets/img/envoy-guide-images/17.webp
new file mode 100644
index 0000000..2fc0351
Binary files /dev/null and b/assets/img/envoy-guide-images/17.webp differ
diff --git a/assets/img/envoy-guide-images/18.webp b/assets/img/envoy-guide-images/18.webp
new file mode 100644
index 0000000..1e580c4
Binary files /dev/null and b/assets/img/envoy-guide-images/18.webp differ
diff --git a/assets/img/envoy-guide-images/19.webp b/assets/img/envoy-guide-images/19.webp
new file mode 100644
index 0000000..e333ec4
Binary files /dev/null and b/assets/img/envoy-guide-images/19.webp differ
diff --git a/assets/img/envoy-guide-images/20.webp b/assets/img/envoy-guide-images/20.webp
new file mode 100644
index 0000000..71b48f0
Binary files /dev/null and b/assets/img/envoy-guide-images/20.webp differ
diff --git a/assets/img/envoy-guide-images/21.webp b/assets/img/envoy-guide-images/21.webp
new file mode 100644
index 0000000..c5f3b6e
Binary files /dev/null and b/assets/img/envoy-guide-images/21.webp differ
diff --git a/assets/img/envoy-guide-images/22.webp b/assets/img/envoy-guide-images/22.webp
new file mode 100644
index 0000000..6f2d046
Binary files /dev/null and b/assets/img/envoy-guide-images/22.webp differ
diff --git a/assets/img/envoy-guide-images/23.webp b/assets/img/envoy-guide-images/23.webp
new file mode 100644
index 0000000..7476abf
Binary files /dev/null and b/assets/img/envoy-guide-images/23.webp differ
diff --git a/assets/img/envoy-guide-images/24.webp b/assets/img/envoy-guide-images/24.webp
new file mode 100644
index 0000000..eff66ad
Binary files /dev/null and b/assets/img/envoy-guide-images/24.webp differ
diff --git a/assets/img/envoy-guide-images/25.webp b/assets/img/envoy-guide-images/25.webp
new file mode 100644
index 0000000..af75e38
Binary files /dev/null and b/assets/img/envoy-guide-images/25.webp differ
diff --git a/assets/img/envoy-guide-images/26.webp b/assets/img/envoy-guide-images/26.webp
new file mode 100644
index 0000000..5787949
Binary files /dev/null and b/assets/img/envoy-guide-images/26.webp differ
diff --git a/assets/img/envoy-guide-images/27.webp b/assets/img/envoy-guide-images/27.webp
new file mode 100644
index 0000000..07d4b21
Binary files /dev/null and b/assets/img/envoy-guide-images/27.webp differ
diff --git a/assets/img/envoy-guide-images/28.webp b/assets/img/envoy-guide-images/28.webp
new file mode 100644
index 0000000..cb66dee
Binary files /dev/null and b/assets/img/envoy-guide-images/28.webp differ
diff --git a/assets/img/envoy-guide-images/29.webp b/assets/img/envoy-guide-images/29.webp
new file mode 100644
index 0000000..cae9e90
Binary files /dev/null and b/assets/img/envoy-guide-images/29.webp differ
diff --git a/assets/img/envoy-guide-images/30.webp b/assets/img/envoy-guide-images/30.webp
new file mode 100644
index 0000000..136fd06
Binary files /dev/null and b/assets/img/envoy-guide-images/30.webp differ
diff --git a/assets/img/envoy-guide-images/31.webp b/assets/img/envoy-guide-images/31.webp
new file mode 100644
index 0000000..e8ee46d
Binary files /dev/null and b/assets/img/envoy-guide-images/31.webp differ
diff --git a/assets/img/envoy-guide-images/32.webp b/assets/img/envoy-guide-images/32.webp
new file mode 100644
index 0000000..e5f6398
Binary files /dev/null and b/assets/img/envoy-guide-images/32.webp differ
diff --git a/assets/img/envoy-guide-images/33.webp b/assets/img/envoy-guide-images/33.webp
new file mode 100644
index 0000000..e3a0b4f
Binary files /dev/null and b/assets/img/envoy-guide-images/33.webp differ
diff --git a/assets/img/envoy-guide-images/34.webp b/assets/img/envoy-guide-images/34.webp
new file mode 100644
index 0000000..6ecdfbf
Binary files /dev/null and b/assets/img/envoy-guide-images/34.webp differ
diff --git a/assets/img/envoy-guide-images/35.webp b/assets/img/envoy-guide-images/35.webp
new file mode 100644
index 0000000..497b394
Binary files /dev/null and b/assets/img/envoy-guide-images/35.webp differ
diff --git a/assets/img/envoy-guide-images/36.webp b/assets/img/envoy-guide-images/36.webp
new file mode 100644
index 0000000..e66d155
Binary files /dev/null and b/assets/img/envoy-guide-images/36.webp differ
diff --git a/assets/img/envoy-guide-images/37.webp b/assets/img/envoy-guide-images/37.webp
new file mode 100644
index 0000000..fa70114
Binary files /dev/null and b/assets/img/envoy-guide-images/37.webp differ
diff --git a/assets/img/envoy-guide-images/38.webp b/assets/img/envoy-guide-images/38.webp
new file mode 100644
index 0000000..378c3b9
Binary files /dev/null and b/assets/img/envoy-guide-images/38.webp differ
diff --git a/assets/img/envoy-guide-images/39.webp b/assets/img/envoy-guide-images/39.webp
new file mode 100644
index 0000000..81f8362
Binary files /dev/null and b/assets/img/envoy-guide-images/39.webp differ
diff --git a/assets/img/envoy-guide-images/40.webp b/assets/img/envoy-guide-images/40.webp
new file mode 100644
index 0000000..7711c07
Binary files /dev/null and b/assets/img/envoy-guide-images/40.webp differ
diff --git a/assets/img/envoy-guide-images/41.webp b/assets/img/envoy-guide-images/41.webp
new file mode 100644
index 0000000..21b6b7f
Binary files /dev/null and b/assets/img/envoy-guide-images/41.webp differ
diff --git a/assets/img/envoy-guide-images/42.webp b/assets/img/envoy-guide-images/42.webp
new file mode 100644
index 0000000..7ab332b
Binary files /dev/null and b/assets/img/envoy-guide-images/42.webp differ
diff --git a/assets/img/envoy-guide-images/43.webp b/assets/img/envoy-guide-images/43.webp
new file mode 100644
index 0000000..10b9ff4
Binary files /dev/null and b/assets/img/envoy-guide-images/43.webp differ
diff --git a/assets/img/envoy-guide-images/44.webp b/assets/img/envoy-guide-images/44.webp
new file mode 100644
index 0000000..66f73b2
Binary files /dev/null and b/assets/img/envoy-guide-images/44.webp differ
diff --git a/assets/img/envoy-guide-images/45.webp b/assets/img/envoy-guide-images/45.webp
new file mode 100644
index 0000000..e21d752
Binary files /dev/null and b/assets/img/envoy-guide-images/45.webp differ
diff --git a/assets/img/envoy-guide-images/46.webp b/assets/img/envoy-guide-images/46.webp
new file mode 100644
index 0000000..446b8ca
Binary files /dev/null and b/assets/img/envoy-guide-images/46.webp differ
diff --git a/assets/img/envoy-guide-images/47.webp b/assets/img/envoy-guide-images/47.webp
new file mode 100644
index 0000000..f55f38b
Binary files /dev/null and b/assets/img/envoy-guide-images/47.webp differ
diff --git a/assets/img/envoy-guide-images/48.webp b/assets/img/envoy-guide-images/48.webp
new file mode 100644
index 0000000..32ee269
Binary files /dev/null and b/assets/img/envoy-guide-images/48.webp differ
diff --git a/assets/img/envoy-guide-images/49.webp b/assets/img/envoy-guide-images/49.webp
new file mode 100644
index 0000000..66fc9c0
Binary files /dev/null and b/assets/img/envoy-guide-images/49.webp differ
diff --git a/assets/img/envoy-guide-images/50.webp b/assets/img/envoy-guide-images/50.webp
new file mode 100644
index 0000000..2f552db
Binary files /dev/null and b/assets/img/envoy-guide-images/50.webp differ
diff --git a/assets/img/envoy-guide-images/51.webp b/assets/img/envoy-guide-images/51.webp
new file mode 100644
index 0000000..e8a11b1
Binary files /dev/null and b/assets/img/envoy-guide-images/51.webp differ
diff --git a/assets/img/envoy-guide-images/52.webp b/assets/img/envoy-guide-images/52.webp
new file mode 100644
index 0000000..1ddf8a7
Binary files /dev/null and b/assets/img/envoy-guide-images/52.webp differ
diff --git a/assets/img/envoy-guide-images/53.webp b/assets/img/envoy-guide-images/53.webp
new file mode 100644
index 0000000..1cb664c
Binary files /dev/null and b/assets/img/envoy-guide-images/53.webp differ
diff --git a/assets/img/envoy-guide-images/54.webp b/assets/img/envoy-guide-images/54.webp
new file mode 100644
index 0000000..4ea6ca6
Binary files /dev/null and b/assets/img/envoy-guide-images/54.webp differ
diff --git a/assets/img/envoy-guide-images/55.webp b/assets/img/envoy-guide-images/55.webp
new file mode 100644
index 0000000..0829fed
Binary files /dev/null and b/assets/img/envoy-guide-images/55.webp differ
diff --git a/assets/img/envoy-guide-images/56.webp b/assets/img/envoy-guide-images/56.webp
new file mode 100644
index 0000000..644e84c
Binary files /dev/null and b/assets/img/envoy-guide-images/56.webp differ
diff --git a/assets/img/envoy-guide-images/57.webp b/assets/img/envoy-guide-images/57.webp
new file mode 100644
index 0000000..c0d00d6
Binary files /dev/null and b/assets/img/envoy-guide-images/57.webp differ
diff --git a/assets/img/envoy-guide-images/58.webp b/assets/img/envoy-guide-images/58.webp
new file mode 100644
index 0000000..06b304e
Binary files /dev/null and b/assets/img/envoy-guide-images/58.webp differ
diff --git a/assets/img/envoy-guide-images/59.webp b/assets/img/envoy-guide-images/59.webp
new file mode 100644
index 0000000..ce0a139
Binary files /dev/null and b/assets/img/envoy-guide-images/59.webp differ
diff --git a/assets/img/envoy-guide-images/60.webp b/assets/img/envoy-guide-images/60.webp
new file mode 100644
index 0000000..64c2e0d
Binary files /dev/null and b/assets/img/envoy-guide-images/60.webp differ
diff --git a/assets/img/envoy-guide-images/61.webp b/assets/img/envoy-guide-images/61.webp
new file mode 100644
index 0000000..b52d986
Binary files /dev/null and b/assets/img/envoy-guide-images/61.webp differ
diff --git a/assets/img/envoy-guide-images/62.webp b/assets/img/envoy-guide-images/62.webp
new file mode 100644
index 0000000..8960f2e
Binary files /dev/null and b/assets/img/envoy-guide-images/62.webp differ
diff --git a/assets/img/envoy-guide-images/63.webp b/assets/img/envoy-guide-images/63.webp
new file mode 100644
index 0000000..965d43e
Binary files /dev/null and b/assets/img/envoy-guide-images/63.webp differ
diff --git a/assets/img/envoy-guide-images/64.webp b/assets/img/envoy-guide-images/64.webp
new file mode 100644
index 0000000..0cb6858
Binary files /dev/null and b/assets/img/envoy-guide-images/64.webp differ
diff --git a/assets/img/envoy-guide-images/65.webp b/assets/img/envoy-guide-images/65.webp
new file mode 100644
index 0000000..3b36866
Binary files /dev/null and b/assets/img/envoy-guide-images/65.webp differ
diff --git a/assets/img/envoy-guide-images/66.webp b/assets/img/envoy-guide-images/66.webp
new file mode 100644
index 0000000..19ae5c5
Binary files /dev/null and b/assets/img/envoy-guide-images/66.webp differ
diff --git a/assets/img/envoy-guide-images/67.webp b/assets/img/envoy-guide-images/67.webp
new file mode 100644
index 0000000..3b8d509
Binary files /dev/null and b/assets/img/envoy-guide-images/67.webp differ
diff --git a/assets/img/envoy-guide-images/68.webp b/assets/img/envoy-guide-images/68.webp
new file mode 100644
index 0000000..2841b6d
Binary files /dev/null and b/assets/img/envoy-guide-images/68.webp differ
diff --git a/assets/img/envoy-guide-images/69.webp b/assets/img/envoy-guide-images/69.webp
new file mode 100644
index 0000000..191c7e5
Binary files /dev/null and b/assets/img/envoy-guide-images/69.webp differ
diff --git a/assets/img/envoy-guide-images/70.webp b/assets/img/envoy-guide-images/70.webp
new file mode 100644
index 0000000..6ecaaa3
Binary files /dev/null and b/assets/img/envoy-guide-images/70.webp differ
diff --git a/assets/img/envoy-guide-images/71.webp b/assets/img/envoy-guide-images/71.webp
new file mode 100644
index 0000000..06446df
Binary files /dev/null and b/assets/img/envoy-guide-images/71.webp differ
diff --git a/assets/img/envoy-guide-images/72.webp b/assets/img/envoy-guide-images/72.webp
new file mode 100644
index 0000000..4bca766
Binary files /dev/null and b/assets/img/envoy-guide-images/72.webp differ
diff --git a/assets/img/envoy-guide-images/73.webp b/assets/img/envoy-guide-images/73.webp
new file mode 100644
index 0000000..4bdfc46
Binary files /dev/null and b/assets/img/envoy-guide-images/73.webp differ
diff --git a/assets/img/envoy-guide-images/74.webp b/assets/img/envoy-guide-images/74.webp
new file mode 100644
index 0000000..c0423d3
Binary files /dev/null and b/assets/img/envoy-guide-images/74.webp differ
diff --git a/assets/img/envoy-guide-images/75.webp b/assets/img/envoy-guide-images/75.webp
new file mode 100644
index 0000000..a99b7cb
Binary files /dev/null and b/assets/img/envoy-guide-images/75.webp differ
diff --git a/assets/img/envoy-guide-images/76.webp b/assets/img/envoy-guide-images/76.webp
new file mode 100644
index 0000000..0d83834
Binary files /dev/null and b/assets/img/envoy-guide-images/76.webp differ
diff --git a/assets/img/envoy-guide-images/77.webp b/assets/img/envoy-guide-images/77.webp
new file mode 100644
index 0000000..e379d04
Binary files /dev/null and b/assets/img/envoy-guide-images/77.webp differ
diff --git a/assets/img/envoy-guide-images/78.webp b/assets/img/envoy-guide-images/78.webp
new file mode 100644
index 0000000..cf15b8f
Binary files /dev/null and b/assets/img/envoy-guide-images/78.webp differ
diff --git a/assets/img/envoy-guide-images/79.webp b/assets/img/envoy-guide-images/79.webp
new file mode 100644
index 0000000..6fcfc59
Binary files /dev/null and b/assets/img/envoy-guide-images/79.webp differ
diff --git a/assets/img/envoy-guide-images/80.webp b/assets/img/envoy-guide-images/80.webp
new file mode 100644
index 0000000..901a245
Binary files /dev/null and b/assets/img/envoy-guide-images/80.webp differ
diff --git a/assets/img/envoy-guide-images/81.webp b/assets/img/envoy-guide-images/81.webp
new file mode 100644
index 0000000..91c39a1
Binary files /dev/null and b/assets/img/envoy-guide-images/81.webp differ
diff --git a/assets/img/envoy-guide-images/82.webp b/assets/img/envoy-guide-images/82.webp
new file mode 100644
index 0000000..1d1d35b
Binary files /dev/null and b/assets/img/envoy-guide-images/82.webp differ
diff --git a/assets/img/envoy-guide-images/83.webp b/assets/img/envoy-guide-images/83.webp
new file mode 100644
index 0000000..db0db27
Binary files /dev/null and b/assets/img/envoy-guide-images/83.webp differ
diff --git a/assets/img/envoy-guide-images/84.webp b/assets/img/envoy-guide-images/84.webp
new file mode 100644
index 0000000..cd00073
Binary files /dev/null and b/assets/img/envoy-guide-images/84.webp differ
diff --git a/assets/img/envoy-guide-images/85.webp b/assets/img/envoy-guide-images/85.webp
new file mode 100644
index 0000000..40c6c99
Binary files /dev/null and b/assets/img/envoy-guide-images/85.webp differ
diff --git a/assets/img/envoy-guide-images/86.webp b/assets/img/envoy-guide-images/86.webp
new file mode 100644
index 0000000..1db614e
Binary files /dev/null and b/assets/img/envoy-guide-images/86.webp differ
diff --git a/assets/img/envoy-guide-images/87.webp b/assets/img/envoy-guide-images/87.webp
new file mode 100644
index 0000000..7425cce
Binary files /dev/null and b/assets/img/envoy-guide-images/87.webp differ
diff --git a/assets/img/envoy-guide-images/88.webp b/assets/img/envoy-guide-images/88.webp
new file mode 100644
index 0000000..9e5af9f
Binary files /dev/null and b/assets/img/envoy-guide-images/88.webp differ
diff --git a/assets/img/envoy-guide-images/89.webp b/assets/img/envoy-guide-images/89.webp
new file mode 100644
index 0000000..a9f1b6e
Binary files /dev/null and b/assets/img/envoy-guide-images/89.webp differ
diff --git a/assets/img/envoy-guide-images/90.webp b/assets/img/envoy-guide-images/90.webp
new file mode 100644
index 0000000..d7483d5
Binary files /dev/null and b/assets/img/envoy-guide-images/90.webp differ
diff --git a/assets/img/envoy-guide-images/91.webp b/assets/img/envoy-guide-images/91.webp
new file mode 100644
index 0000000..9da03a3
Binary files /dev/null and b/assets/img/envoy-guide-images/91.webp differ
diff --git a/assets/img/envoy-guide-images/92.webp b/assets/img/envoy-guide-images/92.webp
new file mode 100644
index 0000000..a7e28c6
Binary files /dev/null and b/assets/img/envoy-guide-images/92.webp differ
diff --git a/assets/img/envoy-guide-images/93.webp b/assets/img/envoy-guide-images/93.webp
new file mode 100644
index 0000000..5bb9703
Binary files /dev/null and b/assets/img/envoy-guide-images/93.webp differ
diff --git a/assets/img/envoy-guide-images/cover.webp b/assets/img/envoy-guide-images/cover.webp
new file mode 100644
index 0000000..c05cdc8
Binary files /dev/null and b/assets/img/envoy-guide-images/cover.webp differ
diff --git a/assets/img/envoy-guide-images/header.png b/assets/img/envoy-guide-images/header.png
new file mode 100644
index 0000000..e822975
Binary files /dev/null and b/assets/img/envoy-guide-images/header.png differ
diff --git a/assets/img/envoy-guide-images/passport-dark-1.webp b/assets/img/envoy-guide-images/passport-dark-1.webp
new file mode 100644
index 0000000..eb44fcd
Binary files /dev/null and b/assets/img/envoy-guide-images/passport-dark-1.webp differ
diff --git a/assets/img/passport-core-guide-images/01.webp b/assets/img/passport-core-guide-images/01.webp
new file mode 100644
index 0000000..23f3090
Binary files /dev/null and b/assets/img/passport-core-guide-images/01.webp differ
diff --git a/assets/img/passport-core-guide-images/02.webp b/assets/img/passport-core-guide-images/02.webp
new file mode 100644
index 0000000..b5f8086
Binary files /dev/null and b/assets/img/passport-core-guide-images/02.webp differ
diff --git a/assets/img/passport-core-guide-images/03.webp b/assets/img/passport-core-guide-images/03.webp
new file mode 100644
index 0000000..a4eafcc
Binary files /dev/null and b/assets/img/passport-core-guide-images/03.webp differ
diff --git a/assets/img/passport-core-guide-images/04.webp b/assets/img/passport-core-guide-images/04.webp
new file mode 100644
index 0000000..194cd12
Binary files /dev/null and b/assets/img/passport-core-guide-images/04.webp differ
diff --git a/assets/img/passport-core-guide-images/05.webp b/assets/img/passport-core-guide-images/05.webp
new file mode 100644
index 0000000..bed61c9
Binary files /dev/null and b/assets/img/passport-core-guide-images/05.webp differ
diff --git a/assets/img/passport-core-guide-images/06.webp b/assets/img/passport-core-guide-images/06.webp
new file mode 100644
index 0000000..03a3e19
Binary files /dev/null and b/assets/img/passport-core-guide-images/06.webp differ
diff --git a/assets/img/passport-core-guide-images/07.webp b/assets/img/passport-core-guide-images/07.webp
new file mode 100644
index 0000000..22ecf56
Binary files /dev/null and b/assets/img/passport-core-guide-images/07.webp differ
diff --git a/assets/img/passport-core-guide-images/08.webp b/assets/img/passport-core-guide-images/08.webp
new file mode 100644
index 0000000..8997958
Binary files /dev/null and b/assets/img/passport-core-guide-images/08.webp differ
diff --git a/assets/img/passport-core-guide-images/09.webp b/assets/img/passport-core-guide-images/09.webp
new file mode 100644
index 0000000..5c420c6
Binary files /dev/null and b/assets/img/passport-core-guide-images/09.webp differ
diff --git a/assets/img/passport-core-guide-images/10.webp b/assets/img/passport-core-guide-images/10.webp
new file mode 100644
index 0000000..ef6fb5f
Binary files /dev/null and b/assets/img/passport-core-guide-images/10.webp differ
diff --git a/assets/img/passport-core-guide-images/11.webp b/assets/img/passport-core-guide-images/11.webp
new file mode 100644
index 0000000..eb2d1cb
Binary files /dev/null and b/assets/img/passport-core-guide-images/11.webp differ
diff --git a/assets/img/passport-core-guide-images/12.webp b/assets/img/passport-core-guide-images/12.webp
new file mode 100644
index 0000000..1c6ce5e
Binary files /dev/null and b/assets/img/passport-core-guide-images/12.webp differ
diff --git a/assets/img/passport-core-guide-images/13.webp b/assets/img/passport-core-guide-images/13.webp
new file mode 100644
index 0000000..79155db
Binary files /dev/null and b/assets/img/passport-core-guide-images/13.webp differ
diff --git a/assets/img/passport-core-guide-images/14.webp b/assets/img/passport-core-guide-images/14.webp
new file mode 100644
index 0000000..a0c6740
Binary files /dev/null and b/assets/img/passport-core-guide-images/14.webp differ
diff --git a/assets/img/passport-core-guide-images/15.webp b/assets/img/passport-core-guide-images/15.webp
new file mode 100644
index 0000000..e99a048
Binary files /dev/null and b/assets/img/passport-core-guide-images/15.webp differ
diff --git a/assets/img/passport-core-guide-images/16.webp b/assets/img/passport-core-guide-images/16.webp
new file mode 100644
index 0000000..8bfb9ae
Binary files /dev/null and b/assets/img/passport-core-guide-images/16.webp differ
diff --git a/assets/img/passport-core-guide-images/17.webp b/assets/img/passport-core-guide-images/17.webp
new file mode 100644
index 0000000..2fc0351
Binary files /dev/null and b/assets/img/passport-core-guide-images/17.webp differ
diff --git a/assets/img/passport-core-guide-images/18.webp b/assets/img/passport-core-guide-images/18.webp
new file mode 100644
index 0000000..1e580c4
Binary files /dev/null and b/assets/img/passport-core-guide-images/18.webp differ
diff --git a/assets/img/passport-core-guide-images/19.webp b/assets/img/passport-core-guide-images/19.webp
new file mode 100644
index 0000000..e333ec4
Binary files /dev/null and b/assets/img/passport-core-guide-images/19.webp differ
diff --git a/assets/img/passport-core-guide-images/20.webp b/assets/img/passport-core-guide-images/20.webp
new file mode 100644
index 0000000..71b48f0
Binary files /dev/null and b/assets/img/passport-core-guide-images/20.webp differ
diff --git a/assets/img/passport-core-guide-images/21.webp b/assets/img/passport-core-guide-images/21.webp
new file mode 100644
index 0000000..c5f3b6e
Binary files /dev/null and b/assets/img/passport-core-guide-images/21.webp differ
diff --git a/assets/img/passport-core-guide-images/22.webp b/assets/img/passport-core-guide-images/22.webp
new file mode 100644
index 0000000..6f2d046
Binary files /dev/null and b/assets/img/passport-core-guide-images/22.webp differ
diff --git a/assets/img/passport-core-guide-images/23.webp b/assets/img/passport-core-guide-images/23.webp
new file mode 100644
index 0000000..7476abf
Binary files /dev/null and b/assets/img/passport-core-guide-images/23.webp differ
diff --git a/assets/img/passport-core-guide-images/24.webp b/assets/img/passport-core-guide-images/24.webp
new file mode 100644
index 0000000..eff66ad
Binary files /dev/null and b/assets/img/passport-core-guide-images/24.webp differ
diff --git a/assets/img/passport-core-guide-images/25.webp b/assets/img/passport-core-guide-images/25.webp
new file mode 100644
index 0000000..af75e38
Binary files /dev/null and b/assets/img/passport-core-guide-images/25.webp differ
diff --git a/assets/img/passport-core-guide-images/26.webp b/assets/img/passport-core-guide-images/26.webp
new file mode 100644
index 0000000..5787949
Binary files /dev/null and b/assets/img/passport-core-guide-images/26.webp differ
diff --git a/assets/img/passport-core-guide-images/27.webp b/assets/img/passport-core-guide-images/27.webp
new file mode 100644
index 0000000..07d4b21
Binary files /dev/null and b/assets/img/passport-core-guide-images/27.webp differ
diff --git a/assets/img/passport-core-guide-images/28.webp b/assets/img/passport-core-guide-images/28.webp
new file mode 100644
index 0000000..cb66dee
Binary files /dev/null and b/assets/img/passport-core-guide-images/28.webp differ
diff --git a/assets/img/passport-core-guide-images/29.webp b/assets/img/passport-core-guide-images/29.webp
new file mode 100644
index 0000000..cae9e90
Binary files /dev/null and b/assets/img/passport-core-guide-images/29.webp differ
diff --git a/assets/img/passport-core-guide-images/30.webp b/assets/img/passport-core-guide-images/30.webp
new file mode 100644
index 0000000..136fd06
Binary files /dev/null and b/assets/img/passport-core-guide-images/30.webp differ
diff --git a/assets/img/passport-core-guide-images/31.webp b/assets/img/passport-core-guide-images/31.webp
new file mode 100644
index 0000000..e8ee46d
Binary files /dev/null and b/assets/img/passport-core-guide-images/31.webp differ
diff --git a/assets/img/passport-core-guide-images/32.webp b/assets/img/passport-core-guide-images/32.webp
new file mode 100644
index 0000000..e5f6398
Binary files /dev/null and b/assets/img/passport-core-guide-images/32.webp differ
diff --git a/assets/img/passport-core-guide-images/33.webp b/assets/img/passport-core-guide-images/33.webp
new file mode 100644
index 0000000..e3a0b4f
Binary files /dev/null and b/assets/img/passport-core-guide-images/33.webp differ
diff --git a/assets/img/passport-core-guide-images/34.webp b/assets/img/passport-core-guide-images/34.webp
new file mode 100644
index 0000000..6ecdfbf
Binary files /dev/null and b/assets/img/passport-core-guide-images/34.webp differ
diff --git a/assets/img/passport-core-guide-images/35.webp b/assets/img/passport-core-guide-images/35.webp
new file mode 100644
index 0000000..497b394
Binary files /dev/null and b/assets/img/passport-core-guide-images/35.webp differ
diff --git a/assets/img/passport-core-guide-images/36.webp b/assets/img/passport-core-guide-images/36.webp
new file mode 100644
index 0000000..e66d155
Binary files /dev/null and b/assets/img/passport-core-guide-images/36.webp differ
diff --git a/assets/img/passport-core-guide-images/37.webp b/assets/img/passport-core-guide-images/37.webp
new file mode 100644
index 0000000..fa70114
Binary files /dev/null and b/assets/img/passport-core-guide-images/37.webp differ
diff --git a/assets/img/passport-core-guide-images/38.webp b/assets/img/passport-core-guide-images/38.webp
new file mode 100644
index 0000000..378c3b9
Binary files /dev/null and b/assets/img/passport-core-guide-images/38.webp differ
diff --git a/assets/img/passport-core-guide-images/39.webp b/assets/img/passport-core-guide-images/39.webp
new file mode 100644
index 0000000..81f8362
Binary files /dev/null and b/assets/img/passport-core-guide-images/39.webp differ
diff --git a/assets/img/passport-core-guide-images/40.webp b/assets/img/passport-core-guide-images/40.webp
new file mode 100644
index 0000000..7711c07
Binary files /dev/null and b/assets/img/passport-core-guide-images/40.webp differ
diff --git a/assets/img/passport-core-guide-images/41.webp b/assets/img/passport-core-guide-images/41.webp
new file mode 100644
index 0000000..21b6b7f
Binary files /dev/null and b/assets/img/passport-core-guide-images/41.webp differ
diff --git a/assets/img/passport-core-guide-images/42.webp b/assets/img/passport-core-guide-images/42.webp
new file mode 100644
index 0000000..7ab332b
Binary files /dev/null and b/assets/img/passport-core-guide-images/42.webp differ
diff --git a/assets/img/passport-core-guide-images/43.webp b/assets/img/passport-core-guide-images/43.webp
new file mode 100644
index 0000000..10b9ff4
Binary files /dev/null and b/assets/img/passport-core-guide-images/43.webp differ
diff --git a/assets/img/passport-core-guide-images/44.webp b/assets/img/passport-core-guide-images/44.webp
new file mode 100644
index 0000000..66f73b2
Binary files /dev/null and b/assets/img/passport-core-guide-images/44.webp differ
diff --git a/assets/img/passport-core-guide-images/45.webp b/assets/img/passport-core-guide-images/45.webp
new file mode 100644
index 0000000..e21d752
Binary files /dev/null and b/assets/img/passport-core-guide-images/45.webp differ
diff --git a/assets/img/passport-core-guide-images/46.webp b/assets/img/passport-core-guide-images/46.webp
new file mode 100644
index 0000000..446b8ca
Binary files /dev/null and b/assets/img/passport-core-guide-images/46.webp differ
diff --git a/assets/img/passport-core-guide-images/47.webp b/assets/img/passport-core-guide-images/47.webp
new file mode 100644
index 0000000..f55f38b
Binary files /dev/null and b/assets/img/passport-core-guide-images/47.webp differ
diff --git a/assets/img/passport-core-guide-images/48.webp b/assets/img/passport-core-guide-images/48.webp
new file mode 100644
index 0000000..32ee269
Binary files /dev/null and b/assets/img/passport-core-guide-images/48.webp differ
diff --git a/assets/img/passport-core-guide-images/49.webp b/assets/img/passport-core-guide-images/49.webp
new file mode 100644
index 0000000..66fc9c0
Binary files /dev/null and b/assets/img/passport-core-guide-images/49.webp differ
diff --git a/assets/img/passport-core-guide-images/50.webp b/assets/img/passport-core-guide-images/50.webp
new file mode 100644
index 0000000..b7900bf
Binary files /dev/null and b/assets/img/passport-core-guide-images/50.webp differ
diff --git a/assets/img/passport-core-guide-images/51.webp b/assets/img/passport-core-guide-images/51.webp
new file mode 100644
index 0000000..46d764c
Binary files /dev/null and b/assets/img/passport-core-guide-images/51.webp differ
diff --git a/assets/img/passport-core-guide-images/52.webp b/assets/img/passport-core-guide-images/52.webp
new file mode 100644
index 0000000..7fe3a0c
Binary files /dev/null and b/assets/img/passport-core-guide-images/52.webp differ
diff --git a/assets/img/passport-core-guide-images/53.webp b/assets/img/passport-core-guide-images/53.webp
new file mode 100644
index 0000000..632f492
Binary files /dev/null and b/assets/img/passport-core-guide-images/53.webp differ
diff --git a/assets/img/passport-core-guide-images/54.webp b/assets/img/passport-core-guide-images/54.webp
new file mode 100644
index 0000000..1ffc4a8
Binary files /dev/null and b/assets/img/passport-core-guide-images/54.webp differ
diff --git a/assets/img/passport-core-guide-images/55.webp b/assets/img/passport-core-guide-images/55.webp
new file mode 100644
index 0000000..b8c0cd1
Binary files /dev/null and b/assets/img/passport-core-guide-images/55.webp differ
diff --git a/assets/img/passport-core-guide-images/56.webp b/assets/img/passport-core-guide-images/56.webp
new file mode 100644
index 0000000..79f7e87
Binary files /dev/null and b/assets/img/passport-core-guide-images/56.webp differ
diff --git a/assets/img/passport-core-guide-images/57.webp b/assets/img/passport-core-guide-images/57.webp
new file mode 100644
index 0000000..41829e7
Binary files /dev/null and b/assets/img/passport-core-guide-images/57.webp differ
diff --git a/assets/img/passport-core-guide-images/58.webp b/assets/img/passport-core-guide-images/58.webp
new file mode 100644
index 0000000..ef59284
Binary files /dev/null and b/assets/img/passport-core-guide-images/58.webp differ
diff --git a/assets/img/passport-core-guide-images/59.webp b/assets/img/passport-core-guide-images/59.webp
new file mode 100644
index 0000000..95b3ba3
Binary files /dev/null and b/assets/img/passport-core-guide-images/59.webp differ
diff --git a/assets/img/passport-core-guide-images/60.webp b/assets/img/passport-core-guide-images/60.webp
new file mode 100644
index 0000000..ea2c7fb
Binary files /dev/null and b/assets/img/passport-core-guide-images/60.webp differ
diff --git a/assets/img/passport-core-guide-images/61.webp b/assets/img/passport-core-guide-images/61.webp
new file mode 100644
index 0000000..c81f988
Binary files /dev/null and b/assets/img/passport-core-guide-images/61.webp differ
diff --git a/assets/img/passport-core-guide-images/62.webp b/assets/img/passport-core-guide-images/62.webp
new file mode 100644
index 0000000..0ee4edb
Binary files /dev/null and b/assets/img/passport-core-guide-images/62.webp differ
diff --git a/assets/img/passport-core-guide-images/63.webp b/assets/img/passport-core-guide-images/63.webp
new file mode 100644
index 0000000..6ac0ba2
Binary files /dev/null and b/assets/img/passport-core-guide-images/63.webp differ
diff --git a/assets/img/passport-core-guide-images/64.webp b/assets/img/passport-core-guide-images/64.webp
new file mode 100644
index 0000000..d904f0f
Binary files /dev/null and b/assets/img/passport-core-guide-images/64.webp differ
diff --git a/assets/img/passport-core-guide-images/65.webp b/assets/img/passport-core-guide-images/65.webp
new file mode 100644
index 0000000..01a88c1
Binary files /dev/null and b/assets/img/passport-core-guide-images/65.webp differ
diff --git a/assets/img/passport-core-guide-images/66.webp b/assets/img/passport-core-guide-images/66.webp
new file mode 100644
index 0000000..2b9bb4a
Binary files /dev/null and b/assets/img/passport-core-guide-images/66.webp differ
diff --git a/assets/img/passport-core-guide-images/67.webp b/assets/img/passport-core-guide-images/67.webp
new file mode 100644
index 0000000..fe8a385
Binary files /dev/null and b/assets/img/passport-core-guide-images/67.webp differ
diff --git a/assets/img/passport-core-guide-images/68.webp b/assets/img/passport-core-guide-images/68.webp
new file mode 100644
index 0000000..f7949ed
Binary files /dev/null and b/assets/img/passport-core-guide-images/68.webp differ
diff --git a/assets/img/passport-core-guide-images/69.webp b/assets/img/passport-core-guide-images/69.webp
new file mode 100644
index 0000000..24b5f77
Binary files /dev/null and b/assets/img/passport-core-guide-images/69.webp differ
diff --git a/assets/img/passport-core-guide-images/70.webp b/assets/img/passport-core-guide-images/70.webp
new file mode 100644
index 0000000..7d8f05e
Binary files /dev/null and b/assets/img/passport-core-guide-images/70.webp differ
diff --git a/assets/img/passport-core-guide-images/71.webp b/assets/img/passport-core-guide-images/71.webp
new file mode 100644
index 0000000..d711dee
Binary files /dev/null and b/assets/img/passport-core-guide-images/71.webp differ
diff --git a/assets/img/passport-core-guide-images/72.webp b/assets/img/passport-core-guide-images/72.webp
new file mode 100644
index 0000000..c0423d3
Binary files /dev/null and b/assets/img/passport-core-guide-images/72.webp differ
diff --git a/assets/img/passport-core-guide-images/73.webp b/assets/img/passport-core-guide-images/73.webp
new file mode 100644
index 0000000..a99b7cb
Binary files /dev/null and b/assets/img/passport-core-guide-images/73.webp differ
diff --git a/assets/img/passport-core-guide-images/74.webp b/assets/img/passport-core-guide-images/74.webp
new file mode 100644
index 0000000..f1e85ba
Binary files /dev/null and b/assets/img/passport-core-guide-images/74.webp differ
diff --git a/assets/img/passport-core-guide-images/75.webp b/assets/img/passport-core-guide-images/75.webp
new file mode 100644
index 0000000..64f209f
Binary files /dev/null and b/assets/img/passport-core-guide-images/75.webp differ
diff --git a/assets/img/passport-core-guide-images/76.webp b/assets/img/passport-core-guide-images/76.webp
new file mode 100644
index 0000000..1b11979
Binary files /dev/null and b/assets/img/passport-core-guide-images/76.webp differ
diff --git a/assets/img/passport-core-guide-images/77.webp b/assets/img/passport-core-guide-images/77.webp
new file mode 100644
index 0000000..527a15c
Binary files /dev/null and b/assets/img/passport-core-guide-images/77.webp differ
diff --git a/assets/img/passport-core-guide-images/78.webp b/assets/img/passport-core-guide-images/78.webp
new file mode 100644
index 0000000..05db9a2
Binary files /dev/null and b/assets/img/passport-core-guide-images/78.webp differ
diff --git a/assets/img/passport-core-guide-images/79.webp b/assets/img/passport-core-guide-images/79.webp
new file mode 100644
index 0000000..b96319f
Binary files /dev/null and b/assets/img/passport-core-guide-images/79.webp differ
diff --git a/assets/img/passport-core-guide-images/80.webp b/assets/img/passport-core-guide-images/80.webp
new file mode 100644
index 0000000..aef684e
Binary files /dev/null and b/assets/img/passport-core-guide-images/80.webp differ
diff --git a/assets/img/passport-core-guide-images/81.webp b/assets/img/passport-core-guide-images/81.webp
new file mode 100644
index 0000000..afb261a
Binary files /dev/null and b/assets/img/passport-core-guide-images/81.webp differ
diff --git a/assets/img/passport-core-guide-images/82.webp b/assets/img/passport-core-guide-images/82.webp
new file mode 100644
index 0000000..a667a78
Binary files /dev/null and b/assets/img/passport-core-guide-images/82.webp differ
diff --git a/assets/img/passport-core-guide-images/83.webp b/assets/img/passport-core-guide-images/83.webp
new file mode 100644
index 0000000..66cb988
Binary files /dev/null and b/assets/img/passport-core-guide-images/83.webp differ
diff --git a/assets/img/passport-core-guide-images/84.webp b/assets/img/passport-core-guide-images/84.webp
new file mode 100644
index 0000000..4be4d07
Binary files /dev/null and b/assets/img/passport-core-guide-images/84.webp differ
diff --git a/assets/img/passport-core-guide-images/85.webp b/assets/img/passport-core-guide-images/85.webp
new file mode 100644
index 0000000..59d2cb8
Binary files /dev/null and b/assets/img/passport-core-guide-images/85.webp differ
diff --git a/assets/img/passport-core-guide-images/86.webp b/assets/img/passport-core-guide-images/86.webp
new file mode 100644
index 0000000..3778495
Binary files /dev/null and b/assets/img/passport-core-guide-images/86.webp differ
diff --git a/assets/img/passport-core-guide-images/87.webp b/assets/img/passport-core-guide-images/87.webp
new file mode 100644
index 0000000..e45e99c
Binary files /dev/null and b/assets/img/passport-core-guide-images/87.webp differ
diff --git a/assets/img/passport-core-guide-images/88.webp b/assets/img/passport-core-guide-images/88.webp
new file mode 100644
index 0000000..678356b
Binary files /dev/null and b/assets/img/passport-core-guide-images/88.webp differ
diff --git a/assets/img/passport-core-guide-images/89.webp b/assets/img/passport-core-guide-images/89.webp
new file mode 100644
index 0000000..de5a7e8
Binary files /dev/null and b/assets/img/passport-core-guide-images/89.webp differ
diff --git a/assets/img/passport-core-guide-images/90.webp b/assets/img/passport-core-guide-images/90.webp
new file mode 100644
index 0000000..40bb63c
Binary files /dev/null and b/assets/img/passport-core-guide-images/90.webp differ
diff --git a/assets/img/passport-core-guide-images/cover.webp b/assets/img/passport-core-guide-images/cover.webp
new file mode 100644
index 0000000..5f84d93
Binary files /dev/null and b/assets/img/passport-core-guide-images/cover.webp differ
diff --git a/assets/img/passport-core-guide-images/header.png b/assets/img/passport-core-guide-images/header.png
new file mode 100644
index 0000000..7564fa1
Binary files /dev/null and b/assets/img/passport-core-guide-images/header.png differ
diff --git a/assets/img/passport-core-guide-images/header.webp b/assets/img/passport-core-guide-images/header.webp
new file mode 100644
index 0000000..eb44fcd
Binary files /dev/null and b/assets/img/passport-core-guide-images/header.webp differ
diff --git a/assets/img/passport-core-guide-images/qr-code_Dark.png b/assets/img/passport-core-guide-images/qr-code_Dark.png
new file mode 100644
index 0000000..8ea6496
Binary files /dev/null and b/assets/img/passport-core-guide-images/qr-code_Dark.png differ
diff --git a/assets/img/payjoin/1.webp b/assets/img/payjoin/1.webp
new file mode 100644
index 0000000..738ff79
Binary files /dev/null and b/assets/img/payjoin/1.webp differ
diff --git a/assets/img/payjoin/2.webp b/assets/img/payjoin/2.webp
new file mode 100644
index 0000000..c32e4eb
Binary files /dev/null and b/assets/img/payjoin/2.webp differ
diff --git a/assets/img/payjoin/3.webp b/assets/img/payjoin/3.webp
new file mode 100644
index 0000000..faa71f0
Binary files /dev/null and b/assets/img/payjoin/3.webp differ
diff --git a/assets/img/payjoin/cover.webp b/assets/img/payjoin/cover.webp
new file mode 100644
index 0000000..eece50c
Binary files /dev/null and b/assets/img/payjoin/cover.webp differ
diff --git a/assets/img/payjoin/logo.webp b/assets/img/payjoin/logo.webp
new file mode 100644
index 0000000..bb093a2
Binary files /dev/null and b/assets/img/payjoin/logo.webp differ
diff --git a/assets/img/stonewallx2/01.webp b/assets/img/stonewallx2/01.webp
new file mode 100644
index 0000000..4bae016
Binary files /dev/null and b/assets/img/stonewallx2/01.webp differ
diff --git a/assets/img/stonewallx2/02.webp b/assets/img/stonewallx2/02.webp
new file mode 100644
index 0000000..fb9830b
Binary files /dev/null and b/assets/img/stonewallx2/02.webp differ
diff --git a/assets/img/stonewallx2/03.webp b/assets/img/stonewallx2/03.webp
new file mode 100644
index 0000000..514ec43
Binary files /dev/null and b/assets/img/stonewallx2/03.webp differ
diff --git a/assets/img/stonewallx2/04.webp b/assets/img/stonewallx2/04.webp
new file mode 100644
index 0000000..968dd49
Binary files /dev/null and b/assets/img/stonewallx2/04.webp differ
diff --git a/assets/img/stonewallx2/05.webp b/assets/img/stonewallx2/05.webp
new file mode 100644
index 0000000..cf04f30
Binary files /dev/null and b/assets/img/stonewallx2/05.webp differ
diff --git a/assets/img/stonewallx2/06.webp b/assets/img/stonewallx2/06.webp
new file mode 100644
index 0000000..829f977
Binary files /dev/null and b/assets/img/stonewallx2/06.webp differ
diff --git a/assets/img/stonewallx2/07.webp b/assets/img/stonewallx2/07.webp
new file mode 100644
index 0000000..1060e2e
Binary files /dev/null and b/assets/img/stonewallx2/07.webp differ
diff --git a/assets/img/stonewallx2/08.webp b/assets/img/stonewallx2/08.webp
new file mode 100644
index 0000000..f469d51
Binary files /dev/null and b/assets/img/stonewallx2/08.webp differ
diff --git a/assets/img/stonewallx2/09.webp b/assets/img/stonewallx2/09.webp
new file mode 100644
index 0000000..3c1f390
Binary files /dev/null and b/assets/img/stonewallx2/09.webp differ
diff --git a/assets/img/stonewallx2/10.webp b/assets/img/stonewallx2/10.webp
new file mode 100644
index 0000000..ea03848
Binary files /dev/null and b/assets/img/stonewallx2/10.webp differ
diff --git a/assets/img/stonewallx2/11.webp b/assets/img/stonewallx2/11.webp
new file mode 100644
index 0000000..74c90ff
Binary files /dev/null and b/assets/img/stonewallx2/11.webp differ
diff --git a/assets/img/stonewallx2/12.webp b/assets/img/stonewallx2/12.webp
new file mode 100644
index 0000000..8b7c464
Binary files /dev/null and b/assets/img/stonewallx2/12.webp differ
diff --git a/assets/img/stonewallx2/13.webp b/assets/img/stonewallx2/13.webp
new file mode 100644
index 0000000..c812774
Binary files /dev/null and b/assets/img/stonewallx2/13.webp differ
diff --git a/assets/img/stonewallx2/14.webp b/assets/img/stonewallx2/14.webp
new file mode 100644
index 0000000..b9e4541
Binary files /dev/null and b/assets/img/stonewallx2/14.webp differ
diff --git a/assets/img/stonewallx2/15.webp b/assets/img/stonewallx2/15.webp
new file mode 100644
index 0000000..7eb847a
Binary files /dev/null and b/assets/img/stonewallx2/15.webp differ
diff --git a/assets/img/stonewallx2/16.webp b/assets/img/stonewallx2/16.webp
new file mode 100644
index 0000000..4eff2f9
Binary files /dev/null and b/assets/img/stonewallx2/16.webp differ
diff --git a/assets/img/stonewallx2/17.webp b/assets/img/stonewallx2/17.webp
new file mode 100644
index 0000000..9b4925e
Binary files /dev/null and b/assets/img/stonewallx2/17.webp differ
diff --git a/assets/img/stonewallx2/18.webp b/assets/img/stonewallx2/18.webp
new file mode 100644
index 0000000..aa5f59b
Binary files /dev/null and b/assets/img/stonewallx2/18.webp differ
diff --git a/assets/img/stonewallx2/19.webp b/assets/img/stonewallx2/19.webp
new file mode 100644
index 0000000..d0fff41
Binary files /dev/null and b/assets/img/stonewallx2/19.webp differ
diff --git a/assets/img/stonewallx2/20.webp b/assets/img/stonewallx2/20.webp
new file mode 100644
index 0000000..1b0ca41
Binary files /dev/null and b/assets/img/stonewallx2/20.webp differ
diff --git a/assets/img/stonewallx2/21.webp b/assets/img/stonewallx2/21.webp
new file mode 100644
index 0000000..1513b5c
Binary files /dev/null and b/assets/img/stonewallx2/21.webp differ
diff --git a/assets/img/stonewallx2/22.webp b/assets/img/stonewallx2/22.webp
new file mode 100644
index 0000000..da61658
Binary files /dev/null and b/assets/img/stonewallx2/22.webp differ
diff --git a/assets/img/stonewallx2/23.webp b/assets/img/stonewallx2/23.webp
new file mode 100644
index 0000000..356a326
Binary files /dev/null and b/assets/img/stonewallx2/23.webp differ
diff --git a/assets/img/stonewallx2/24.webp b/assets/img/stonewallx2/24.webp
new file mode 100644
index 0000000..6c448e0
Binary files /dev/null and b/assets/img/stonewallx2/24.webp differ
diff --git a/assets/img/stonewallx2/e.png b/assets/img/stonewallx2/e.png
new file mode 100644
index 0000000..3a49c92
Binary files /dev/null and b/assets/img/stonewallx2/e.png differ
diff --git a/assets/img/vanilla-dojo-guide-images/01.webp b/assets/img/vanilla-dojo-guide-images/01.webp
new file mode 100644
index 0000000..6987030
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/01.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/02.webp b/assets/img/vanilla-dojo-guide-images/02.webp
new file mode 100644
index 0000000..acff494
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/02.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/03.webp b/assets/img/vanilla-dojo-guide-images/03.webp
new file mode 100644
index 0000000..f08f3f0
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/03.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/04.webp b/assets/img/vanilla-dojo-guide-images/04.webp
new file mode 100644
index 0000000..08effa7
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/04.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/05.webp b/assets/img/vanilla-dojo-guide-images/05.webp
new file mode 100644
index 0000000..911df3f
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/05.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/06.webp b/assets/img/vanilla-dojo-guide-images/06.webp
new file mode 100644
index 0000000..d74ad2d
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/06.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/07.webp b/assets/img/vanilla-dojo-guide-images/07.webp
new file mode 100644
index 0000000..5cc5568
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/07.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/08.webp b/assets/img/vanilla-dojo-guide-images/08.webp
new file mode 100644
index 0000000..6419597
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/08.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/09.webp b/assets/img/vanilla-dojo-guide-images/09.webp
new file mode 100644
index 0000000..3097d6d
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/09.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/10.webp b/assets/img/vanilla-dojo-guide-images/10.webp
new file mode 100644
index 0000000..4790f47
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/10.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/11.webp b/assets/img/vanilla-dojo-guide-images/11.webp
new file mode 100644
index 0000000..803f90c
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/11.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/12.webp b/assets/img/vanilla-dojo-guide-images/12.webp
new file mode 100644
index 0000000..cf40a7e
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/12.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/13.webp b/assets/img/vanilla-dojo-guide-images/13.webp
new file mode 100644
index 0000000..1e2ee2a
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/13.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/14.webp b/assets/img/vanilla-dojo-guide-images/14.webp
new file mode 100644
index 0000000..3fdb5c9
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/14.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/15.webp b/assets/img/vanilla-dojo-guide-images/15.webp
new file mode 100644
index 0000000..c310ffb
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/15.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/16.webp b/assets/img/vanilla-dojo-guide-images/16.webp
new file mode 100644
index 0000000..426b415
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/16.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/17.webp b/assets/img/vanilla-dojo-guide-images/17.webp
new file mode 100644
index 0000000..9d91908
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/17.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/18.webp b/assets/img/vanilla-dojo-guide-images/18.webp
new file mode 100644
index 0000000..008d66a
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/18.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/19.webp b/assets/img/vanilla-dojo-guide-images/19.webp
new file mode 100644
index 0000000..d9f418b
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/19.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/20.webp b/assets/img/vanilla-dojo-guide-images/20.webp
new file mode 100644
index 0000000..f3c56d6
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/20.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/21.webp b/assets/img/vanilla-dojo-guide-images/21.webp
new file mode 100644
index 0000000..a793489
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/21.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/22.webp b/assets/img/vanilla-dojo-guide-images/22.webp
new file mode 100644
index 0000000..83d0acf
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/22.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/23.webp b/assets/img/vanilla-dojo-guide-images/23.webp
new file mode 100644
index 0000000..ee0b3e6
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/23.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/24.webp b/assets/img/vanilla-dojo-guide-images/24.webp
new file mode 100644
index 0000000..99e111e
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/24.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/25.webp b/assets/img/vanilla-dojo-guide-images/25.webp
new file mode 100644
index 0000000..b57b42b
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/25.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/26.webp b/assets/img/vanilla-dojo-guide-images/26.webp
new file mode 100644
index 0000000..34dbaf2
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/26.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/27.webp b/assets/img/vanilla-dojo-guide-images/27.webp
new file mode 100644
index 0000000..679747e
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/27.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/28.webp b/assets/img/vanilla-dojo-guide-images/28.webp
new file mode 100644
index 0000000..39556d6
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/28.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/29.webp b/assets/img/vanilla-dojo-guide-images/29.webp
new file mode 100644
index 0000000..e1c47cd
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/29.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/30.webp b/assets/img/vanilla-dojo-guide-images/30.webp
new file mode 100644
index 0000000..553ff3b
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/30.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/31.webp b/assets/img/vanilla-dojo-guide-images/31.webp
new file mode 100644
index 0000000..f0bcf38
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/31.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/32.webp b/assets/img/vanilla-dojo-guide-images/32.webp
new file mode 100644
index 0000000..00cc24f
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/32.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/33.webp b/assets/img/vanilla-dojo-guide-images/33.webp
new file mode 100644
index 0000000..2a3b318
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/33.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/34.webp b/assets/img/vanilla-dojo-guide-images/34.webp
new file mode 100644
index 0000000..7370063
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/34.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/35.webp b/assets/img/vanilla-dojo-guide-images/35.webp
new file mode 100644
index 0000000..2be3ef1
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/35.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/36.webp b/assets/img/vanilla-dojo-guide-images/36.webp
new file mode 100644
index 0000000..52802bd
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/36.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/37.webp b/assets/img/vanilla-dojo-guide-images/37.webp
new file mode 100644
index 0000000..2c13368
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/37.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/38.webp b/assets/img/vanilla-dojo-guide-images/38.webp
new file mode 100644
index 0000000..e6220d2
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/38.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/39.webp b/assets/img/vanilla-dojo-guide-images/39.webp
new file mode 100644
index 0000000..4f5e0b8
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/39.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/40.webp b/assets/img/vanilla-dojo-guide-images/40.webp
new file mode 100644
index 0000000..a5775a6
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/40.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/41.webp b/assets/img/vanilla-dojo-guide-images/41.webp
new file mode 100644
index 0000000..07e8b73
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/41.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/42.webp b/assets/img/vanilla-dojo-guide-images/42.webp
new file mode 100644
index 0000000..39600be
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/42.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/43.webp b/assets/img/vanilla-dojo-guide-images/43.webp
new file mode 100644
index 0000000..76ad313
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/43.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/44.webp b/assets/img/vanilla-dojo-guide-images/44.webp
new file mode 100644
index 0000000..f6ececf
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/44.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/45.webp b/assets/img/vanilla-dojo-guide-images/45.webp
new file mode 100644
index 0000000..08890d7
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/45.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/46.webp b/assets/img/vanilla-dojo-guide-images/46.webp
new file mode 100644
index 0000000..18f40c0
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/46.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/47.webp b/assets/img/vanilla-dojo-guide-images/47.webp
new file mode 100644
index 0000000..4e88b62
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/47.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/cover.webp b/assets/img/vanilla-dojo-guide-images/cover.webp
new file mode 100644
index 0000000..398b4fb
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/cover.webp differ
diff --git a/assets/img/vanilla-dojo-guide-images/header.png b/assets/img/vanilla-dojo-guide-images/header.png
new file mode 100644
index 0000000..b6bf4ad
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/header.png differ
diff --git a/assets/img/vanilla-dojo-guide-images/logo.webp b/assets/img/vanilla-dojo-guide-images/logo.webp
new file mode 100644
index 0000000..7104b96
Binary files /dev/null and b/assets/img/vanilla-dojo-guide-images/logo.webp differ
diff --git a/passport-core-advanced.md b/passport-core-advanced.md
new file mode 100644
index 0000000..3441d49
--- /dev/null
+++ b/passport-core-advanced.md
@@ -0,0 +1,533 @@
+---
+layout: page
+title: Advanced Passport Core Setup Guide
+subtitle: How to Setup and Use the Passport Core By Foundation Devices manually alongside Sparrow
+---
+
+
+ Unboxing |
+ Download Envoy |
+ Start |
+ PIN |
+ Firmware |
+ Create Wallet |
+ Envoy Setup |
+ Menu |
+ Receive |
+ Send
+
+ Original Author
+
+
+
+
+
+
+
+The Passport is a Bitcoin-only hardware wallet, designed by Foundation Devices, an American company founded in April 2020 in Boston.
+
+The Passport "*Batch 2*" presented in this tutorial is the successor to the "*[Founder's Edition](https://bitcoiner.guide/passport)*". It stands out with its premium design, high-definition color screen, and ergonomic physical keyboard. It operates in "*Air-Gap*" mode, ensuring that your wallet's private keys remain completely isolated, with communication possible via a MicroSD card or QR codes. The device is equipped with a removable, rechargeable Nokia BL-5C battery with a capacity of 1200 mAh. This non-proprietary battery can be easily replaced, as the BL-5C model is widely available in stores.
+
+💡 **Update:** Since March 2025, the name of this hardware wallet is no longer "Passport" or "Passport V2", but "Passport Core".
+
+As for connectivity, the Passport is equipped with a MicroSD port, a USB-C port for charging, and a rear camera for scanning QR codes.
+
+In terms of security, the Passport incorporates a secure element, and the device's source code is entirely open-source. It offers all the features expected of a good Bitcoin hardware wallet. Note that the Passport does not yet support miniscript, but this feature is planned for the second quarter of 2025.
+
+Priced at USD 199, the Passport is positioned as a high-end hardware wallet, competing with the Coldcard Q, Jade Plus, Tezor Safe 5 and Ledger's top-of-the-range models.
+
+
+
+To manage your secure wallet on a Passport, you have several options. This hardware wallet is compatible with the majority of wallet management software on the market, including Sparrow Wallet, Specter Desktop, Nunchuk, Keeper, among others. In this tutorial, we'll learn how to use it with Sparrow Wallet.
+
+If you're a beginner, the easiest option is to use your Passport with the native Envoy application, developed by Foundation. To find out how to use Envoy with your Passport, check out this other [tutorial](https://bitcoiner.guide/passport-core).
+
+## Unboxing the Passport
+
+When you receive your Passport, make sure the box and seal on the carton are intact to confirm that the package has not been opened. A software verification of the device's authenticity and integrity will also be carried out when it is set up.
+
+
+
+> If the box or seal shows signs of tampering, stop setup and contact the seller to avoid using a compromised device.
+{: .prompt-danger }
+
+Box contents include :
+
+- Passport;
+- A piece of cardboard to write down your mnemonic phrase;
+- A USB-C cable for charging ;
+- MicroSD card ;
+- Two MicroSD to Lightning or USB-C adapters ;
+- Stickers.
+
+On the device, you will find :
+
+- A keyboard (1) ;
+- USB-C port (2);
+- A delete button (3);
+- A return button (4) ;
+- A confirmation button (5);
+- Directional pad (6);
+- On/off button (7);
+- A status indicator (8);
+- MicroSD port (9) ;
+- A button to change mode aA1 (10) ;
+- A rear camera.
+
+
+
+## Starting Passport
+
+Press the on/off button on the side of the unit to start it up.
+
+
+
+Press the confirmation button to access the next menu.
+
+
+
+In this tutorial, we'll use Sparrow Wallet to manage the Passport-secured wallet. Select "*Manual Setup*".
+
+
+
+Then accept the terms of use.
+
+
+
+The next step is to check your device. This confirms the authenticity of your Passport and ensures that it has not been tampered with in transit. You will be asked to scan a QR code.
+
+
+
+Go to [the official verification site](https://validate.foundationdevices.com/) and select "*Passport*".
+
+
+
+Use your Passport's camera to scan the QR code displayed on the site.
+
+
+
+Your device will then display 4 words.
+
+
+
+Enter these words on the website to confirm the authenticity of your Passport and click on "*Validate*".
+
+
+
+If the message "*Passed*" appears, your hardware wallet is genuine. You can now use it to secure a Bitcoin wallet.
+
+
+
+Confirm the test result on your Passport.
+
+
+
+> If validation fails, do not proceed — contact Foundation support. A compromised device can lead to fund loss.
+{: .prompt-danger }
+
+## Setting the PIN code
+
+Next comes the PIN code step. The PIN code unlocks your Passport. It therefore provides protection against unauthorized physical access.
+
+
+
+> The PIN does not derive keys. With the mnemonic (and any passphrase), funds are recoverable even without the PIN.
+{: .prompt-info }
+
+We recommend choosing a PIN code that is as random as possible. Also, be sure to save this code in a separate place from where your Passport is stored (e.g. in a password manager).
+
+You can choose a PIN code between 6 and 12 digits. I advise you to make it as long as possible.
+
+Use the keypad to enter your PIN numbers. When you've finished, click on the confirmation button.
+
+
+
+Confirm your PIN a second time.
+
+
+
+Your PIN code has been registered.
+
+
+
+## Update Passport firmware
+
+Your hardware wallet suggests that you update its firmware. I recommend that you update immediately to benefit from the improvements and fixes brought by the latest versions. To continue, click on the confirmation button on the right.
+
+
+
+Your Passport is ready to receive the new firmware via a MicroSD card.
+
+
+
+To do this, use the MicroSD card included in your Passport box (or another one), and insert it into your computer. Download the latest firmware version from [the Foundation documentation site](https://docs.foundation.xyz/firmware-updates/passport/) or [their GitHub repository](https://github.com/Foundation-Devices/passport2/releases).
+
+
+
+> Verify firmware signatures and hashes before installing; never install unverified firmware.
+{: .prompt-warning }
+
+Before installing it on your device, we strongly advise you to check the authenticity and integrity of the downloaded firmware. If you need help with this, consult this [tutorial](https://bitcoiner.guide/sparrow) for a demonstration on verifying sparrow wallet.
+
+After checking the`.bin` file, place it on your MicroSD, then insert it into the Passport. The Passport file explorer will open. Select the file`vN.N.N-passport.bin`.
+
+
+
+Click on "*Select*".
+
+
+
+Then confirm firmware installation.
+
+
+
+Please wait for the update to complete.
+
+
+
+Once the update is complete, enter your PIN code to unlock the device and continue configuration.
+
+
+
+> If you already have a wallet on Passport, ensure your mnemonic (and any passphrase) is backed up and tested before updating — a failed update without backups can mean permanent loss.
+{: .prompt-danger }
+
+## Create a new Bitcoin wallet
+
+Now it's time to create a new Bitcoin wallet. Click on the confirmation button.
+
+
+
+To create a new wallet, click on "*Create New Seed*".
+
+
+
+You can choose between a 12- or 24-word mnemonic phrase. The security offered by both options is similar, so you can opt for the one that's easiest to save, i.e. 12 words.
+
+
+
+Click on "*Continue*".
+
+
+
+Your Passport will now generate your "*Backup Code*". This is a series of numbers that can be used to decrypt a backup of your wallet stored on a MicroSD. This backup system, specific to Foundation devices, constitutes an additional backup to your mnemonic phrase, but is not compatible with other Bitcoin software.
+
+If you decide to use this "*Backup Code*", be sure to keep it in a different location from your MicroSD containing the encrypted backup of your wallet. You may, however, choose not to use this system if you feel that a good backup of your mnemonic phrase is sufficient.
+
+
+
+> The Backup Code is device‑specific and not compatible with other wallet software; store it separately from the MicroSD containing the encrypted backup.
+{: .prompt-warning }
+
+Enter your "*Backup Code*" to confirm that you have saved it correctly.
+
+
+
+If a MicroSD has been inserted, the encrypted backup of your wallet has been saved there.
+
+
+
+Your Passport will display your 12-word mnemonic phrase.
+
+> Your mnemonic grants full, unrestricted access to your bitcoin. Never digitize it (no photos, files, cloud). Anyone with the words can steal your funds.
+{: .prompt-danger }
+
+The 12-word phrase restores access to your bitcoins in the event of loss, theft or breakage of your Passport. It is therefore very important to save it carefully and store it in a secure location.
+
+You can write it on the cardboard supplied in the box, or for added security, I recommend engraving it on a stainless steel base to protect it from fire, flood or collapse.
+
+Click on the confirmation button to see your mnemonic phrase.
+
+
+
+For more information on the proper way to save and manage your mnemonic phrase, I highly recommend following this other tutorial, especially if you're a [beginner](https://planb.network/tutorials/wallet/backup/backup-mnemonic-22c0ddfa-fb9f-4e3a-96f9-46e2a7954270):
+
+of course, you must never share these words on the Internet, as I'm doing in this tutorial. This sample wallet will be used only on Testnet and will be deleted at the end of the tutorial.
+
+Make a physical backup of this sentence.
+
+
+
+Your Passport has been successfully configured. Click on the confirmation button to continue.
+
+
+
+## Menu discovery
+
+Your Passport interface has three main menus:
+
+- "*Account*";
+- "*More*";
+- "*Settings*".
+
+To navigate between these menus, use the left and right arrows on the directional pad.
+
+### *Account*" menu
+
+In the "*Account*" menu, you'll find the main features of your Bitcoin wallet. You can sign a transaction either via the camera or via the MicroSD port.
+
+
+
+The "*Account Tools*" submenu offers options such as verifying an address, signing a message, or consulting the addresses in your wallet.
+
+
+
+In the "*Manage Account*" submenu, you can connect your Bitcoin wallet to a wallet management software (which we'll cover in the next steps of this tutorial), or view and rename your account.
+
+
+
+### More" menu
+
+In the "*More*" menu, you can create a new account in your wallet, linked to the same mnemonic phrase.
+
+
+
+You can also enter a BIP39 passphrase (see next section) or use a temporary seed.
+
+
+
+### Settings" menu
+
+In the "*Settings*" menu, you'll find all your wallet and device settings.
+
+
+
+The "*Device*" submenu gives you options for customizing screen brightness, setting the delay before auto-lock, changing the PIN code, or renaming the device.
+
+
+
+The "*Backup*" submenu lets you export your encrypted wallet backup, check the validity of an existing backup, or look up your "*Backup Code*" again.
+
+
+
+The "*Firmware*" sub-menu is for updating your Passport's firmware. We recommend that you perform these updates regularly to benefit from the latest fixes and features.
+
+
+
+The "*Bitcoin*" sub-menu lets you change the unit displayed (BTC or satoshis), manage a possible Multisig wallet, or switch to "*Testnet*" mode.
+
+
+
+In "*Advanced*", you can view the words of your mnemonic phrase, perform actions on the inserted MicroSD, reset your Passport to factory settings, or perform an authenticity check, as performed previously.
+
+
+
+You can activate "*Security Words*", a feature that adds a layer of security by displaying two specific words when unlocking the device after entering the first four digits of the PIN code. These words, to be saved during configuration, ensure that the Passport has not been replaced or tampered with.
+
+
+
+> Enable Security Words and verify them on each unlock. If they ever differ from your saved words, stop using the device.
+{: .prompt-warning }
+
+Finally, the "*Extensions*" sub-menu lets you activate functions specific to certain uses of the appliance, such as the Whirlpool coinjoin protocol.
+
+
+
+## Add a BIP39 passphrase
+
+Before continuing, if you wish, you can add a BIP39 passphrase. A BIP39 passphrase is an optional password that you can choose freely, and which is added to your mnemonic phrase to reinforce wallet security. With this feature enabled, access to your Bitcoin wallet will require both the mnemonic and the passphrase. Without either, it would be impossible to recover the wallet.
+
+Before configuring this option on your Passport, it is strongly recommended that you WATCH [THIS](https://www.youtube.com/watch?v=l1ISySyy72Y) passphrase overview from BTCSESSIONS. It’s critical: misunderstanding passphrase usage can cause irreversible loss of funds.
+
+To activate it, go to the "*More*" menu and click on "*Enter Passphrase*".
+
+
+
+Enter your passphrase using the aA1 keypad, and make sure you save it one or more times on physical media (paper or metal). For the example, I'm using a very weak passphrase, but you should choose a strong, random passphrase, including all character types and sufficiently long (like a strong password).
+
+
+
+Please note that BIP39 passphrases are case- and typo-sensitive. If you enter a passphrase slightly different from the one initially configured, Passport will not report an error, but will derive another set of cryptographic keys that will not be those in your initial wallet.
+
+It's therefore important, when configuring, to note down somewhere the master key fingerprint you'll be given in the next step. For example, with my passphrase`Plan B Network`, my master key fingerprint is`745D526B`.
+
+
+
+> Losing or mistyping your passphrase is unrecoverable and creates a different wallet. Back it up physically and test it.
+{: .prompt-warning }
+
+Each time you unlock your Passport, you'll need to return to this menu to enter your passphrase and apply it to your wallet. Passport does not save the passphrase.
+
+Each time you unlock, after writing down the passphrase, check on this confirmation screen that the fingerprint given is the same as the one you wrote down during configuration. If it is, your passphrase is correct and you are accessing the correct Bitcoin wallet. If it's not, you're on the wrong wallet and need to try again, taking care not to make any input errors.
+
+> Record the fingerprint for your passphrase‑applied wallet and verify it on each use to catch entry mistakes.
+{: .prompt-tip }
+
+Before you receive your first bitcoins on your wallet, **I strongly advise you to perform an empty recovery test**. Make a note of some reference information, such as your xpub or first receiving address, then delete your wallet on the Passport while it's still empty (`Settings -> Advanced -> Erase Passport`). Then try to restore your wallet using your paper backups of the mnemonic phrase and any passphrase. Check that the cookie information generated after the restore matches the one you originally wrote down. If it does, you can rest assured that your paper backups are reliable.
+
+
+
+> Do a test restore before depositing funds to ensure your backups can recover the same wallet (match xpub/fingerprint).
+{: .prompt-tip }
+
+## Configuring the wallet on Sparrow Wallet
+
+In this tutorial, I'll show you an advanced use of Passport with Sparrow Wallet. However, this hardware wallet is also compatible with Envoy (the Foundation application), Keeper, BlueWallet, Nunchuk, Specter, and many others...
+
+Start by downloading and installing Sparrow Wallet [from the official website](https://sparrowwallet.com/) on your computer, if you haven't already done so.
+
+
+
+Be sure to check the authenticity and integrity of the software before installation. If you don't know how to do this, please consult this [tutorial](https://planb.network/tutorials/computer-security/data/integrity-authenticity-21d0420a-be02-4663-94a3-8d487f23becc).
+
+> Verify Sparrow’s signature and hash before installing to reduce supply‑chain and tampering risks.
+{: .prompt-warning }
+
+Once Sparrow Wallet is open, click on the "*File*" tab, then on "*New Wallet*".
+
+
+
+Name your wallet, then click on "*Create Wallet*".
+
+
+
+Select "*Airgapped Hardware Wallet*".
+
+
+
+Click on "*Scan...*" next to the "*Passport*" option. This will open your webcam.
+
+
+
+On your hardware wallet, go to the "*Account*" menu, select the "*Manage Account*" submenu, and click on "*Connect Wallet*".
+
+
+
+In the drop-down list that appears, choose "*Sparrow*".
+
+
+
+Then select "*Single-sig*" for a normal configuration, without multisig.
+
+
+
+Select the "*QR Code*" option.
+
+
+
+Your Passport will then generate dynamic QR codes. Use your computer's webcam to scan them into the Sparrow software.
+
+
+
+You should now see your xpub and your master key fingerprint, which should match the one shown on your Passport when you enter your passphrase. Click on the "*Apply*" button.
+
+
+
+> Verify Sparrow’s “Master fingerprint” matches the one shown on Passport; a mismatch indicates a different wallet.
+{: .prompt-warning }
+
+Set a strong password to secure access to your Sparrow Wallet. This password will protect your public keys, addresses, labels and transaction history from unauthorized access. It's a good idea to save this password in a password manager, so you don't forget it.
+
+
+
+Your Passport then prompts you to scan the first reception address to confirm that the import has been successful.
+
+
+
+In Sparrow, go to the "*Receive*" tab and scan the QR code of the first address.
+
+
+
+If the operation is successful, your Passport will display "*Verified*".
+
+
+
+This confirms that the import was successful.
+
+
+
+## Receive bitcoins
+
+Now that your Passport is set up, you're ready to receive your first sats on your new Bitcoin wallet. To do so, on Sparrow, click on the "*Receive*" menu.
+
+
+
+Sparrow will display the first blank receipt address in your wallet. You can add a label.
+
+
+
+Before using it, we'll check the address on the Passport screen to make sure it belongs to our Bitcoin wallet. On Sparrow, you can enlarge the QR code of the address by clicking on it if necessary. In your Passport's "*Account*" menu, select "*Account Tools*".
+
+
+
+Click on "*Verify Address*", then scan the QR code displayed on Sparrow Wallet.
+
+
+
+Make sure that the address displayed on the Passport corresponds exactly to the one shown on Sparrow, and that "*Verified*" appears.
+
+
+
+> Always verify receive addresses on Passport before using them; wrong addresses mean irreversible loss.
+{: .prompt-warning }
+
+You can now use it to receive bitcoins. When the transaction is broadcast on the network, it will appear on Sparrow. Wait until you've received enough confirmations to consider the transaction definitive.
+
+
+
+## Send bitcoins
+
+Now that you have a few sats in your wallet, you can also send some. To do so, click on the "*UTXOs*" menu.
+
+
+
+Select the UTXOs you wish to use as inputs for this transaction, then click on "*Send Selected*".
+
+
+
+Enter the recipient's address, a label to remind you of the purpose of the transaction and the amount you wish to send to this address.
+
+
+
+Adjust the fee rate according to current market conditions, then click on "*Create Transaction*".
+
+
+
+Check that all transaction parameters are correct, then click on "*Finalize Transaction for Signing*".
+
+
+
+Click on "*Show QR*" to display the PSBT (*Partially Signed Bitcoin Transaction*). Sparrow has built the transaction, but it still lacks the signatures to unlock the bitcoins used in the input. These signatures can only be performed by the Passport, which hosts your seed giving access to the private keys needed to sign the transaction.
+
+
+
+On your Passport, access the "*Account*" menu and click on "*Sign with QR Code*".
+
+
+
+Scan the PSBT (*Partially Signed Bitcoin Transaction*) displayed on Sparrow Wallet.
+
+
+
+Confirm that the receiving address and the amount sent are correct, then press the confirmation button.
+
+
+
+Check the exchange address. In my example, there is none, as the transaction includes a single output.
+
+
+
+Make sure the fee is the one you have chosen.
+
+
+
+> Before signing, verify on Passport the destination address, change address (if present), amount, and fee. A wrong output cannot be reversed.
+{: .prompt-warning }
+
+If all the information is correct, click on the confirmation button to sign the transaction.
+
+
+
+On Sparrow Wallet, click on "*Scan QR*" and scan the QR code displayed on your Passport.
+
+
+
+Your signed transaction is now ready to be broadcast on the Bitcoin network and included in a block by a miner. If everything is correct, click on "*Broadcast Transaction*".
+
+
+
+Your transaction has been broadcast and is awaiting confirmation.
+
+
+
+Congratulations, you now know how to configure and use Passport.
\ No newline at end of file
diff --git a/passport-core.md b/passport-core.md
new file mode 100644
index 0000000..bf5c479
--- /dev/null
+++ b/passport-core.md
@@ -0,0 +1,501 @@
+---
+layout: page
+title: Passport Core Setup Guide
+subtitle: How to Setup and Use the Passport Core By Foundation Devices Using Envoy
+---
+
+
+ Unboxing |
+ Start |
+ PIN |
+ Firmware |
+ Create Wallet |
+ Menu |
+ Passphrase |
+ Sparrow Setup |
+ Receive |
+ Send
+
+ Original Author
+
+
+
+
+
+
+
+Envoy is a Bitcoin wallet management application developed by Foundation. It is specially designed for use with the Passport hardware wallet.
+
+The Passport "Batch 2" presented in this tutorial with the Envoy app is the successor to the "Founder's Edition". It stands out with its premium design, high-definition color screen, and ergonomic physical keyboard. It operates in "Air-Gap" mode, ensuring that your wallet's private keys remain completely isolated, with communication possible via a MicroSD card or QR codes. The device is equipped with a removable, rechargeable Nokia BL-5C battery with a capacity of 1200 mAh. This non-proprietary battery can be easily replaced, as the BL-5C model is widely available in stores.
+
+As for connectivity, the Passport is equipped with a MicroSD port, a USB-C port for charging, and a rear camera for scanning QR codes.
+
+In terms of security, the Passport incorporates a secure element, and the device's source code is entirely open-source. It offers all the features expected of a good Bitcoin hardware wallet. Note that the Passport does not yet support miniscript, but this feature is planned for the second quarter of 2025.
+
+Priced at USD 199, the Passport is positioned as a high-end hardware wallet, competing with the Coldcard Q, Jade Plus, Tezor Safe 5 and Ledger's top-of-the-range models.
+
+
+
+To manage your secure wallet on a Passport, you have several options. This hardware wallet is compatible with the majority of wallet management software on the market, including Sparrow Wallet, Specter Desktop, Nunchuk, Keeper, among others.
+
+In this tutorial, which is aimed at beginners and intermediate users, we're going to discover how to use the Envoy application with your Passport. It's the easiest way to get the most out of your hardware wallet.
+
+If you're an advanced user and want to explore more complex features, I recommend you check out this other [tutorial](https://bitcoiner.guide/passport-core-advanced/) where we configure Passport with Sparrow Wallet.
+
+## Unboxing the Passport
+
+When you receive your Passport, make sure the box and seal on the carton are intact to confirm that the package has not been opened.
+
+
+
+> If the box or seal shows signs of tampering, stop setup and contact the seller to avoid using a compromised device.
+{: .prompt-danger }
+
+Box contents include:
+
+- Passport;
+- A piece of cardboard to write down your mnemonic phrase;
+- A USB-C cable for charging;
+- MicroSD card;
+- Two MicroSD to Lightning or USB-C adapters;
+- Stickers.
+
+On the device, you will find:
+
+- A keyboard (1);
+- USB-C port (2);
+- A delete button (3);
+- A return button (4);
+- A confirmation button (5);
+- Directional pad (6);
+- On/off button (7);
+- A status indicator (8);
+- MicroSD port (9);
+- A button to change mode aA1 (10);
+- A rear camera.
+
+
+
+> A software authenticity and integrity check is performed during setup to confirm the device is genuine.
+{: .prompt-info }
+
+## Download Envoy application
+
+Go to your app store to download Envoy:
+
+- On the [Google Play Store](https://play.google.com/store/apps/details?id=com.foundationdevices.envoy);
+- On the [App Store](https://apps.apple.com/us/app/envoy-by-foundation/id1584811818);
+- On [F-droid](https://foundation.xyz/fdroid/).
+
+
+
+You can also download the APK file directly [from Foundation's GitHub repository](https://github.com/Foundation-Devices/envoy/releases).
+
+
+
+> If installing via APK, verify signatures and hashes from the release page to reduce supply‑chain and tampering risks.
+{: .prompt-warning }
+
+Once the application is open, select "Manage Passport".
+
+
+
+Choose whether you want to activate the Tor connection, then press "Continue".
+
+
+
+> Enabling Tor helps protect your network privacy when using Envoy.
+{: .prompt-tip }
+
+Choose "Connect an existing Passport" if your Passport is already configured, or "Set up a new Passport" if you're initializing your hardware wallet for the first time.
+
+
+
+Accept the terms of use.
+
+
+
+You will then be asked to verify the authenticity of the Passport. Click on "Next".
+
+
+
+## Starting Passport
+
+Press the on/off button on the side of the unit to start it up.
+
+
+
+Press the confirmation button to access the next menu.
+
+
+
+In this tutorial, we'll use Envoy to manage the Passport-secured wallet. Select "Envoy App".
+
+
+
+Click on "Continue on Envoy".
+
+
+
+The next step is to check your device. This confirms the authenticity of your Passport and ensures that it has not been tampered with in transit. You will be asked to scan a QR code.
+
+
+
+Scan the dynamic QR codes displayed in the application with your Passport. When scanning is complete, click on "Next".
+
+
+
+Then use your phone to scan the QR code displayed on your Passport.
+
+
+
+> If the authenticity check fails, do not proceed — contact Foundation support. A compromised device can lead to fund loss.
+{: .prompt-danger }
+
+If the message "Your Passport is secure" appears, this confirms that your hardware wallet is genuine. You can now use it to secure a Bitcoin wallet.
+
+
+
+Confirm the test result on your Passport.
+
+
+
+## Setting the PIN code
+
+Next comes the PIN code step. The PIN code unlocks your Passport. It therefore provides protection against unauthorized physical access.
+
+
+
+> The PIN does not derive keys. With the mnemonic (and any passphrase), funds are recoverable even without the PIN.
+{: .prompt-info }
+
+We recommend choosing a PIN code that is as random as possible. Also, be sure to save this code in a separate place from where your Passport is stored (e.g. in a password manager).
+
+You can choose a PIN code between 6 and 12 digits. I advise you to make it as long as possible.
+
+Use the keypad to enter your PIN numbers. When you've finished, click on the confirmation button.
+
+
+
+Confirm your PIN a second time.
+
+
+
+Your PIN code has been registered.
+
+
+
+## Update Passport firmware
+
+Your hardware wallet suggests that you update its firmware. I recommend that you update immediately to benefit from the improvements and fixes brought by the latest versions. To continue, click on the confirmation button on the right.
+
+
+
+Your Passport is ready to receive the new firmware via a MicroSD card.
+
+
+
+### Without Envoy application
+
+To do this, use the MicroSD card included in your Passport box (or another one), and insert it into your computer. Download the latest firmware version from [the Foundation documentation site](https://docs.foundation.xyz/firmware-updates/passport/) or [their GitHub repository](https://github.com/Foundation-Devices/passport2/releases).
+
+
+
+> Verify firmware signatures and hashes before installing; never install unverified firmware.
+{: .prompt-warning }
+
+### With the Envoy application
+
+The other, simpler option is to use the Envoy application directly. Click on "Download Firmware".
+
+
+
+Use the adapter supplied with your Passport to connect the MicroSD card to your phone.
+
+
+
+Select the MicroSD card in your file explorer to save the firmware.
+
+
+
+The firmware is now saved. Remove the MicroSD from your smartphone and insert it into the Passport.
+
+
+
+The Passport file explorer will open. Select the file`vN.N.N-passport.bin`.
+
+
+
+Click on "Select".
+
+
+
+Then confirm firmware installation.
+
+
+
+Please wait for the update to complete.
+
+
+
+Once the update is complete, enter your PIN code to unlock the device and continue configuration.
+
+
+
+> If you already have a wallet on Passport, ensure your mnemonic (and any passphrase) is backed up and tested before updating — a failed update without backups can mean permanent loss.
+{: .prompt-danger }
+
+## Create a new Bitcoin wallet
+
+Now it's time to create a new Bitcoin wallet. Click on the confirmation button.
+
+
+
+To create a new wallet, click on "Create New Seed".
+
+
+
+You can choose between a 12- or 24-word mnemonic phrase. The security offered by both options is similar, so you can opt for the one that's easiest to save, i.e. 12 words.
+
+
+
+Click on "Continue".
+
+
+
+Your Passport will now generate your "Backup Code". This is a series of numbers that can be used to decrypt a backup of your wallet stored on a MicroSD. This backup system, specific to Foundation devices, constitutes an additional backup to your mnemonic phrase.
+
+
+
+> The Backup Code is device‑specific and not compatible with other wallet software; store it separately from the MicroSD containing the encrypted backup.
+{: .prompt-warning }
+
+Enter your "Backup Code" to confirm that you have saved it correctly.
+
+
+
+If a MicroSD has been inserted, the encrypted backup of your wallet has been saved there.
+
+
+
+Your Passport will display your 12-word mnemonic phrase.
+
+> Your mnemonic grants full, unrestricted access to your bitcoin. Never digitize it (no photos, files, cloud). Anyone with the words can steal your funds.
+{: .prompt-danger }
+
+The 12-word phrase restores access to your bitcoins in the event of loss, theft or breakage of your Passport. It is therefore very important to save it carefully and store it in a secure location.
+
+You can write it on the cardboard supplied in the box, or for added security, I recommend engraving it on a stainless steel base to protect it from fire, flood or collapse.
+
+Click on the confirmation button to see your mnemonic phrase.
+
+
+
+For more information on the proper way to save and manage your mnemonic phrase, I highly recommend following this other [tutorial](https://planb.network/tutorials/wallet/backup/backup-mnemonic-22c0ddfa-fb9f-4e3a-96f9-46e2a7954270), especially if you're a beginner.
+
+Of course, you must never share these words on the Internet, as I'm doing in this tutorial. This sample wallet will be used only on Testnet and will be deleted at the end of the tutorial.
+
+Make a physical backup of this sentence.
+
+
+
+Your Passport has been successfully configured. Click on the confirmation button to continue.
+
+
+
+## Setting up the wallet on Envoy
+
+In this tutorial, I'll show you how to use the Passport with the Envoy application. However, this hardware wallet is also compatible with Sparrow Wallet, Keeper, BlueWallet, Nunchuk, Specter, and many others...
+
+
+
+Use the Envoy application to scan the QR code displayed on your Passport.
+
+
+
+Your public keys are now imported into the application. Click on "Validate receive address".
+
+
+
+Use your Passport to scan the address displayed on Envoy.
+
+
+
+Your Passport will confirm whether the wallet imported on Envoy is valid. Confirm it in the application.
+
+
+
+> Always validate receive addresses on Passport before using them; wrong addresses mean irreversible loss.
+{: .prompt-warning }
+
+You can now access your wallet's public information on Envoy, but to spend bitcoins, you'll need to use your Passport.
+
+
+
+## Discover Passport menus
+
+Your Passport interface has three main menus:
+
+- "Account";
+- "More";
+- "Settings".
+
+To navigate between these menus, use the left and right arrows on the directional pad.
+
+### "Account" menu
+
+In the "Account" menu, you'll find the main features of your Bitcoin wallet. You can sign a transaction either via the camera or via the MicroSD port.
+
+
+
+The "Account Tools" submenu offers options such as verifying an address, signing a message, or consulting the addresses in your wallet.
+
+
+
+In the "Manage Account" submenu, you can connect your Bitcoin wallet to a wallet management software (which we'll cover in the next steps of this tutorial), or view and rename your account.
+
+
+
+### More" menu
+
+In the "More" menu, you can create a new account in your wallet, linked to the same mnemonic phrase.
+
+
+
+You can also enter a BIP39 passphrase or use a temporary seed.
+
+
+
+### Settings" menu
+
+In the "Settings" menu, you'll find all your wallet and device settings.
+
+
+
+The "Device" submenu gives you options for customizing screen brightness, setting the delay before auto-lock, changing the PIN code, or renaming the device.
+
+
+
+The "Backup" submenu lets you export your encrypted wallet backup, check the validity of an existing backup, or look up your "Backup Code" again.
+
+
+
+The "Firmware" sub-menu is for updating your Passport's firmware. We recommend that you perform these updates regularly to benefit from the latest fixes and features.
+
+
+
+The "Bitcoin" sub-menu lets you change the unit displayed (BTC or satoshis), manage a possible Multisig wallet, or switch to "Testnet" mode.
+
+
+
+In "Advanced", you can view the words of your mnemonic phrase, perform actions on the inserted MicroSD, reset your Passport to factory settings, or perform an authenticity check, as performed previously.
+
+
+
+You can activate "Security Words", a feature that adds a layer of security by displaying two specific words when unlocking the device after entering the first four digits of the PIN code. These words, to be saved during configuration, ensure that the Passport has not been replaced or tampered with.
+
+
+
+> Enable Security Words and verify them on each unlock. If they ever differ from your saved words, stop using the device.
+{: .prompt-warning }
+
+Finally, the "Extensions" sub-menu lets you activate functions specific to certain uses of the appliance, such as the Whirlpool coinjoin protocol.
+
+
+
+## Receive bitcoins
+
+Now that your Passport is set up, you're ready to receive your first sats on your new Bitcoin wallet. To do so, on Envoy, click on your "Primary 0" account.
+
+
+
+Click on the "Receive" button.
+
+
+
+Your Envoy application displays the first available blank address on your wallet. Before using it, let's check the address on the Passport screen to make sure it really belongs to our Bitcoin wallet. In your Passport's "Account" menu, select "Account Tools".
+
+
+
+Click on "Verify Address", then scan the QR code displayed on Envoy.
+
+
+
+Make sure that the address displayed on the Passport corresponds exactly to the one shown on Envoy, and that "Verified" appears.
+
+
+
+You can now use it to receive bitcoins. When the transaction is broadcast on the network, it will appear on Envoy. Wait until you've received enough confirmations to consider the transaction definitive.
+
+
+
+## Send bitcoins
+
+Now that you have a few sats in your wallet, you can also send some. To do so, click on the "Send" button.
+
+
+
+Enter the recipient's address, either by pasting it in directly, or by scanning the QR code with your smartphone's camera.
+
+
+
+Determine the amount you wish to send, then click on "Confirm".
+
+
+
+Select the transaction fee according to the current market situation, then check the transaction information. If everything is correct, click on "Sign with Passport".
+
+
+
+Add a label to your transaction to keep a clear record of its purpose.
+
+
+
+Envoy then displays a PSBT (Partially Signed Bitcoin Transaction). The application has built the transaction, but is still missing the signature(s) to unlock the bitcoins used in the input. These signatures can only be performed by the Passport, which hosts your seed giving access to the private keys needed to sign the transaction.
+
+
+
+On your Passport, access the "Account" menu and click on "Sign with QR Code".
+
+
+
+Scan the PSBT (Partially Signed Bitcoin Transaction) displayed on Envoy.
+
+
+
+Confirm that the receiving address and the amount sent are correct, then press the confirmation button.
+
+
+
+Check the exchange address. In my example, there is none, as the transaction includes a single output.
+
+
+
+Make sure the fee is the one you have chosen.
+
+
+
+> Before signing, verify on Passport the destination address, change address (if present), amount, and fee. A wrong output cannot be reversed.
+{: .prompt-warning }
+
+If all the information is correct, click on the confirmation button to sign the transaction.
+
+
+
+Your Passport shows you your signed transaction in the form of a QR code.
+
+
+
+On the Envoy application, click on the QR code icon, then scan the PSBT displayed on your Passport screen.
+
+
+
+Check your transaction details one last time. If everything is correct, press "Send Transaction" to broadcast it on the Bitcoin network.
+
+
+
+Your transaction is now awaiting confirmation. You can follow its status directly from your account.
+
+
+
+Congratulations, you now know how to set up and use the Passport with the Envoy application.
\ No newline at end of file
diff --git a/vanilla-dojo.md b/vanilla-dojo.md
new file mode 100644
index 0000000..c720641
--- /dev/null
+++ b/vanilla-dojo.md
@@ -0,0 +1,1023 @@
+---
+layout: page
+title: Vanilla Dojo Guide
+subtitle: How to Setup and Use Samourai Dojo
+---
+
+
+ Requirements |
+ Install Ubuntu |
+ Dependencies |
+ Dedicated User |
+ Download & Verify |
+ Configure |
+ Install |
+ Monitor Sync |
+ Maintenance Tool |
+ Maintenance
+
+ Original Author
+
+
+
+
+
+
+
+Dojo is an open-source program designed to act as a backend server for certain privacy-oriented Bitcoin wallets, based on a Bitcoin core node. Historically, it was developed to work with Samourai Wallet, a mobile wallet that offered advanced privacy features like Whirlpool (CoinJoin), Ricochet, Stonewall, PayNym... Samourai Wallet has now been shut down following the arrest of its developers, but its community successor, **Ashigaru Wallet**, has taken over and continues to rely on Dojo to offer a complete experience for users wishing to keep control of their data when using Bitcoin.
+
+
+
+In practical terms, Dojo acts as a gateway between your wallet and the Bitcoin network. Without Dojo, a lightweight mobile wallet would have to query third-party servers to obtain the status of your UTXOs and your history, or to broadcast your transactions. This implies dependency and leakage of sensitive data to a third-party server (addresses used, amounts, payment frequency, etc.). With Dojo, you host this server yourself, directly connected to your own Bitcoin node. In this way, all your portfolio requests pass through an infrastructure that you control, without intermediaries, reinforcing your confidentiality and sovereignty.
+
+> Using third‑party servers leaks wallet metadata (addresses, balances, timing). Running Dojo with your own node keeps requests under your control.
+{: .prompt-warning }
+
+## Requirements for setting up a Dojo
+
+Setting up a Dojo server doesn't require an ultra-powerful machine. Anyone with an entry-level computer, a stable Internet connection and the ability to leave it on continuously (24/7) can set up a working Dojo.
+
+> Plan for continuous power and stable connectivity (UPS recommended). Unexpected shutdowns can corrupt indexes and prolong sync.
+{: .prompt-info }
+
+### Choose your machine type
+
+You can use :
+
+- a laptop ;
+- a desktop computer ;
+- a mini-PC (e.g. Intel NUC, Lenovo Thincentre Tiny...).
+
+Each option has its advantages and disadvantages:
+
+- Price: a refurbished mini-PC or desktop will often be cheaper than a new laptop.
+- Footprint: a Mini-PC takes up less space.
+- Power supply: a laptop has the advantage of a battery, which means it won't shut down in the event of a power cut, unlike a mini-PC.
+- Upgradeability: barbones generally allow you to add memory or easily replace a hard disk.
+
+For more information on choosing your equipment, I recommend you take this [course](https://planb.network/courses/3cd9cb94-82e8-417a-9c5a-02afc2589426)
+
+### Recommended equipment
+
+There's no need to buy a new machine. A refurbished computer with the specifications below will give much better performance than single-board electronics (like the Raspberry Pi).
+
+**Minimum specifications:**
+
+- X86-64 architecture (64-bit processor).
+- 2 GHz dual-core processor or faster.
+- 8 GB RAM minimum.
+- 2 TB or more NVMe SSD (to store Blockchain of Bitcoin and the necessary indexes).
+
+**Recommended operating system: **
+
+- A Debian-based distribution, like Ubuntu 24.04 LTS.
+
+**Recommended equipment:**
+
+- HP EliteDesk / EliteBook
+- Dell OptiPlex
+- Lenovo ThinkCentre / ThinkPad
+- Intel NUC
+- etc.
+
+It's perfectly possible to run a Dojo server on other hardware configurations. However, to get the best performance and limit problems, we advise you to follow the above recommendations.
+
+In this tutorial, I'll be using an old ThinkCentre Tiny with an Intel Pentium Dual-Core G4400T processor, 8 GB RAM and a 2 TB SSD.
+
+## 1 - Installing Ubuntu
+
+*If you wish to install Dojo on a device that is already configured, you can skip this step and proceed directly to step 2.*
+
+Having prepared the chosen hardware, it's time to install an operating system. You can use virtually any Debian distribution, but I recommend you opt for an LTS version of Ubuntu, as it's perfectly suited to our purposes. Here are the steps to follow:
+
+### 1.1. create a bootable USB key
+
+From an already working computer (your usual machine), download the Ubuntu LTS ISO image [from the official site](https://ubuntu.com/download/desktop) (`24.04` at the time of writing, but take the most recent if another is available).
+
+
+
+Insert a USB key of at least 8 GB into this computer, then create a bootable key using software such as [Balena Etcher](https://etcher.balena.io/). Select the Ubuntu ISO image you've just downloaded, choose the USB key as the target device, then start the creation process (be patient, it may take several minutes).
+
+
+
+Insert the bootable USB key into the switched-off computer (the one on which you want to run Dojo). Start the machine and immediately press **F12** or **F10** on your keyboard (depending on the model) to access the boot menu. Then choose your USB key as the priority device in the computer boot order.
+
+
+
+### 1.2. install the operating system
+
+The Ubuntu home screen appears. Select "Try or Install Ubuntu*".
+
+
+
+Then follow the classic Ubuntu installation process:
+
+- Select language.
+- Select keyboard type.
+- If you're connected via RJ45 cable, there's no need to configure Wi-Fi.
+- Click on "*Install Ubuntu*" and check the option to install third-party software (Wi-Fi drivers, multimedia codecs, etc.).
+- When the wizard asks for the type of installation, select "*Erase disk and install Ubuntu*".
+- Create a simple user name (e.g. "*loic*").
+- Assign a name to the machine (e.g. "*dojo-node*").
+- Set a strong password and keep it safe.
+- Enable the "*Request my password to log in*" option to reinforce security.
+- Indicate your time zone, then click on "*Install*".
+- Wait for the installation to complete. Once complete, the system will restart automatically.
+- Remove the USB installation key when restarting the computer.
+
+> “Erase disk” wipes all data on the target drive. Confirm the correct NVMe SSD and back up any important files before proceeding.
+{: .prompt-danger }
+
+For more details on the Ubuntu installation process, please see our dedicated [tutorial](https://planb.network/tutorials/computer-security/operating-system/ubuntu-78a3be56-5d51-4ec3-8629-0dd27c352ab5)
+
+### 1.3. system update
+
+After the first boot, open a terminal using the key combination ***Ctrl + Alt + T*** and run the following commands to update the system:
+
+```bash
+sudo apt update
+sudo apt upgrade -y
+```
+
+
+
+## 2. Outbuilding installation
+
+For Dojo to work properly, certain software bricks must be present on your system. These are used to manage software repositories, communication, archive decompression and the execution of Dojo inside Docker containers. All these operations are performed in the terminal.
+
+### 2.1. Preparation
+
+The following command returns you to your personal folder. This is a good practice before running a series of installations.
+
+```bash
+cd ~/
+```
+
+Before installing any software, make sure that the database of software available on your machine is up to date. This avoids installing obsolete versions.
+
+```bash
+sudo apt-get update
+```
+
+
+
+### 2.2. install utilities
+
+Several tools need to be added to the system:
+
+-`apt-transport-https`: allows you to download packets securely via HTTPS
+-`ca-certificates`: manages the certificates required for encrypted connections
+-`curl`: to retrieve files from the Internet
+-`gnupg-agent`: for GPG key management
+- software-properties-common`: provides utilities for manipulating APT repositories
+-`unzip`: unzips files in ZIP format
+
+```bash
+sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common unzip
+```
+
+During installation, the system may ask you for confirmation. Press the "*y*" key, then press "*Enter*".
+
+
+
+### 2.3. install Torsocks
+
+Torsocks enables certain commands to be executed via the Tor network, improving the confidentiality of communications.
+
+```bash
+sudo apt install torsocks
+```
+
+
+
+> Use Tor (torsocks) when fetching keys or releases to reduce metadata leakage to third‑party servers.
+{: .prompt-tip }
+
+### 2.4. install Docker and Docker Compose
+
+Dojo runs inside Docker containers. This means that each service is isolated in an independent environment, simplifying maintenance and security. To do this, you need to install Docker and the Docker Compose tool, which enables you to manage several containers at the same time.
+
+#### Add Docker signing key
+
+Docker provides its own digital signature key. Adding it verifies the authenticity of downloaded packages.
+
+```bash
+sudo apt-get update
+sudo apt-get install ca-certificates curl
+sudo install -m 0755 -d /etc/apt/keyrings
+sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
+sudo chmod a+r /etc/apt/keyrings/docker.asc
+```
+
+
+
+> Add vendor keys and repositories only from official sources; verify keys and URLs to avoid supply‑chain attacks.
+{: .prompt-warning }
+
+#### Official Docker repository added
+
+Next, you need to tell the system where to find the official Docker packages. This command adds a new repository to your package manager configuration.
+
+```bash
+echo \
+"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
+$(. /etc/os-release && echo "*$VERSION_CODENAME*") stable" | \
+sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
+
+sudo apt-get update
+```
+
+
+
+#### Installing Docker and Docker Compose
+
+The main Docker components can now be installed.
+
+```bash
+sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
+```
+
+
+
+#### User authorization
+
+By default, only commands executed with administrator rights can launch Docker. For greater convenience, I recommend adding your current user to the "*docker*" group. This allows you to use Docker without having to type`sudo` every time.
+
+```bash
+sudo usermod -aG docker $USER
+```
+
+
+
+> Members of the “docker” group can escalate to root via Docker. Add only trusted users and secure the host accordingly.
+{: .prompt-danger }
+
+## 3. Single user creation (optional)
+
+If you want to improve the security of your system, I recommend that you create a separate user exclusively for running Dojo. This separation limits the risks: if a security problem occurs in Dojo, it won't directly compromise your main account.
+
+> Principle of least privilege: isolate services under a dedicated user to reduce blast radius if one component is compromised.
+{: .prompt-tip }
+
+### 3.1. user account creation
+
+The following command creates a new user named "*dojo*". This user will have a home directory`/home/dojo` and access to the bash terminal. It will also be added to the sudo group to enable execution of admin commands.
+
+```bash
+sudo useradd -s /bin/bash -d /home/dojo -m -G sudo dojo
+```
+
+### 3.2. Setting a password
+
+It's important to assign a strong password to this account. Ideally, you should use a password manager such as Bitwarden to generate a long, hard-to-guess combination.
+
+```bash
+sudo passwd dojo
+```
+
+The system will then ask you to enter your chosen password, then confirm it a second time.
+
+### 3.3. Authorize user to use Docker
+
+To enable the user "*dojo*" to launch the containers needed to run Dojo, he must be added to the Docker group. This avoids having to precede each command with`sudo`.
+
+```bash
+sudo usermod -aG docker dojo
+```
+
+> As above, giving “dojo” Docker group access is effectively root‑level. Ensure this user is dedicated and secured.
+{: .prompt-warning }
+
+### 3.4. System restart
+
+In order for group changes to take effect, the machine must be restarted.
+
+```bash
+sudo reboot
+```
+
+### 3.5. Login with new user
+
+When the system restarts, log in with the ***dojo*** login and the password you defined earlier. All subsequent steps must be carried out from this dedicated account.
+
+## 4. Download and check Dojo
+
+Before installing Dojo, it is essential to make sure that the files have come from the official developer and that they have not been modified. This step relies on the use of PGP and hashes to verify file authenticity and integrity.
+
+### 4.1. import the developer's PGP key
+
+Download the developer's public key via Tor and import it into your local keychain. This key will be used to verify the signatures associated with Dojo files.
+
+```bash
+torsocks wget http://zkaan2xfbuxia2wpf7ofnkbz6r5zdbbvxbunvp5g2iebopbfc4iqmbad.onion/vks/v1/by-fingerprint/E53AD419B242822F19E23C6D3033D463D6E544F6 && gpg --import E53AD419B242822F19E23C6D3033D463D6E544F6
+```
+
+
+
+> Verify the key fingerprint from multiple sources (onion, GitHub, project site) before trusting it; do not rely on a single source.
+{: .prompt-warning }
+
+### 4.2. download the latest version of Dojo
+
+Retrieve the compressed archive containing the Dojo source code. In this example, the most recent version is`1.28.0`: modify the command according to [the latest version here on the official GitHub repository](https://github.com/Dojo-Open-Source-Project/samourai-dojo/releases).
+
+```bash
+torsocks wget -O samourai-dojo-1.28.0.zip https://github.com/Dojo-Open-Source-Project/samourai-dojo/archive/refs/tags/v1.28.0.zip
+```
+
+
+
+### 4.3. Download fingerprints and signature
+
+The developers publish a file listing the digital fingerprints of the archives, as well as a file signed by their PGP key. Download them to compare your files locally.
+
+```bash
+torsocks wget https://github.com/Dojo-Open-Source-Project/samourai-dojo/releases/download/v1.28.0/samourai-dojo-1.28.0-fingerprints.txt && torsocks wget https://github.com/Dojo-Open-Source-Project/samourai-dojo/releases/download/v1.28.0/samourai-dojo-1.28.0-fingerprints.txt.sig
+```
+
+
+
+### 4.4. Check PGP signature
+
+Check that the fingerprint file has been signed by the imported key.
+
+```bash
+gpg --verify samourai-dojo-1.28.0-fingerprints.txt.sig
+```
+
+A correct result displays a valid signature with the key`E53AD419B242822F19E23C6D3033D463D6E544F6` and the associated address`dojocoder@pm.me`. A warning may appear stating that the key is not certified: you can ignore it.
+
+
+
+> If the signature is invalid or from an unexpected key, stop immediately — do not install unverified software.
+{: .prompt-danger }
+
+### 4.5. Check archive integrity
+
+Calculate the SHA256 fingerprint of the downloaded file, then open the fingerprint file to compare the two values.
+
+```bash
+sha256sum samourai-dojo-1.28.0.zip
+cat samourai-dojo-1.28.0-fingerprints.txt
+```
+
+If the two fingerprints are identical, you can be sure that the archive has not been modified.
+
+
+
+> If the hash does not match, delete the files and re‑download from the official source; do not proceed with installation.
+{: .prompt-danger }
+
+### 4.6. Extract and organize files
+
+Once verification has been successfully completed, you can unpack the archive and prepare a folder dedicated to Dojo installation.
+
+```bash
+unzip samourai-dojo-1.28.0.zip -d .
+mkdir ~/dojo-app
+mv ~/samourai-dojo-1.28.0/* ~/dojo-app/
+```
+
+
+
+### 4.7. Clean up unnecessary files
+
+Delete temporary files and archives no longer required to keep your environment clean.
+
+```bash
+rm -r samourai-dojo-1.28.0 && rm samourai-dojo-1.28.0.zip && rm samourai-dojo-1.28.0-fingerprints.txt && rm samourai-dojo-1.28.0-fingerprints.txt.sig && rm E53AD419B242822F19E23C6D3033D463D6E544F6
+```
+
+
+
+## 5. Dojo configuration
+
+Dojo is a backend server that brings together several services to interact with your portfolio and manage your Bitcoin node. Its configuration can be complex, but the project offers a simplified method that automatically installs and configures the following components:
+
+- Dojo (main API)
+- Bitcoin core (complete Bitcoin node)
+- BTC-RPC Explorer (web block explorer)
+- Fulcrum Indexer (rapid indexing of blocks and transactions)
+- Fulcrum Electrum Server available on the Tor network
+- Fulcrum Electrum Server available on the local network
+- Administration credentials
+
+### 5.1. administration credentials
+
+To secure access to the various services, you need to generate several unique identifiers:
+
+-`BITCOIND_RPC_USER`
+-`BITCOIND_RPC_PASSWORD`
+-`MYSQL_ROOT_PASSWORD`
+- mYSQL_USER
+-`MYSQL_PASSWORD`
+- nODE_API_KEY`
+-`NODE_ADMIN_KEY`
+-`NODE_JWT_SECRET`
+
+These identifiers **must be unique** (this is very important: you mustn't use the same password for several services), made up solely of numbers, upper-case letters and lower-case letters (alphanumeric), and be around 40 characters long to guarantee a high level of security. Once again, I strongly recommend the use of a password manager.
+
+> Do not reuse credentials across services. Generate long, unique, random secrets (≈40 chars) and store them in a password manager.
+{: .prompt-danger }
+
+### 5.2. Access configuration files
+
+Dojo configuration files are located in the`conf/` folder. Move to this directory:
+
+```bash
+cd ~/dojo-app/docker/my-dojo/conf/
+```
+
+
+
+### 5.3. Bitcoin core configuration
+
+Open the Bitcoin core configuration file with the nano text editor:
+
+```bash
+nano docker-bitcoind.conf.tpl
+```
+
+
+
+In this file, enter the generated identifiers:
+
+```
+BITCOIND_RPC_USER=your-ID-here
+BITCOIND_RPC_PASSWORD=your-password-here
+```
+
+⚠️ ***Replace`your-ID-here` and`your-password-here` with your own logins (with a strong password).***
+
+You can also adjust the size of the cache memory used by Bitcoin core to improve performance (you can even use more if you have a lot of RAM available):
+
+```
+BITCOIND_DB_CACHE=2048
+```
+
+To save your changes and close the editor :
+
+- press `Ctrl + X
+- type`y`
+- then press "*Enter*"
+
+### 5.4. MySQL configuration
+
+Then open the MySQL database configuration:
+
+```bash
+nano docker-mysql.conf.tpl
+```
+
+Please enter your login details:
+
+```
+MYSQL_ROOT_PASSWORD=your-password-here
+MYSQL_USER=your-ID-here
+MYSQL_PASSWORD=your-password-here
+```
+
+⚠️ ***Replace`your-ID-here` and`your-password-here` with your own logins (with strong, unique passwords).***
+
+Save in the same way (`Ctrl + X`,`y`, "*Enter*").
+
+
+
+### 5.5. Fulcrum indexer configuration
+
+Open the following file:
+
+```bash
+nano docker-indexer.conf.tpl
+```
+
+Add the parameters to activate Fulcrum and integrate it correctly into Dojo :
+
+```
+INDEXER_INSTALL=on
+INDEXER_TYPE=fulcrum
+INDEXER_BATCH_SUPPORT=active
+INDEXER_EXTERNAL=on
+```
+
+
+
+Next, there are 2 possibilities, depending on your configuration. If Dojo is installed on a machine separate from your everyday computer (on a dedicated machine, a server...), enter its IP address in your local network, for example :
+
+```
+INDEXER_EXTERNAL_IP=192.168.1.157
+```
+
+
+
+To find out the local IP address of your machine, open another terminal and enter the following command:
+
+```bash
+hostname -I
+```
+
+Second possibility: if Dojo is run directly on your everyday personal computer, keep the default value already present in the configuration file :
+
+```
+INDEXER_EXTERNAL_IP=127.0.0.1
+```
+
+Save and exit the editor (`Ctrl + X`,`y`, "*Enter*").
+
+> Bind Fulcrum only to your LAN or localhost. Do not expose indexer ports to the public internet; restrict access via firewall/Tor.
+{: .prompt-warning }
+
+### 5.6. Node service configuration
+
+Finally, open the configuration of the main Dojo service:
+
+```bash
+nano docker-node.conf.tpl
+```
+
+Please enter your login details:
+
+```
+NODE_API_KEY=your-password-here
+NODE_ADMIN_KEY=your-password-here
+NODE_JWT_SECRET=your-password-here
+```
+
+⚠️ ***Replace`your-password-here` with your own credentials (with strong, unique passwords).***
+
+
+
+Then activate the local indexer:
+
+```
+NODE_ACTIVE_INDEXER=local_indexer
+```
+
+Save and exit the editor (`Ctrl + X`,`y`, "*Enter*").
+
+### 5.7. Login management
+
+Once configuration is complete, it is not necessary to save all the identifiers generated. The only one that absolutely must be saved is :
+
+```
+NODE_ADMIN_KEY
+```
+
+This login will enable you to log in later to the Dojo maintenance tool. All other logins can be removed from your password manager or handwritten notes. They remain accessible from the Dojo configuration files should you need to retrieve them in the future.
+
+> Store NODE_ADMIN_KEY securely (offline if possible). Anyone with this key can access the Dojo Maintenance Tool.
+{: .prompt-danger }
+
+## 6. Dojo installation
+
+At this stage, Dojo will be installed and started on your machine. The operation will launch several services (Bitcoin core, the Fulcrum indexer, the Dojo backend, etc.) and initiate full synchronization of the Blockchain Bitcoin. This may take several days, depending on your hardware and Internet connection.
+
+### 6.1. Check that Docker is working properly
+
+Before starting the installation, make sure that Docker is operational. Run the following command:
+
+```bash
+docker run hello-world
+```
+
+This command downloads and launches a small test container. If everything works correctly, you should see a message similar to :
+
+```
+Hello from Docker!
+This message shows that your installation appears to be working correctly...
+```
+
+
+
+If this message is not displayed, start by rebooting your machine with :
+
+```bash
+sudo reboot
+```
+
+Then log back into your **dojo** account and run the test command again. If the error persists, Docker has not been installed correctly. In this case, go back to step`2.4.` on installing Docker and check each command carefully.
+
+### 6.2. Go to Dojo installation directory
+
+The scripts required for installation are located in the`my-dojo` folder. Move to this directory:
+
+```bash
+cd ~/dojo-app/docker/my-dojo
+```
+
+
+
+Use the`ls` command to check that the`dojo.sh` file is present. This is the main script that automates the installation of Dojo and the launch of all its services.
+
+
+
+### 6.3. Start installation
+
+Start the installation by running the :
+
+```bash
+./dojo.sh install
+```
+
+Confirm the installation by pressing`y` and then "*Enter*".
+
+
+
+This script will :
+
+- download and launch the necessary Docker containers,
+- initialize Bitcoin core and start synchronizing Blockchain,
+- start the Fulcrum indexer to track transactions and addresses,
+- activate the Dojo backend and its APIs.
+
+You'll see a steady stream of logs scrolling by, with colorful references such as`bitcoind`,`soroban`,`nodejs` or`fulcrum`. This scrolling indicates that Dojo is up and running and starting to execute the various services.
+
+
+
+### 6.4. Exit log display
+
+Logs appear in real time in your terminal. To return to the command prompt while Dojo is running in the background, type :
+
+```
+Ctrl + C
+```
+
+Don't worry: stopping the log display doesn't stop the services. Docker continues to run Dojo in the background (you obviously don't need to stop the computer if you want IBD to continue).
+
+### 6.5. Understanding *Initial Block Download* (IBD)
+
+On startup, Bitcoin core must download and verify the entire Blockchain since 2009. This step is called ***Initial Block Download* (IBD)**. It is essential, as it enables your Dojo node to verify each Bitcoin block and transaction independently.
+
+The duration of this synchronization depends on several factors:
+
+- the power of your processor and the amount of RAM memory available,
+- the speed of your disk,
+- the number and quality of peers your node connects to,
+- the speed of your Internet connection.
+
+In practice, this operation generally takes between **2 and 7 days**. During this period, you can leave your machine running continuously. The longer the machine is on, the faster the synchronization will be completed. I advise you to check the synchronization status regularly by consulting the Bitcoin core logs, or by using the Dojo maintenance tool once installed (see next section).
+
+To deepen your knowledge of IBD and, more generally, of the operation and role of your Bitcoin node, I recommend you take a look at this [course](https://planb.network/courses/3cd9cb94-82e8-417a-9c5a-02afc2589426)
+
+> IBD can take several days. Do not power off abruptly; keep the machine running to complete sync and indexing reliably.
+{: .prompt-info }
+
+## 7. Synchronization monitoring
+
+When installing Dojo for the first time, you need to wait for two main operations to be fully completed: the complete download of the Blockchain Bitcoin (*IBD*) and the indexing of this Blockchain by Fulcrum. Depending on your connection and machine power, this may take several days. During this time, you can monitor the progress of the process to make sure everything's running smoothly.
+
+There are two ways to monitor the status of synchronization:
+
+- use of the Dojo Maintenance Tool (or DMT), which is simple but provides few details during IBD;
+- direct consultation of Dojo logs on your machine, more technical but much more precise.
+
+### 7.1. Check via Dojo Maintenance Tool (DMT)
+
+The Dojo Maintenance Tool is a secure, web-based Interface that lets you monitor the status of your plant, and perform certain operations. It's the easiest and most accessible way to monitor the IBD's progress. During the initial synchronization phase, the information displayed may be limited. For example, the DMT does not show the detailed progress of Fulcrum indexing. On the other hand, once synchronization is complete, the DMT will clearly display :
+
+- all lights on green;
+- the last validated block for each service (Node, Indexer, Dojo DB).
+
+To access it, you need to know the URL of your DMT and connect to it [via the Tor browser](https://www.torproject.org/download/). To do this, open a terminal and go to the`/my-dojo` directory:
+
+```bash
+cd ~/dojo-app/docker/my-dojo
+```
+
+Then run the following command:
+
+```bash
+./dojo.sh onion
+```
+
+
+
+You'll then have access to all the information relating to connections to your Dojo via Tor. The one we're interested in here is the following URL:
+
+```
+Dojo API and Maintenance Tool =
+```
+
+To access the DMT from any machine on any network (even remotely), open Tor Browser and enter this URL followed by`/admin`. For example, if your URL is`wo4zobymdl45gmmzzmpoypeemoukbj74wpibc22rxs2yfgpej62v6dyd.onion`, you'll need to enter in the [Tor Browser](https://www.torproject.org/download/) bar:
+
+```
+wo4zobymdl45gmmzzmpoypeemoukbj74wpibc22rxs2yfgpej62v6dyd.onion/admin
+```
+
+> Keep your onion service addresses strictly confidential; sharing them can expose your services to unwanted access.
+{: .prompt-warning }
+
+You will then be redirected to an authentication page. The DMT is logged in using the`NODE_ADMIN_KEY` password you generated earlier.
+
+
+
+Once logged in, you can access the *Dojo Maintenance Tool*! During IBD, you can see the "*Latest Block*" information in the "*Full node*" menu, which lets you know the current status of your Bitcoin node.
+
+
+
+Remember to bookmark this address in Tor Browser for easy retrieval later.
+
+Once your Dojo is fully synchronized, you should see Green check ✅ on all the indicators on the DMT home page.
+
+### 7.2. Verification via Dojo logs
+
+The second way to track the progress of your IBD is to consult your machine logs directly. This approach offers much more precise, real-time monitoring. You can see how Bitcoin core is progressing in downloading blocks, and how Fulcrum is indexing them.
+
+Connect to the machine hosting your Dojo and open a terminal. All commands should be executed from the`my-dojo` directory. Position yourself in this folder:
+
+```bash
+cd ~/dojo-app/docker/my-dojo
+```
+
+
+
+#### Bitcoin core logs
+
+View Bitcoin core logs to track IBD progress:
+
+```bash
+./dojo.sh logs bitcoind
+```
+
+At the beginning, you will see a pre-synchronization phase of the block headers:
+
+```
+bitcoind | Pre-synchronizing blockheader, height : NNNNNN
+```
+
+When this figure reaches 100%, Bitcoin core will begin the complete download of Blockchain. You'll see the IBD progress. To find out the current block height, look at the value indicated by`height=`. You can also follow the key`progress=`, which indicates the percentage of IBD progress.
+
+
+
+As always, to close the logs and return to the command prompt, use the`Ctrl + C` combination.
+
+#### Fulcrum logs
+
+Once Bitcoin core has completed header pre-synchronization, Fulcrum starts indexing Blockchain as it goes along. View its logs with :
+
+```bash
+./dojo.sh logs fulcrum
+```
+
+You'll then see the height of the last block indexed, indicated after`height:`, as well as the indexing progress percentage.
+
+
+
+### 7.3. Fulcrum database corruption
+
+Fulcrum is a particularly powerful indexer, but its installation can be complex, not least because of its delicate database management. In the event of a power cut or sudden machine shutdown during initial synchronization, the indexer's database may be corrupted. You can see this, for example, if you have the following logs:
+
+```bash
+fulcrum | The database has been corrupted etc...
+```
+
+**Note:** This type of error should be corrected with the upcoming release of Fulcrum 2.0.
+
+> Abrupt shutdowns can corrupt Fulcrum’s database. Always perform clean service stops and use reliable power to avoid reindexing.
+{: .prompt-danger }
+
+If this happens to you, there is no impact on bitcoind (your Bitcoin node): its IBD will continue to progress independently of Fulcrum. However, you won't be able to use Fulcrum until you've deleted its corrupted data and restarted its synchronization from the beginning. Here's how it works:
+
+Stop Dojo:
+
+```bash
+cd ~/dojo-app/docker/my-dojo
+./dojo.sh stop
+```
+
+Delete only the Fulcrum container and volume:
+
+```bash
+docker rm -f fulcrum || true
+docker volume ls | grep -i fulcrum
+docker volume rm my-dojo_data-fulcrum
+```
+
+Normally the name is`my-dojo_data-fulcrum`, if this isn't the case for you, adapt the name returned by the previous command.
+
+Then relaunch Dojo and rebuild Fulcrum from scratch:
+
+```bash
+./dojo.sh upgrade
+```
+
+You can then check that Fulcrum is working properly by consulting the logs:
+
+```bash
+docker logs -f fulcrum
+```
+
+## 8. Using the Dojo Maintenance Tool
+
+Once your Bitcoin knot is synchronized to the warp head with the most proof of work, and the Blockchain is 100% indexed by Fulcrum, you can start using your Dojo.
+
+Your Dojo offers a wide range of features, regularly enhanced with each new version. In my opinion, the 2 most important are :
+
+- the possibility of connecting your Ashigaru wallet to use your own node to consult Blockchain data and broadcast your transactions,
+- and the block explorer, which gives you access to information about the Blockchain Bitcoin without exposing your data to an external instance you don't control.
+
+Let's find out how to use them.
+
+### 8.1. Connect Ashigaru to your Dojo
+
+Connecting your Ashigaru wallet to your Dojo is very simple: once on your DMT, open the "*Pairing*" menu. A QR code appears, which you can scan directly with the Ashigaru application.
+
+
+
+In the Ashigaru application, the first time you launch it after creating or restoring your wallet, you'll be redirected to the "*Configure your Dojo server*" page. Press "*Scan QR*", then scan the QR code displayed on your DMT.
+
+
+
+Then click on the "*Continue*" button.
+
+
+
+You are now connected to your Dojo.
+
+
+
+> Pair only over Tor and keep your DMT onion address private to avoid exposing wallet metadata to unauthorized parties.
+{: .prompt-warning }
+
+### 8.2. Using the block explorer
+
+Dojo automatically installs a block explorer, [BTC-RPC Explorer](https://github.com/janoside/btc-RPC-explorer), which draws directly on data from your own Bitcoin node. An explorer lets you access raw information from Blockchain and your Mempool through an easy-to-understand Interface web. So you can, for example, check the status of a pending transaction, view the balance of an address or examine the composition of a block with ease.
+
+To access it, simply retrieve the Tor address from your browser. To do this, run the same command you used to obtain the address of your DMT:
+
+```bash
+./dojo.sh onion
+```
+
+
+
+You'll have access to all your Dojo connection information via Tor. The one we're interested in here is the following URL:
+
+```
+Block Explorer =
+```
+
+If you're already connected to your DMT, you can also find this address in the "*Pairing*" menu, inside the connection JSON:
+
+
+
+To access your browser from any machine on any network (even remotely), open [Tor Browser](https://www.torproject.org/download/) and enter the URL you've just retrieved.
+
+> Keep your block explorer onion URL confidential; accessing over Tor preserves privacy and prevents unwanted exposure.
+{: .prompt-warning }
+
+You'll then have access to your own block explorer.
+
+
+
+*Image credit: [https://ashigaru.rs/](https://ashigaru.rs/).*
+
+To track a transaction, simply enter its txid in the search bar at top right.
+
+
+
+*Image credit: [https://ashigaru.rs/](https://ashigaru.rs/).*
+
+To check the movements associated with an address, proceed in the same way by entering the address in the search bar.
+
+
+
+*Image credit: [https://ashigaru.rs/](https://ashigaru.rs/).*
+
+You can also enter a block's Hash or height in the search bar to display details.
+
+
+
+*Image credit: [https://ashigaru.rs/](https://ashigaru.rs/).*
+
+## 9. Dojo maintenance
+
+### 9.1 Stop your Dojo
+
+Never abruptly cut power to your Dojo, as this may corrupt certain databases, particularly the Fulcrum indexer. If you do have to switch it off, always perform a clean shutdown of Dojo, then, once all procedures have been completed, switch the machine off as well:
+
+```bash
+cd ~/dojo-app/docker/my-dojo
+./dojo.sh stop
+```
+
+> Avoid abrupt power cuts; always stop services cleanly before shutting down to prevent database corruption.
+{: .prompt-danger }
+
+### 9.2 Update your Dojo
+
+Dojo evolves regularly and new versions are released to fix bugs, improve stability and add features. It is therefore important [to check regularly for updates](https://github.com/Dojo-Open-Source-Project/samourai-dojo/releases) and to update your Dojo. The process is similar to the initial installation, but requires you to replace certain files with the latest available version, while maintaining your configuration. Here are the detailed steps to follow for a clean and secure update:
+
+To find out the current version of your Dojo, run the command :
+
+```bash
+./dojo.sh version
+```
+
+Although this step is optional, I recommend that you start by updating your OS. This reduces the risk of incompatibilities and ensures that the dependencies used by Dojo are up to date:
+
+```bash
+sudo apt-get update
+sudo apt-get upgrade
+```
+
+Go to the Dojo directory and stop the current services:
+
+```bash
+cd ~/dojo-app/docker/my-dojo
+./dojo.sh stop
+```
+
+Then reboot your system to get a clean slate:
+
+```bash
+sudo reboot
+```
+
+Dojo comes with digitally signed files. These PGP signatures ensure that the files originate from the developer and have not been altered in any way. It's important to check them every time you update Dojo, just as you did when you first installed it. Start by downloading the developer's public key via Tor, then import it :
+
+```bash
+torsocks wget http://zkaan2xfbuxia2wpf7ofnkbz6r5zdbbvxbunvp5g2iebopbfc4iqmbad.onion/vks/v1/by-fingerprint/E53AD419B242822F19E23C6D3033D463D6E544F6 && gpg --import E53AD419B242822F19E23C6D3033D463D6E544F6
+```
+
+Return to your personal directory:
+
+```bash
+cd ~/
+```
+
+Download the latest version of Dojo from GitHub via Tor. In this example, it's version`1.28.0` (which doesn't yet exist at the time of writing: this is just to give an example). Remember to replace the file and link [with the version you wish to install](https://github.com/Dojo-Open-Source-Project/samourai-dojo/releases):
+
+```bash
+torsocks wget -O samourai-dojo-1.28.0.zip https://github.com/Dojo-Open-Source-Project/samourai-dojo/archive/refs/tags/v1.28.0.zip
+```
+
+Also download the file containing the PGP fingerprints and signature (once again, remember to adjust the version in the command):
+
+```bash
+torsocks wget https://github.com/Dojo-Open-Source-Project/samourai-dojo/releases/download/v1.28.0/samourai-dojo-1.28.0-fingerprints.txt && torsocks wget https://github.com/Dojo-Open-Source-Project/samourai-dojo/releases/download/v1.28.0/samourai-dojo-1.28.0-fingerprints.txt.sig
+```
+
+Check that the downloaded fingerprint file has been signed by the developer's key:
+
+```bash
+gpg --verify samourai-dojo-1.28.0-fingerprints.txt.sig
+```
+
+A correct result should display :
+
+```
+gpg: Signature made [date + time]
+gpg: using EDDSA key E53AD419B242822F19E23C6D3033D463D6E544F6
+gpg: Good signature from "dojocoder@pm.me" [unknown]
+```
+
+A warning that the key is uncertified may appear, but this is of no importance. On the other hand, if the signature is invalid or corresponds to another key, go no further and start again, checking the links.
+
+Then calculate the SHA256 fingerprint of the archive and compare it with the official fingerprint file :
+
+```bash
+sha256sum samourai-dojo-1.28.0.zip
+cat samourai-dojo-1.28.0-fingerprints.txt
+```
+
+If the two fingerprints match perfectly, the archive is genuine and intact. If they differ, delete the files immediately and do not continue.
+
+> Always verify signatures and hashes on updates; do not install if verification fails.
+{: .prompt-warning }
+
+Uncompress the archive in your home directory:
+
+```bash
+unzip samourai-dojo-1.28.0.zip -d .
+```
+
+Then copy the contents to the Dojo directory, overwriting the old :
+
+```bash
+cp -a samourai-dojo-1.28.0/. dojo-app/
+```
+
+This operation keeps your configuration files located in`~/dojo-app/docker/my-dojo/conf`, but replaces all other files with the updated versions.
+
+To keep your environment clean, delete unnecessary files :
+
+```bash
+rm -r samourai-dojo-1.28.0 && rm samourai-dojo-1.28.0.zip && rm samourai-dojo-1.28.0-fingerprints.txt && rm samourai-dojo-1.28.0-fingerprints.txt.sig && rm E53AD419B242822F19E23C6D3033D463D6E544F6
+```
+
+Return to the Dojo scripts directory and run the update command:
+
+```bash
+cd ~/dojo-app/docker/my-dojo
+./dojo.sh upgrade -y
+```
+
+This command instructs Docker to rebuild the images with the new files, then automatically restart all services. At the end of the process, check the logs to make sure that Bitcoin core, Fulcrum and Dojo are all working correctly:
+
+```bash
+./dojo.sh logs bitcoind
+./dojo.sh logs fulcrum
+```
+
+If the services start without error and the logs show blocks being processed, your Dojo is now up to date and operational.
\ No newline at end of file