@petersalomonsen.near [Posted on DevHub](https://near.social/#/devgovgigs.near/widget/Post?id=1033) ## Idea: Sign-in to multiple apps ( contracts ) Today, when you login to near.social, near.org or any other BOS gateway, you are only authenticated with one smart contract: `social.near`. This allows you to post and like posts without confirming with the wallet each time, but if you want to post or like in another smart contract like for example devgovgigs.near ( NEAR DevHub ), then you need to confirm with the wallet. The reason for this is that only the access key for `social.near` is stored in your browser, and if it was also possible to store access keys for additional contracts, then it would also be possible to interact with other smart contracts from BOS without having to confirm with the wallet for each transaction. In [near-api-js](https://github.com/near/near-api-js/blob/master/packages/keystores-browser/src/browser_local_storage_key_store.ts#L38) there's a possibility to initialize a browser localstorage keystore (which is the keystore type used by the Near social VM ) with a prefix. One could use a different prefix for each smart contract, and then be able to store function access keys for multiple smart contracts. In order to achieve this, NEAR social VM needs to initialize a keystore for each smart contract it interacts with. So whenever a contract call is made from a widget, the VM should check if a keystore for this contract already exist, and if not redirect to the wallet ( using the same wallet as was selected for logging into BOS ) for creating a function access key. Following calls to that contract will then not have to go via the wallet. This approach should not need changes to any API, or to any existing widgets. Once implemented this way, all existing widgets should be able to trigger generating a function access key when calling a contract that has not been called earlier, and following calls will then not have to be authenticated via the wallet ( of course as long as the gas allowance is still sufficient, like for any function access key ).