Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: create a session key authenticator #606

Open
bonustrack opened this issue Mar 7, 2024 · 1 comment
Open

feat: create a session key authenticator #606

bonustrack opened this issue Mar 7, 2024 · 1 comment
Assignees

Comments

@bonustrack
Copy link
Member

We should create a new authenticator that works with session key. Here are the requirements:

  • Session keys would always be Starkkey generated in user browser
  • It should be possible to authenticate on the contract with a tx from L1, authentication should be only from the chainId where it was initiated.
  • It should be possible to authenticate with an Ethereum signature which would work on any chain (for EOAs)
  • It should be possible to authenticate with a Starknet wallet doing a signature
  • We should have a way to revoke a session key with the session key itself or native account
  • Do we need expiration?

We may want to look into Argent on how they dealing with session keys and if there is a way to integrate in their system, I think there is or will be some support in Argent X for session key, which would be great to be compatible with.

This is still a draft, ideally we should iterate on this and figure out a flow and interface before starting the integration.

@Orland0x
Copy link
Contributor

Argent X session key implementation described here: https://github.com/argentlabs/argent-x/tree/main/packages/sessions

This approach leverages account abstraction to authorise a separate key on the same wallet to authorize txs.

This would in principal work for Starknet accounts generating a session (so long as they were argent x), but wouldnt work for ethereum accounts. We would need to generate a new Starknet account for the latter case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants