     }
 
     public func getTransfers (blockchainId: String, addresses: [String], completion: @escaping (Result<[Model.Transfer], QueryError>) -> Void) {
-        dbMakeRequest (path: "transfers", query: ["blockchain_id":blockchainId]) {
+        let queryKeys = ["blockchain_id"] + Array (repeating: "address", count: addresses.count)
+        let queryVals = [blockchainId]    + addresses
+
+        dbMakeRequest (path: "transfers", query: zip (queryKeys, queryVals)) {
             (res: Result<[BlockChainDB.JSON], BlockChainDB.QueryError>) in
             completion (res.flatMap {
                 let transfers = $0.map { Model.asTransfer(json: $0) }

    }

    // [String:String] does not handle ["addresses":[...]]
    internal func dbMakeRequest (path: String, query: [String:String]?, completion: @escaping (Result<[JSON], QueryError>) -> Void) {
        guard var urlBuilder = URLComponents (string: dbBaseURL)
            else { completion (Result.failure(QueryError.Foo)); return }


    }

    public func getCurrencies (blockchainID: String? = nil, completion: @escaping (Result<[Model.Currency],QueryError>) -> Void) {
        dbMakeRequest (path: "currencies", query: blockchainID.map { zip(["blockchain_id"], [$0]) }) {
            (res: Result<[BlockChainDB.JSON], BlockChainDB.QueryError>) in

            completion (res.flatMap {
