Documentación para desarrolladores de BitTool Signer
BitTool Signer convierte un iPhone o un móvil Android de repuesto en un firmador sin conexión. Sus claves nunca salen de ese móvil: tu cartera intercambia códigos QR con él, nunca tráfico de red. Esta documentación describe cada byte de ese intercambio, y el diseño de seguridad que hay detrás, para que puedas añadir BitTool Signer a tu propia cartera.
Cómo funciona
Tu cartera sigue en línea y hace todo lo que necesita red: saldos, comisiones, nonces, construcción de transacciones y difusión. BitTool Signer permanece sin conexión y hace lo único que necesita una clave privada: comprueba una solicitud y la firma.
- 1Muestra un código QR de vinculación: solo claves públicas.
- ◀ ur:bytes · ur:crypto-account · ur:crypto-hdkey …
- 2Importa las cuentas como cartera de solo lectura y muestra los saldos.
- 3Construye una transacción o un mensaje sin firmar y lo muestra como código QR.
- ur:crypto-psbt · ur:eth-sign-request · ur:tron-sign-request · ur:sol-sign-request ▶
- 4Lo decodifica, muestra cada campo, pide la contraseña de la cartera y firma.
- ◀ ur:crypto-psbt · ur:eth-signature · ur:tron-signature · ur:sol-signature
- 5Verifica la firma, ensambla la transacción y la difunde a la red.
Todo lo que viaja entre ambos son datos públicos: claves públicas extendidas, direcciones, transacciones sin firmar y firmas. Un código QR de vinculación nunca contiene una frase de recuperación, una semilla ni una clave privada.
Qué puedes integrar
Cadenas y formatos compatibles
| Cadena | Vinculación (nivel de moneda) | Solicitud de firma → respuesta | Firma |
|---|---|---|---|
| Bitcoin | ur:crypto-account (xpub de la cuenta) | ur:crypto-psbt → ur:crypto-psbt (también ur:psbt, BBQr, Base64) | PSBT v0/v2: P2WPKH, P2TR, P2SH-P2WPKH, P2PKH, multifirma |
| EVM | ur:crypto-hdkey (xpub de la cuenta) | ur:eth-sign-request → ur:eth-signature | Transacciones legacy, EIP-2930 y EIP-1559, personal_sign, EIP-712 |
| TRON | Dirección simple | ur:tron-sign-request → ur:tron-signature | Transacciones raw_data, mensajes TIP-191 |
| Solana | ur:crypto-multi-accounts | ur:sol-sign-request → ur:sol-signature | Mensajes legacy y v0 (sin tablas de búsqueda de direcciones), mensajes de texto |
La firma EVM abarca ocho redes: Ethereum (1), BNB Chain (56), Arbitrum One (42161), Base (8453), OP Mainnet (10), Polygon PoS (137), Gnosis (100) y Avalanche C-Chain (43114).
El transporte es BC-UR: CBOR dentro de Bytewords, dividido en fotogramas animados de tipo «fountain» cuando no cabe en un solo código QR. Los tipos de solicitud y de respuesta son los del registro público de UR de Keystone, así que una cartera que ya admite dispositivos de firma por hardware mediante QR necesita muy poco código nuevo. El único formato propio de BitTool es el QR de vinculación a nivel de cartera, que es opcional e importa las cuatro cadenas con un solo escaneo.
A quién va dirigida esta documentación
Deberías manejarte con soltura con hex, Base58 y JSON, y saber qué son una clave pública extendida (xpub) y una ruta de derivación. Cada página muestra ejemplos completos con bytes reales, generados por el motor de BitTool Signer a partir de la frase de prueba pública abandon … about. Implementa primero tomando como referencia esos ejemplos y después prueba con la app.
La frase de prueba, las direcciones y las transacciones de este sitio son públicas. Cualquiera puede gastar sus fondos. No envíes nunca fondos a ellas.
Código fuente
BitTool Signer es de código abierto en ambas plataformas: bittool-signer-ios y bittool-signer-android. Las dos apps usan el mismo motor, así que los formatos QR y las firmas de este sitio valen para cualquiera de ellas. El código del protocolo QR está en engine/protocols.js; los analizadores y firmadores de cada cadena, en engine/src/. Las revisiones de seguridad asistidas por IA de la versión 1.0.0 en ambas plataformas se publican íntegras. Preguntas sobre la integración: support@bittool.com.