# 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)?