Bob (the person) doesn't have to necessarily know that there's an auction going in the blockchain, but he can launch a transaction and look for eUTXOs of this type of contract. If the off-chain code finds these specific type of eUTXOs, then he can fetch the datum associated to it, and therefore he can place a bid. If you look in the `EnglishAuction.hs` file, line 334: ``` findAuction :: CurrencySymbol -> TokenName -> Contract w s Text (TxOutRef, ChainIndexTxOut, AuctionDatum) findAuction cs tn = do utxos <- utxosAt $ scriptHashAddress auctionHash ... ``` This is the function responsible for this. This happens also when bidding (line 277): ```haskell (oref, o, d@AuctionDatum{..}) <- findAuction bpCurrency bpToken ... ``` ...or closing the auction (line 309), or with any other endpoint the contract opens to the public.