Curiosidade móvel
Eu passei dois anos construindo aplicativos móveis da web 2.0 e recentemente me perguntei por que a adoção da carteira da web3 não é maior. Carteiras de computador (i.e. Metamask e Phantom) são uma ótima introdução à blockchain. No entanto, é inevitável que as carteiras móveis tenham que ser mais popularizadas.
Rainbow, Argent, Zerion, Trust Wallet e outras carteiras estão abrindo caminho para interações em carteiras de celular. Mas sob a superfície, todas elas são alimentadas pelo WalletConnect, então eu decidi mergulhar mais fundo.
O que é o WalletConnect?
WalletConnect é um protocolo de código aberto que conecta várias carteiras e aplicativos descentralizados ( dApps ). Ao digitalizar um código QR ou clicar em um deep link, o WalletConnect estabelece uma conexão segura e criptografada. Isso é feito sem compartilhar sua chave privada. Desde 2018, mais de 170 carteiras foram integradas a elas e é o padrão comum para conexão de carteira.
Antes do WalletConnect, os desenvolvedores estavam escrevendo um código de autorização separado para conexões com a carteira. Portanto, ter um protocolo unificado de código aberto e permitir que os usuários se conectem ao web3 é uma vitória.
Como tudo funciona?
Nota: Esta informação pertence à v1, pois é suscetível a alterações em sua nova versão v2. Veja Docs.*
Atualmente, o protocolo WalletConnect possui implementações de referências para (escrito em TypeScript):
- Cliente
- Servidor Bridge
- Servidor de push
Estabelecendo conexão
Para estabelecer uma conexão entre o dApp e o Wallet, o cliente e os servidores bridge interagem juntos. O servidor push é um serviço opcional para assinaturas de notificação push.
Fonte (Docs de conexão de carteira)
O diagrama acima presente nos documentos deles ilustra esse processo por:
- O dapp deseja conectar e postar uma Session Request → Servidor Bridge.
- dapp usa o formato URI padrão WalletConnect (EIP-1328) para um pagamento criptografado → Servidor Bridge.
- Carteira lê o URI através do QR Code / deep link e descriptografa o pagamento da solicitação de conexão → Servidor Bridge
- Servidor Bridge → Carteira exibe solicitação de detalhes ao usuário que é ou aprovado ou rejeitado. Se rejeitada, uma mensagem de erro é lançada.
- Se aprovado, o dapp receberá as informações sobre chainId e conta.
Interface com outras chamadas JSON-RPC
Depois que a carteira e o dApp são autenticados, o Bridge Server permite qualquer solicitação de chamada JSON-RPC. O servidor push para notificações também pode ser utilizado aqui.
Fonte (Docs de conexão de carteira)
Bibliotecas / Implementações
O WalletConnect possui vários SDK clientes para Swift, Kotlin e Javascript / Texto datilografado.
Infraestrutura / importância do WalletConnect
Depois de examinar como o WalletConnect é o middleware para carteiras e dApps da web3, comecei a perceber sua importância. Se a App Store ou o Google Playstore não oferecer suporte a produtos nativos da web3, o melhor gateway é o WalletConnect.
Eles são a “cintura estreita” para o ecossistema web3. Conforme descrito por Nichanan Kesonpat em “WalletConnect: o protocolo de cintura estreita entre carteiras e Dapps ”, eles são semelhantes ao TCP / IP da era web3. Eles são agnósticos para cadeias, carteiras e dApps, que é o que o TCP permitiu para a era da Internet.
Fonte: Nichanan Kesonpat ( 1kx)
Github atual
Olhar para o Github corrente também ajudou a fornecer um retrato do que está sendo construído:
- WalletConnectKotlinV2
- WalletConnectSwiftV2
- Walletconnect-monorepo
- Gotrue
- Scarlet
- Kotlin-walletconnect-lib
-
Walletconnect-utils
- Web3modal
- WalletConnectUnity
- WalletConnectSwift
Isso pressupõe que o V2 seja de alta prioridade, mantendo as bibliotecas / ferramentas existentes, como Web3Modal e Gotrue, que estão sendo trabalhadas.
V2
No final do ano passado, os recursos do Walletconnect V2 foram anunciados e estão sendo lançados no terceiro trimestre de 2022. Conforme detalhado no artigo oficial, V2 introduz:
- Interface agnóstica de chains
- Suporte para várias chains
- Emparelhamento e separação de sessões
- Permissões JSON-RPC
- Gerenciamento aprimorado de sessões
- Retransmissão de mensagens descentralizadas
Com o V2, eles reconheceram que o mundo é de várias cadeias ( ou seja, Cosmos, Solana e Polkadot ). Usuários de vários ecossistemas poderão acessar os dApps. Além disso, eles melhoraram o padrão da sessão de login e estão trabalhando no bate-papo descentralizado. Será interessante ver se o bate-papo na web3 decola.
Futuro do WalletConnect
Foi interessante mergulhar mais fundo em um protocolo de infraestrutura principal. Com o V2, será ótimo ver mais carteiras e dApps com várias cadeias e mensagens na web3.
Recursos
- https://docs.walletconnect.com/
- https://github.com/WalletConnect
- https://medium.com/1kxnetwork/walletconnect-the-narrow-waist-protocol-between-wallets-dapps-75a1f7665a4c ## Outros blogs
- https://www.argent.xyz/learn/what-is-walletconnect/
- https://moralis.io/what-is-walletconnect-the-ultimate-walletconnect-guide/
- https://www.alchemy.com/overviews/what-is-walletconnect
- https://academy.binance.com/en/articles/how-to-use-walletconnect
Meu Twitter
Este artigo foi escrito por Tom Terado e traduzido por Diogo Jorge. O artigo original pode ser encontrado aqui.
Top comments (0)