Unstaked
Un-staked Entities Explained
Un-staked entities are those that have not deposited a stake in the system. The stake acts as a kind of security deposit and provides additional permissions for the entity. However, there are specific circumstances where unstaked entities can still operate within the system:
No Storage Access:
If an entity does not utilize any storage whatsoever or if it exclusively uses the storage associated with the sender of the UserOperation, then it doesn't need to stake.
In simpler terms, an unstaked entity is permitted if it does not try to access or use its own storage.
Creating New Accounts:
An unstaked entity can operate if the UserOperation it's involved with does not initiate a new account (meaning the
initCode
is empty).However, there is an exception. If the UserOperation does initiate a new account, it must do so using a factory contract that is staked. In this scenario, the unstaked entity can also use storage that's associated with the sender.
Paymasters with postOp() Method:
A specific type of entity, called a paymaster, can have a method known as
postOp()
.If a paymaster possesses this method, it indicates that its
validatePaymasterUserOp
returns a "context". In such cases, the paymaster has to be staked. This requirement ensures that paymasters with additional complexities (in this case, thepostOp()
method) are kept in check with the staking mechanism.
In summary, while staking provides entities with additional permissions and trust within the system, there are certain conditions where unstaked entities can operate. These conditions are designed to allow for flexibility while ensuring the integrity and safety of the network.
Last updated