# Controller on Katana 1. Predeploy Controller account contracts to Katana (similar to UDC) 2. Inside Slot, we know the master account and can fund a users controller for deployment 3. When a user tries to interact with a new chain, Slot sends ETH to fund the controller address 4. a. [If deploy on invoke is supported] Controller prompts user to sign a session token, the session token is used to invoke the `registerSession` method, with the included [account deployment calldata](https://github.com/starkware-libs/starknet-specs/blob/76bdde23c7dae370a3340e40f7ca2ef2520e75b9/api/starknet_api_openrpc.json#L2749C30-L2749C53). b. a. [If deploy on invoke is *not* supported] Controller prompts user to sign a session token, the session token is used to deploy the account. Ideally, we can register the session token in the deploy txn.