With Turnkey you can create multi-user accounts with flexible co-ownership controls. This primitive enables you to establish delegated access to a user’s wallet, reducing or removing the need for them to manually approve each action. You can provide a smoother user experience while ensuring that end-users maintain full control over their wallets.
Delegated access works by creating a specialized business-controlled user within each end-user’s sub-organization that has carefully scoped permissions to perform only specific actions, such as signing transactions to designated addresses. This can enable your backend to do things like:
Here’s how to implement delegated access for an embedded wallet setup:
A simple example demonstrating the delegated acess setup can be found here.
Create your sub-organization with the two root users being:
Create a custom policy granting the Delegated Account specific permissions. You might grant that user permissions to:
Here’s one example, granting the Delegated Account only the permission to sign ethereum transactions to a specific receiver address:
After completing these steps, the sub-organization will have two users: the end-user (the only root-user) and the Delegated Account user, which only has the permissions granted earlier via policies and no longer retains root user privileges.
Below is a code example outlining the implementation of the delegated access setup flow described above
With Turnkey you can create multi-user accounts with flexible co-ownership controls. This primitive enables you to establish delegated access to a user’s wallet, reducing or removing the need for them to manually approve each action. You can provide a smoother user experience while ensuring that end-users maintain full control over their wallets.
Delegated access works by creating a specialized business-controlled user within each end-user’s sub-organization that has carefully scoped permissions to perform only specific actions, such as signing transactions to designated addresses. This can enable your backend to do things like:
Here’s how to implement delegated access for an embedded wallet setup:
A simple example demonstrating the delegated acess setup can be found here.
Create your sub-organization with the two root users being:
Create a custom policy granting the Delegated Account specific permissions. You might grant that user permissions to:
Here’s one example, granting the Delegated Account only the permission to sign ethereum transactions to a specific receiver address:
After completing these steps, the sub-organization will have two users: the end-user (the only root-user) and the Delegated Account user, which only has the permissions granted earlier via policies and no longer retains root user privileges.
Below is a code example outlining the implementation of the delegated access setup flow described above