Documentación para desarrolladores de BitTool Signer
BitTool Signer convierte un iPhone o un teléfono Android de repuesto en un firmador sin conexión. Sus claves nunca salen de ese teléfono: 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 agregar BitTool Signer a tu propia cartera.
Cómo funciona
Tu billetera permanece en línea y hace todo lo que requiere una red: saldos, comisiones, nonces, construcción de transacciones y transmisión a la red. BitTool Signer permanece sin conexión y hace lo único que requiere una clave privada: revisa una solicitud y la firma.
- 1Muestra un código QR de emparejamiento: solo claves públicas.
- ◀ ur:bytes · ur:crypto-account · ur:crypto-hdkey …
- 2Importa las cuentas como una billetera 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 billetera y firma.
- ◀ ur:crypto-psbt · ur:eth-signature · ur:tron-signature · ur:sol-signature
- 5Verifica la firma, ensambla la transacción y la transmite a la red.
Todo lo que viaja entre los dos dispositivos son datos públicos: claves públicas extendidas, direcciones, transacciones sin firmar y firmas. Un código QR de emparejamiento nunca contiene una frase de recuperación, una semilla ni una clave privada.
Qué puedes integrar
Cadenas y formatos compatibles
| Cadena | Emparejamiento (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, multisig |
| 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 cubre 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 tipo "fountain" cuando no cabe en un solo código QR. Los tipos de solicitud y de respuesta son los del registro UR público de Keystone, así que una billetera que ya admite firmadores de hardware por QR necesita muy poco código nuevo. El único formato específico de BitTool es el QR de emparejamiento a nivel de billetera, que es opcional e importa las cuatro cadenas con un solo escaneo.
A quién va dirigida esta documentación
Debes manejar con soltura 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 con base en esos ejemplos y luego prueba con la app.
La frase de prueba, las direcciones y las transacciones de este sitio son públicas. Cualquiera puede gastar desde ellas. Nunca les envíes fondos.
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.