# BDK 1.0 Questions A place to put down questions regarding the new 1.0 API. <br> ## BDK Chain questions 1. Why would you want a `TxGraph::<()>`? 2. Why do we have different types of `Anchor`s (`ConfirmationTimeHeight`, `BlockId`, etc)? 3. In `is_block_in_chain`/`try_list_chain_txs`, why are you passing in a `chain_tip`? Why would anyone pass in a `chain_tip` different from `chain_oracle.get_chain_tip()`? - Maybe the reasoning is the following: let's say you have a `ChainOracle` implementation that gets updated in a different thread. You are midway through a method that uses heavily chain_oracle related methods (for example: `try_list_chain_txs`, etc). You don't want the result of those calls to change just because a new block came in, so instead, you pass in always the same `chain_tip` (the one you obtain at the start of the method) and :tada:! The response to `try_list_chain_txs` will always be the same - as opposed to, for example `bitcoin-cli listtransactions`, which changes if a new block comes in ## BDK Core questions What did `KeychainScan` become? ## Bitcoind RPC - Why does `Emitter::new` need both a `last_cp` and `start_height`? What's the different between the two? ## Tests - Are we testing for esplora too? Is there a esplorad (equivalent of electrsd, bitcoind)?