Saltar para o conteúdo
Wallets21 de outubro de 2026

Jade DIY por 15 €: construção e multisig da Blockstream

Um Jade DIY com uma placa LilyGO de 15 €: construir, ligar à aplicação da Blockstream e configurar multisig 2 de 2 com 2FA. Cada passo, com imagens.

Imagem do artigo para: Jade DIY por 15 €: construção e multisig da Blockstream

Queria saber até onde se consegue chegar com um Jade que custa quase nada. Por isso construí um com uma LilyGO T-Display S3 (cerca de 15 €) e o firmware oficial do Jade da Blockstream, liguei-o à aplicação da Blockstream num Mac e configurei uma conta 2FA Protected (multisig 2 de 2) com uma aplicação de autenticação. Depois enviei-lhe um pequeno valor de teste. Este é todo o processo, testado a 19 de outubro de 2026.

Em resumo

  • Placa: LilyGO T-Display S3, chip ESP32-S3, cerca de 15 €
  • Firmware: Jade 1.0.41 (commit e6a51ab), compilado a partir do repositório oficial
  • Funciona com: aplicação da Blockstream 3.6.0 em macOS, por USB
  • Conta: 2FA Protected, multisig 2 de 2
  • Autenticação de dois fatores: aplicação de autenticação, limite de um satoshi
  • Depósito de teste: 0,0001 BTC, de não confirmado a confirmado

Os seis passos são: compilar e fazer flash, definir o PIN e anotar a frase de recuperação, ligar à aplicação, adicionar uma conta multisig, ativar a autenticação de dois fatores e receber um primeiro valor de teste.

Em que plataformas a aplicação funciona

A aplicação da Blockstream está disponível para telemóvel e computador, por isso pode adicionar uma conta multisig no dispositivo que preferir.

Ligações de transferência em blockstream.com para Android, iOS, F-Droid, Mac Apple Silicon, Mac Intel, Windows e Linux AppImage

Transferências da aplicação da Blockstream: Android, iOS, F-Droid, Mac (Apple Silicon e Intel), Windows e Linux (AppImage). Fonte: blockstream.com/app/multisig.

Este guia usa a aplicação da Blockstream para macOS (Apple Silicon), versão 3.6.0, com o Jade ligado por USB.

O que precisa

  • Uma LilyGO T-Display S3. Ecrã de 1,9 polegadas, 170×320 píxeis. A minha está marcada com «T-Display S3 22-8-2 V1.2».
  • Um cabo USB-C de dados. Um cabo que só carrega não serve para fazer flash.
  • Um computador. macOS ou Linux para compilar o firmware (o repositório do Jade também oferece um ambiente de compilação com Docker). A aplicação de ambiente de trabalho da Blockstream funciona em macOS, Windows e Linux. Usei um Mac com Apple Silicon.
  • Aplicação da Blockstream 3.6.0, em blockstream.com/app ou nas versões do GitHub.
  • Papel e caneta para o PIN e a frase de recuperação.

Como reconhecer a placa certa: a serigrafia diz T-Display S3 com a revisão V1.2, o chip é um ESP32-S3, a etiqueta indica MODEL: T-Display-S3 e um LED verde de alimentação acende quando a placa recebe energia por USB. O TTGO T-Display original é outra placa, com um ecrã mais pequeno e um chip ESP32. Use o perfil de compilação que corresponde à sua placa.

Parte de trás da LilyGO T-Display S3 com o chip ESP32-S3, o chip flash Winbond e a etiqueta T-Display-S3 com o ID da FCC

A parte de trás da placa.

Outras placas DIY que pode usar

A T-Display S3 é apenas uma das opções. O repositório do Jade inclui perfis de compilação para várias placas económicas. Eu compilei e testei a T-Display S3.

PlacaPreço aproximadoControloPerfil de compilação
LilyGO TTGO T-Display10 $Dois botõessdkconfig_display_ttgo_tdisplay
LilyGO T-Display S3 (usada aqui)15 $Dois botõessdkconfig_display_ttgo_tdisplays3
M5Stack M5StickS316 $Dois botõessdkconfig_display_m5sticks3
M5Stack M5StickC PLUS 220 $Dois botõessdkconfig_display_m5stickcplus2
M5Stack Basic Core40 $Três botõessdkconfig_display_m5blackgray

Existem mais perfis para as M5Stack FIRE, Core2 e CoreS3, os ecrãs táteis da Waveshare e a LilyGO T-Watch S3. Os preços e os detalhes vêm do guia Jade DIY, por isso consulte o DIY README para ver a lista atual antes de encomendar.

Passo 1: compilar e fazer flash do firmware

