     /// - Returns: The default AddressScheme
     ///
     public func defaultAddressScheme (network: Network) -> AddressScheme {
-        return defaultAddressSchemeMap[network.uids] ?? .genDefault
+        return System.defaultAddressSchemeMap[network.uids] ?? .genDefault
     }
 
     ///
     /// Wallet Manager Modes
     ///
-    /// Every blockchain supports `.api_only`; blockchains with built-in P2P support (BTC, BCH,
-    /// and ETH) may support `.p2p_only`.  Intermediate modes (.api_with_p2p_submit,
-    /// .p2p_with_api_sync) are suppored on a case-by-case basis.
+    /// Blockchains with built-in P2P support (BTC, BCH, and ETH) may support `.p2p_only`.
+    /// Intermediate modes (.api_with_p2p_submit, .p2p_with_api_sync) are suppored on a case-by-case
+    /// basis. API mode is supported if BRD infrastructure supports that blockchain (for example,
+    /// BCH is not at the moment)
     ///
     /// It is possible that the `.api_only` mode does not work - for exmaple, the BDB is down.  In
     /// that case it is an App issue to report and resolve the issue by: waiting out the outage;
     /// selecting another mode if available.
     ///
-    var supportedModesMap: [String:[WalletManagerMode]] = [
+    /// These values are updated whenever the BDB support updates.  However, a given WalletKit
+    /// distribution in the wild might be out of date with the current BDB support.  That can mean
+    /// that some API mode is missing here that a new BDB support (like when BCH comes online) or
+    /// that a mode has disappeared (maybe a blockchain is dropped).  These cases are not
+    /// destructive.
+    ///
+    static let supportedModesMap: [String:[WalletManagerMode]] = [
         "bitcoin-mainnet":      [.api_only, .p2p_only],
         "bitcoincash-mainnet":  [.p2p_only],
         "ethereum-mainnet":     [.api_only, .api_with_p2p_submit, .p2p_only],

        return networks.first { $0.uids == uids }
    }

    /// The system's Wallet Managers, unsorted.  A WalletManager will hold an 'unowned'
    /// reference back to `System`
    public internal(set) var managers: [WalletManager] = [];

    internal func managerBy (core: BRCryptoWalletManager) -> WalletManager? {
        return managers
            .first { $0.core == core }
    }

    /// - Returns: the default mode
    ///
    public func defaultMode (network: Network) -> WalletManagerMode {
        return System.defaultModesMap[network.uids] ?? .api_only
    }

    ///
