project screenshot
project screenshot
project screenshot


SubKey is a key management layer which allows granting specific permissions to any smart contract. No more private keys sharing! If you need to provide access to your assets to someone - share a SubKey.


Created At

ETHNewYork 2022

Winner of


๐Ÿฅ‡ Gnosis Safe โ€” Best Use

Project Description

SubKey proposes a new model in key management for DeFi, tokens (NFT, ERC20), etc. Share fine grained access to some of your assets to other accounts or apps and let them run transactions on your behalf.

SubKey allows you to construct specific privileges that match your requirements and make sure the third party users use only allowed functions. SubKey allows you to construct specific privileges that match your requirements and grant access according to them.

Subkey offers fine grained permissions:

  • Control what contracts and methods the third party can interact with.
  • Transaction amounts and spending limit.
  • Set the expiration for the permissions.


  • Share a Subkey with monitoring tools that can only close your DeFi positions, but not have permissions to execute any other transactions.
  • Share a Subkey with Uniswap optimizer and let it manage positions for you (mint, automatically rebalance, withdraw). Your wallet will keep custody over all minted positions.
  • Share a Subkey with your subcontractor and let them mint an NFT collection for you, revoke it at any time

Subkeys are generated off chain and require zero gas for the owner to create.

How it's Made

SubkeyWallet is a smart contract for EVM. To create a Subkey an owner needs to: Construct a Permission that includes: Third party caller address Predicate and its params. The Predicate params control what the third party is allowed to do. Sign the Permission Share signed Permission with a third party

ZeroGasRoleModule - Subkeys implementation for Gnosis safe Modules.

Permissions In the v1 we supported permissions for whitelisting contract addresses and method names (see PredicateImplV1). More sophisticated implementations can also support: method params, value, budget, expiration.

Zero gas Creating and assigning Permissions does not require onchain interaction. Owner does not need to pay any gas to create a Permission. An owner can easily create millions of subkeys with permissions with zero gas cost.

background image mobile

Join the mailing list

Get the latest news and updates