Usei o repositório oficial Blockstream/Jade com o firmware 1.0.41, ESP-IDF 5.5.5 e Python 3.12. O repositório inclui um perfil de compilação para esta placa, por isso não é preciso alterar nada.

Instalar a cadeia de ferramentas

git clone --depth 1 --branch v5.5.5 --recursive --shallow-submodules https://github.com/espressif/esp-idf.git
cd esp-idf
./install.sh esp32s3
. ./export.sh
pip install cmake ninja cbor2 pycryptodome wallycore

Compilar

git clone --recursive https://github.com/Blockstream/Jade.git
cd Jade
cp configs/sdkconfig_display_ttgo_tdisplays3.defaults sdkconfig.defaults
idf.py set-target esp32s3
idf.py all

Fazer flash

  1. Mantenha BOOT premido, ligue o cabo USB e depois solte BOOT. O ecrã fica preto.
  2. Execute idf.py -p /dev/cu.usbmodemXXXX flash.
  3. Desligue o cabo e volte a ligá-lo. O menu do Jade aparece.

O ecrã inicial do Jade na LilyGO T-Display S3 logo após o flash, com Options, Uninitialized e Set Up

Logo após o flash: o ecrã inicial do Jade mostra Uninitialized, com Options e Set Up.

No meu Mac, o ESP-IDF não forneceu o cmake nem o ninja, por isso instalei ambos com o pip dentro do ambiente do ESP-IDF. O DIY README também avisa para nunca fazer flash de firmware DIY num Jade oficial, nem o contrário.

Passo 2: definir o PIN e criar a wallet

O Jade pergunta o método de ligação (USB ou Bluetooth) e fica à espera da aplicação complementar. O PIN e a frase de recuperação são criados no próprio dispositivo, com os seus dois botões.

  1. Escolha Begin Setup no Jade.
  2. Escolha um PIN de seis dígitos e confirme-o.
  3. Anote a frase de recuperação em papel.

O ecrã Confirm PIN na LilyGO T-Display S3 com Jade, com os dois botões na lateral da placa

Confirmação do PIN no Jade com os dois botões laterais.

O Jade a mostrar quatro palavras da frase de recuperação no ecrã

O Jade mostra a frase de recuperação de quatro em quatro palavras. Anote-as em papel.

As duas fotografias vêm de uma configuração de teste anterior. Essa wallet foi entretanto apagada e nunca teve fundos.

Comecei este passo a partir do Mac, com o cliente Python do Jade por USB. O ecrã do PIN apareceu no dispositivo e a configuração decorreu normalmente:

# executar a partir do repositório do Jade, com o ambiente ESP-IDF ativo
from jadepy import JadeAPI
jade = JadeAPI.create_serial('/dev/cu.usbmodemXXXX')
jade.connect()
jade.auth_user('mainnet')   # o ecrã do PIN aparece agora no Jade

Passo 3: ligar à aplicação da Blockstream

Ligue o Jade ao Mac e abra a aplicação de ambiente de trabalho da Blockstream. O Jade aparece como dispositivo de hardware. Uma placa DIY não é um Jade de loja, por isso a verificação de autenticidade da aplicação não a aceita como tal. Continue então como dispositivo DIY. Depois de introduzir o PIN no dispositivo, a aplicação mostra Connected e carrega a wallet.

Aplicação da Blockstream em macOS a mostrar o Jade 15794C como wallet de hardware ligada, com um saldo de 0 EUR

A aplicação da Blockstream em macOS com o Jade DIY ligado.

Lista de wallets na aplicação da Blockstream com o Jade 15794C em Hardware Devices e um ponto verde

O Jade na lista de Hardware Devices, com um ponto verde enquanto está ligado.

A aplicação de ambiente de trabalho reconhece o Jade DIY por USB e trata-o como uma wallet de hardware normal.

Passo 4: criar a conta multisig

  1. Abra o menu junto ao nome da wallet e escolha Add New Account.
  2. Mantenha Bitcoin como ativo.
  3. Escolha 2FA Protected. É a opção multisig 2 de 2, pensada para quem gasta com frequência.
  4. Confirme no Jade, se ele pedir.

Menu junto ao nome da wallet com Get Support, Rename, Add New Account, Refresh, View archived accounts e Logout

O menu junto ao nome da wallet. Escolha Add New Account.

Painel Create New Account com Standard singlesig, 2of3 with 2FA e 2FA Protected

Políticas de segurança ao criar uma conta nova.

A opção 2 de 3 precisa de uma terceira chave de emergência e é mais adequada à detenção a longo prazo, por isso não a usei aqui.

A nova conta 2FA Protected com um saldo de 0 BTC e os botões Buy, Send, Receive e Swap

