The way to do this is to update the “transfer fee” to its maximum (100%). When it is 100%, the transfer will simply fail. Here’s how.
First, click on the block explorer link for your lock contract. If your lock is on Ethereum, this will take you to Etherscan. If your lock is on Polygon, this will take you to Polygonscan… etc.
Once there, click on “Contract”. Then, click on “Write Contract” as you will change its settings. After that, press the “Connect to Web3” button to connect your wallet. This interface allows any “Lock Manager” to update elements of the lock they manage. If your wallet created the lock on the Unlock Creator Dashboard, this will be you.
By updating this field, all of the keys that are part of the lock contract will become non-transferrable. If you set a different value, for example, 5000 (or 50%), transfers will still be possible, but the recipient would only receive a membership valid for half of the time that it was before the transfer.
This is how you update the contract via a block explorer to make it so that keys are non-transferrable.