Down the Rabbit Hole: Sequence
Sequence provides users with a non-custodial user-friendly wallet. It supports multiple chains and seamless integration, and developers can easily integrate Sequence into their dapps to ensure they can onboard web2 users with no prior crypto experience.
Sequence Wallet is a blockchain-based smart contract that each user manages with multiple private keys. This multi-key system makes Sequence function like a multisignature wallet. Users can create a Sequence Wallet using one of the supported social or email login options. In the future, Sequence will have a traditional Web3 login option—where users can extract a single private key—as well.
Smart Contract Wallets
Smart contract wallets incorporate arbitrary logic within the boundaries of the underlying virtual machine's capabilities.
- Multiple keys
- Social recovery support
- Meta-transactions, so users can pay for gas in any token of their choice
- Sponsored transactions, so users don’t have to pay gas at all
- More flexible design space
- Key rotation
Features of Sequence
- Login with social media or email: Sign in with ease using your email, Google, Facebook, or other social media accounts. There is no need to be familiar with the blockchain.
- Support for multiple networks: Sequence can support all EVM-compatible chains with its multi-network capabilities. At present, Sequence supports Ethereum, Polygon, BNB Smart Chain. Arbitrum, Optimism and Avalanche will be available very soon.
- Swap in-wallet: Sequence integrated the 0xProtocol to allow wallet users to perform swaps between ERC-20 tokens on the supported networks.
- Bridge in-wallet: Sequence has embedded bridging capabilities thanks to the bridge aggregator Socket.
- Multiple Onramps: fiat-to-crypto and fiat-to-NFT onramps, so users can buy crypto and NFTs with credit or debit cards
- Save time and money: Batch and parallel transactions save time and money and reduce carbon footprint
- Transaction relaying: means users don't need to worry about gas prices or stuck transactions.
- Every token is auto-indexed: Auto-indexing of all tokens and NFTs so that they automatically display in your wallet.
- Web3 compatibility: Sequence is Web3 compliant, which means it may be used for any dapp on most supported networks via WalletConnect.
- App, browser & extension: Users can access the Sequence Wallet by visiting their app: https://sequence.app, using their browser extension, mobile apps will be available soon.
- Non-custodial: Users have complete control over their wallets using Sequence, and no one but them has access to their funds.
- First-class NFT support: Sequence supports NFTs, including ERC-1155 and ERC-721 tokens—complete with artwork/video and metadata—along with ERC-20 tokens.
- No installation required: Applications could natively embed Sequence, letting the users access their wallets without requiring any installations.
Access Sequence Wallet on Browser
Here is how to access Sequence Wallet on Browser:
- Open the Sequence app on the browser.
- Your wallet will be created and a new page will pop up.
- Click on Continue to move further. This is how your wallet will look.
Here is how you can check your security keys:
- Go to the icon in the top right corner near your wallet address.
- Now click on Settings.
- Select Active Sessions, your session, guard, and login keys will be displayed.
Social Login Wallets
A Session key, a Guard key, and a Torus key are used to safeguard Sequence Wallets generated with social logins. When a user creates their Sequence Wallet using social login or email authentication, the session key and Torus key are produced for the first time. At least two of the three keys are required to unlock an account. This means that if one of the three keys is lost or compromised, the remaining two keys can be used to replace the missing or compromised key.
For example, if a user loses their smartphone with their session key, they can access their Sequence Wallet account using the Torus and Guard keys. After that, a new session key is generated automatically, and the user is returned to their account, with all three keys accessible once more.
- Session key: Session keys are saved in the IndexedDB of the browser. Users should be cautious about allowing unwanted access to their devices, as an attacker with access to their IndexedDB effectively controls their session key.
- Guard key: a Guard key is encrypted and stored on a server controlled by Horizon. This key enables Horizon to assist users who have misplaced their session key and help with account recovery.
- Torus key: Torus uses threshold cryptography to ensure that only the user has access to their private key, effectively making them non-custodial. If a bad actor gained access to the social account or email address that a person used to generate their Torus key, their Torus key would be compromised. If the Torus network gets hacked, all Torus keys could be compromised.
Web3 Login Wallets (future feature)
The Web3 Login Wallets feature is anticipated in Q3-Q4 2022.
Once implemented, some more advanced users may wish not to use an email address or a social login to build a Sequence Wallet.
These users' wallets would only be managed by session keys kept on their devices and a backup key if this approach was adopted. As a result, these wallets are not linked to a guard key, and users are solely responsible for ensuring that they do not lose access to their keys.
Introducing New Devices
Web3 login users can access their wallets on other devices by scanning a QR code on the new device with one of their previously authorised devices. The QR code provides the address of the session key on the new device, which will be added to the wallet confirmation by the already approved device. Users will never have to enter their seed to connect to a new device if they already have access to one authorised.
Backup Key (Feature in development)
This feature is not yet available in Sequence Wallet, but is actively being worked on. ETA Q3-Q4, 2022.
Users can add a backup key to their wallet, which will have enough signing power to perform any transaction. This key will only be shown once and can be added by users concerned about losing access to other keys in the system.
Transaction and Gas Fees
Users can pay transaction fees in several currencies.
Sequence Wallets are actually smart contracts and thus are incapable of performing transactions independently. Thus, a third-party relays the user transactions. Anyone can relay these transactions, but the present interface doesn't allow consumers to choose which relayer to employ. Sequence Relayers reprice their transactions every 2 or 3 blocks to ensure quick inclusion. As a result, customers will never have to deal with stuck transactions or worry about managing gas costs.
Users are shown a predetermined charge at the transaction confirmation time, which is used to reimburse the relayers that will carry out the transaction. Even if the relayer re-prices the transaction, the fee will not change for the user. Any additional cost will be absorbed by the relayer.
Sequence Wallet is based on the Web and Ethereum Web3 standards and can be used everywhere a contemporary browser can be used. It has been carefully developed for easy onboarding while retaining user security and allowing users to gradually enhance their security level by including additional keys.
This implies that Sequence will work without modification if you've built a dapp to operate with MetaMask. Sequence will also work if you're using web3.js or ethers.js.
Build with Sequence
If you are working on any dapp that requires users to connect via wallet, Sequence is one of the best choices to consider. You can integrate Sequence with any dapp that you develop by following the given steps:
- Installation: 0xsequence is a meta-package including all the sub-packages of sequence.js SDK. To add this to the project, add the following to package.json:
Here is the entire code for it: https://docs.sequence.build/build-with-sequence/installation/
- Connecting the wallet: Sequence allows multiple ways for the users to access/ connect their wallet, as follows: an on-demand Ethereum web wallet for newbies by 0xsequence npm package + https://sequence.app; Sequence Wallet Chrome Extension; smartphone access by WalletConnect support within Sequence.
- Connecting dapp with 0xsequence: With Sequence, you can permit your users to access your dapp without requiring any installations. First initiate the wallet provider and then connect to the wallet. After connecting, use wallet.openWallet() to open the wallet. Here is the code for it: https://docs.sequence.build/build-with-sequence/connect-wallet
- Getting the Account address of the wallet: You may want your users to connect and verify their account address by signature. Sequence authenticates the address simultaneously while prompting the user to connect their wallet to the dapp. Details found here: https://docs.sequence.build/build-with-sequence/get-address.
- Signing and Verifying the messages: Sequence Wallets can sign arbitrary messages and validate them by EIP 1271 method, using these codes: https://docs.sequence.build/build-with-sequence/sign-message.
- Signing and Verifying transactions: Using the following code, you can use Sequence to sign and verify transactions just like the messages: https://docs.sequence.build/build-with-sequence/sign-transaction.
- Sending transactions, ERC-20 tokens, NFTs, collectible tokens, and a transaction batch: For sending any asset from one wallet to another, use the following documents: https://docs.sequence.build/build-with-sequence/send-transaction, sending ERC-20 tokens: https://docs.sequence.build/build-with-sequence/send-erc20, sending NFTs: https://docs.sequence.build/build-with-sequence/send-erc721, sending collectible tokens: https://docs.sequence.build/build-with-sequence/send-erc1155, and sending a transaction batch: https://docs.sequence.build/build-with-sequence/send-batch-transactions.
- Backend development with Sequence: Nodejs: https://github.com/0xsequence/sequence.js, Go: https://github.com/0xsequence/go-sequence, ethkit: https://github.com/0xsequence/ethkit, and other supports are available for backend development with Sequence
- Developing Relaying Server with Sequence: Sequence allows you to create a smart contract wallet that your server can use to dispatch your users' transactions without worrying about throughput, transaction speed, and re-orgs. Details here: https://docs.sequence.build/build-with-sequence/building-relaying-server
- Using Sequence on Testnet: Sequence supports Rinkeby and Mumbai as the testnet networks. To connect to one, visit the Sequence login screen and select Enable Testnet from the footer.
Connecting Sequence via Chrome Extension
Sequence Chrome extension can be found in the Google library. You can install it to access the wallet.
Connecting Sequence via WalletConnect
WalletConnect is already supported by Sequence for connecting to dapps. Nothing else has to be done if your dapp already supports WalletConnect and you don't require Sequence-specific features. The WalletConnect flow looks like this from the user's perspective.
- In the case of Uniswap, you are prompted to link your wallet.
- Choose the WalletConnect option.
- Scan the QR code on the screen using Sequence. Alternatively, you can use OS clipboard to copy the connection data.
If you choose to scan, here is what happens:
- Dapp's QR code is scanned.
Alternatively, the code is pasted from the OS clipboard if you have selected it earlier.
- Confirms the connection request.
- The connection successfully establishes, and the dapp updates to reflect this.
- The dapp can send signing requests to Sequence while connected. For each activity launched by the dapp, Sequence will always ask the user for confirmation.
- You can disconnect the wallet from the session menu once completed using the dapp.
Multiple private keys can control each Sequence Wallet, making it a multisignature wallet. Users can build a Sequence Wallet using supported social login options or create a wallet with a private key that is only saved on that device.
Compared to typical blockchain wallets, the greater security stems from the fact that a bad actor must compromise multiple independent keys rather than a single key to get control of a user's wallet. The underlying principle is that the more independent private keys a user adds to their wallet, the safer it gets, even if each key is only somewhat secure on its own.
Skyweaver is a large-scale trading card game created with Sequence. Visit https://www.skyweaver.net to play.
Vaportrade is a fantastic peer-to-peer NFT trading platform. Visit https://vaportrade.net to give it a shot.
- Skyweaver: Skyweaver is a large-scale trading card game created with Sequence. Visit https://www.skyweaver.net to play.
- Vaportrade: Vaportrade is a peer-to-peer NFT trading platform. Visit https://vaportrade.net to give it a shot.
- Community Gaming
- Cool Cats
- Trace Network Labs
- Nalnda Marketplace
- Countless more dapps across gaming, social, marketplaces, and DeFi are integrating Sequence now
Subscribe to our newsletter for weekly updates 👇