A conta 2FA Protected logo após a criação.

A conta aparece como 2FA Protected, multisig 2 de 2. Uma chave está no Jade.

Passo 5: ativar a autenticação de dois fatores

  1. Abra Settings → Two-Factor authentication.
  2. Ative Authenticator app e leia o código QR com a sua aplicação de autenticação.
  3. Introduza o código de seis dígitos para confirmar.
  4. Defina o 2FA threshold para o mínimo, 0,00000001 BTC, para que cada gasto exija um código.
  5. Deixe a validade da 2FA no valor predefinido de 12 meses.

Definições de Two-Factor authentication com Email, SMS, Phone call e Authenticator app, todos desativados

Os métodos de 2FA disponíveis antes da configuração. Usei a aplicação de autenticação.

Definições de Two-Factor authentication com a Authenticator app ativada e o limite em 0,00000001 BTC

Aplicação de autenticação ativada, limite de um satoshi.

À esquerda: confirmação de que o limite de Two-Factor é de 0,00000001 BTC. À direita: as opções de validade de 6, 12 e 15 meses, com 12 meses selecionados

À esquerda: o limite da 2FA está definido em 0,00000001 BTC. À direita: a validade pode ser de 6, 12 ou 15 meses; mantive 12.

A Blockstream só cossigna quando recebe o código da aplicação de autenticação. O Jade guarda a outra chave.

Passo 6: receber um primeiro valor de teste

Para ver a conta a funcionar com moedas reais, enviei-lhe um pequeno valor de teste.

  1. Clique em Receive e escolha a conta 2FA Protected (multisig 2 de 2).
  2. Verifique o endereço de receção na aplicação. Se a aplicação se oferecer para verificar o endereço no dispositivo, confirme-o também aí.
  3. Envie um pequeno valor para esse endereço a partir de uma exchange ou de outra wallet.
  4. A transação aparece primeiro como pendente e depois como confirmada, assim que entra num bloco.

Painel Receive com as contas Bitcoin Standard (singlesig, native SegWit) e 2FA Protected (multisig 2 de 2)

Escolha a conta em que quer receber. O valor de teste foi para a conta 2FA Protected.

Resumo da aplicação da Blockstream com o Jade ligado, um saldo total de 7,36 EUR e uma transação recebida de 0,0001 BTC

O resumo depois do depósito de teste: 0,0001 BTC, cerca de 7,36 €, com o Jade ainda ligado.

O depósito na aplicação

Pouco depois do envio, a transação apareceu na aplicação como Received e Unconfirmed. Quando é incluída num bloco, a aplicação começa a contar as confirmações em seis.

Detalhes da transação na aplicação da Blockstream, da esquerda para a direita: não confirmada, 1 de 6 confirmações, totalmente confirmada. Conta 2FA Protected; endereço de receção e ID da transação desfocados

Da esquerda para a direita: não confirmada, ainda à espera de um bloco; 1 de 6 confirmações; confirmada, o selo de «pendente» desapareceu.

O endereço de receção e o ID da transação estão desfocados de propósito nas três capturas de ecrã.

DetalheValor
Conta2FA Protected
Montante0,0001 BTC, cerca de 7,35 €
Taxa de rede0,00000284 BTC a 2 sat/vbyte, paga pelo remetente

O que testei

PassoResultadoNotas
Compilar e fazer flash do Jade 1.0.41FuncionaPerfil de compilação oficial para a T-Display S3, sem necessidade de alterações.
PIN e wallet no dispositivoFuncionaEcrã do PIN e frase de recuperação no próprio Jade.
Aplicação da Blockstream 3.6.0 em macOS, USBFuncionaDispositivo reconhecido e mostrado como ligado de imediato.
Conta multisig 2FA ProtectedFuncionaCriada a partir do menu Add New Account.
2FA com aplicação de autenticaçãoFuncionaAtivada, limite definido em um satoshi.
Depósito de teste de 0,0001 BTCFuncionaAparece como recebido, primeiro não confirmado, depois confirmado.

Segurança: apenas valores pequenos

Esta é uma placa DIY. Não ativei o arranque seguro nem a encriptação da memória flash, por isso quem tiver acesso físico à placa tem mais possibilidades do que com um Jade de loja. Envie apenas um valor que possa dar-se ao luxo de perder, guarde a frase de recuperação em papel e nunca a partilhe, nem ao PIN.

Ver também: multisig na aplicação da Blockstream · Blockstream/Jade no GitHub.

Divulgação: a Cryptocodes é parceira do programa de afiliados da Blockstream. Este guia documenta o meu próprio teste, feito no meu próprio hardware.

#jade#blockstream#hardware wallet#multisig#diy#lilygo#2fa