                 guard let price = price.map (asUTF8String)
                     else { System.cleanup  ("SYS: ETH: EstimateGas: Missed {price}", cwm: cwm); return }
 
-                let ewm = cryptoWalletManagerAsETH (cwm);
-                let network  = asUTF8String (networkGetName (ewmGetNetwork (ewm)))
+                guard let network = network.map (asUTF8String)
+                    else { System.cleanup  ("SYS: ETH: EstimateGas: Missed {network}", cwm: cwm); return }
 
                 manager.query.getGasEstimateAsETH (network: network,
                                                    from:   asUTF8String(from!),

                guard let (system, manager) = System.systemExtract (context, cwm)
                    else { System.cleanup  ("SYS: ETH: GetBlocks: Missed {cwm}", cwm: cwm); return }

                let ewm = cryptoWalletManagerAsETH (cwm);
                let network  = asUTF8String (networkGetName (ewmGetNetwork (ewm)))

                manager.query.getBlocksAsETH (network: network,
                                              address: asUTF8String(address!),

                guard let (system, manager) = System.systemExtract (context, cwm)
                    else { System.cleanup  ("SYS: ETH: GetEtherBalance: Missed {cwm}", cwm: cwm); return }

                guard let network = network.map (asUTF8String),
                    let address = address.map (asUTF8String)
                    else { System.cleanup  ("SYS: ETH: GetEtherBalance: Missed {network, address}", cwm: cwm); return }

                manager.query.getBalanceAsETH (network: network, address: address) {
                    (res: Result<String, BlockChainDB.QueryError>) in
