Una cartera sin dueño. Cada miembro guarda su propia clave en su propio dispositivo, y el dinero se mueve cuando han firmado suficientes — dos de tres cualesquiera, cinco de nueve cualesquiera, lo que el grupo fijó al hacer la cartera.
Nada de lo que sigue es un invento nuestro. Cada cadena ya tiene una forma de que varias personas guarden una sola dirección, y aquí se usa esa forma: P2WSH en Bitcoin, Safe en las cadenas EVM, el sistema de permission de la propia cuenta en Tron, Squads V4 en Solana. Las direcciones de las páginas que siguen son los despliegues con los que habla esta aplicación.
CÓMO FUNCIONA
Cuatro pasos, y solo el último ocurre en una cadena
Un pago es una conversación antes de ser una transacción. Aquí no es una metáfora: ocurre en el hilo, como mensajes, y la cadena lo ve solo cuando el grupo ya se ha puesto de acuerdo.
1
El grupo fija la regla
Quién firma, y cuántos hacen falta. Se escribe en la cartera en el momento de hacerla, y queda en la cadena, no en esta aplicación.
La regla no se edita después aquí: otra regla es otra cartera, con su propia dirección que hay que fondear y a la que hay que mudarse. Algunas cadenas permitirían el cambio y esta aplicación no lo hace, así que la pantalla lo dice antes de pedir el segundo toque.
2
Alguien propone un pago
Llega a la conversación como un mensaje, de quien lo hizo, diciendo qué paga y a quién. Hasta que se firma es una petición y nada más.
La propuesta viaja por el mismo grupo cifrado que usa el chat, así que el servidor la lleva sin leerla.
3
Cada firmante firma en su propio dispositivo
Lo lees, tocas una vez, y queda firmado con una clave que nunca ha salido del teléfono donde se hizo. Todos ven avanzar la cuenta.
Ningún dispositivo guarda la clave de otra persona, así que no hay ningún dispositivo cuya pérdida entregue la cartera a nadie.
4
Al llegar al umbral va a la cadena
Las firmas se ensamblan y se difunden. A partir de ahí quien hace cumplir la regla es la cadena, no esta aplicación — que es justo el motivo de poner la regla ahí.
Si esta aplicación desapareciera mañana, la cartera seguiría siendo una cartera y la regla seguiría en pie.
CINCO CADENAS
Una interfaz unificada
Cinco cadenas y, por debajo, cuatro mecanismos distintos: Bitcoin, Ethereum, BNB Smart Chain, Tron y Solana sostienen una dirección compartida cada una a su manera. Nada de eso llega a la pantalla: proponer un pago, firmarlo y enviarlo es igual en las cinco.
Bitcoin
P2WSH multisig · BIP 67 · PSBT
Un script testigo que se lee como «m de estas n claves», y una dirección que es su hash. Las claves van ordenadas lexicográficamente, así que todo el que arma el script a partir del mismo conjunto de claves llega a la misma dirección y no a n! direcciones distintas.
El pago viaja como un PSBT: un archivo que recorre a los firmantes recogiendo firmas, y se finaliza cuando ya tiene suficientes.
Script
OP_m <key>… OP_n OP_CHECKMULTISIG
Firmantes
hasta 15, con el umbral en cualquier punto intermedio
Datos de la cadena
un servidor Electrum
Ethereum
Safe · canonical deployment
El contrato donde ya está la mayor parte del dinero que los grupos guardan en Ethereum. La fábrica canónica hace un proxy que apunta al singleton canónico; los propietarios y el umbral se fijan en la misma llamada que lo crea.
Nada se bifurca y nada se vuelve a desplegar. La versión se lee del contrato en vez de darse por supuesta, porque un Safe hecho por otra persona es un Safe que esto puede abrir.
Singleton
0x41675C099F32341bf84BFc5382aF534df5C7461a
Fábrica
0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67
Agrupación
MultiSend — varios movimientos, una sola aprobación
BNB Smart Chain
Safe · the same addresses
Los mismos contratos en las mismas direcciones. Los despliegues de Safe son deterministas en todas las cadenas EVM, así que aquí no hay nada específico de la cadena que aprender, ni nada específico de la cadena en el código.
Es también la razón de que una cuenta en Ethereum sea la misma cuenta en BNB Smart Chain: un tipo de moneda, una clave, dos cadenas.
Contratos
idénticos a los de Ethereum, arriba
Tipo de moneda
60 — compartido con Ethereum
Tron
Account permissions · no contract
Tron trae la regla incorporada en las cuentas. Un permission lleva una lista de claves, un peso para cada una y un umbral, y se escribe en la cuenta misma — no hay contrato que desplegar ni contrato en el que confiar.
Los pesos hacen que la regla pueda ser algo más que contar cabezas: una clave que vale dos votos, tres claves que valen uno cada una.
Lo escribe
AccountPermissionUpdate
Regla
claves con peso, un umbral
Nota
la actualización sustituye la lista en vez de enmendarla
Solana
Squads Protocol V4
El programa de multifirma que usa la mayoría de las tesorerías de Solana. La propuesta es una cuenta en la cadena: los miembros la aprueban, y se ejecuta cuando las aprobaciones llegan al umbral.
El id del programa decide de dónde se deriva cada cuenta de la cartera, así que está fijado al despliegue publicado, y otro distinto se rechaza en vez de darse por bueno.
Programa
SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf
Propuesta
en la cadena, se aprueba contra ella
POR QUÉ LOS ESTÁNDAR
Una cartera que solo se abre aquí es una cartera de otro
Hay una forma más fácil de construir esto: un contrato propio en cada cadena, un formato propio, una aplicación que lo entienda. Sería menos código y sería peor, porque entonces el dinero del grupo dependería de que esta aplicación siguiera existiendo.
Qué da usar los estándar
Cada uno de estos puntos es consecuencia de esa elección, no una función que se añadió.
Auditados por más gente que nosotros. Safe y Squads guardan miles de millones entre los dos, y se los ha mirado en consecuencia. P2WSH y los permissions de Tron son reglas de consenso.
Legibles por otras herramientas. La dirección es un Safe corriente, una multifirma de Squads corriente, una dirección P2WSH corriente, un permission de Tron corriente: los exploradores de bloques y las interfaces de los propios protocolos los leen sin saber que esta aplicación existe.
Nada de lo que migrar. No hay un formato propietario en el que quedarse atrapado, así que tampoco hay un momento posterior en el que irse cueste algo.
La regla nos sobrevive. El umbral lo hace cumplir la cadena. Esta aplicación es donde el grupo habla del pago, no lo que lo permite.
AUDITS
Read by people who are not us
This is the argument for using each chain’s own multisig rather than writing one: the reports below exist, they were paid for by somebody else, and they are about exactly the contracts a wallet made here is made of. Every address and every program id on this page was checked against the projects’ own published deployment records while this section was written.
Safe
Ethereum · BNB Smart Chain
2 reports
The four contracts this application talks to are the canonical v1.4.1 deployments — singleton, proxy factory, fallback handler and MultiSend — each one matching the address in Safe’s own deployment registry.
Four reports, three firms and a formal verification. The program id this application pins is the one the program declares for itself in its own source.
There is nothing here for an auditor to be hired for, and that is the point: a multisig on Bitcoin is not a deployed program but a script the network’s own rules evaluate. What is worth reading instead is the specification.
The same again: the rule is a property of the account, enforced by the nodes rather than by code somebody deployed. There is no contract to audit because there is no contract.
Nothing to link, and that is the honest answer
An audit is a reading of a codebase at a commit, not a guarantee about the money in it — and none of these reports is about this application. They are about the contracts underneath it, which is exactly why they are worth more than a report we commissioned about ourselves would be.
SI TRAES UNA FRASE
Veinticuatro palabras que ya has usado en otro sitio
Una frase de recuperación no es un convenio, son varios, y discrepan justo en lo mismo: qué elemento de la ruta se mueve cuando pides «cuenta 2». Cada uno de ellos es correcto, y una frase leída con el convenio equivocado muestra saldo cero para un dinero que está exactamente a una línea de aritmética. Por eso el convenio aquí no se adivina: es un ajuste, uno por cadena, y ofrece una lista de aplicaciones en vez de una lista de especificaciones. El dinero que parece perdido es dinero en una ruta a la que esta aplicación no estaba mirando.
Bitcoin
Native SegWitpor defecto
m/84'/0'/{account}'/0/0
Electrum
BlueWallet
Sparrow
Exodus
Índice de dirección
m/84'/0'/0'/0/{account}
Trust Wallet
Muun
Phoenix
Ethereum & BNB Smart Chain
Índice de direcciónpor defecto
m/44'/60'/0'/0/{account}
MetaMask
Rabby
Trust Wallet
Rainbow
Phantom
Cuenta endurecida
m/44'/60'/{account}'/0/0
Ledger Live
Trezor Suite
Exodus
Cuatro elementos
m/44'/60'/0'/{account}
MyEtherWallet (legacy)
Ledger (legacy)
Tron
Índice de direcciónpor defecto
m/44'/195'/0'/0/{account}
TronLink
Trust Wallet
Cuenta endurecida
m/44'/195'/{account}'/0/0
Ledger Live
Trezor Suite
Solana
Cuatro elementospor defecto
m/44'/501'/{account}'/0'
Phantom
Solflare
Backpack
Solo cuenta
m/44'/501'/{account}'
Ledger Live
Solflare (hardware)
Heredado
m/501'/{account}'/0/0
Sollet (legacy)
Los esquemas legacy y anidado de Bitcoin faltan a propósito. El constructor de direcciones deriva native SegWit y nada más, así que un m/44'/0'/… aquí daría un bc1… donde cualquier otra cartera muestra un 1… o un 3… — una cadena de texto que parece correcta, pertenece a tu frase, y no es la dirección que cualquier otro lee en esa ruta. Una opción que por lo bajo significa algo distinto de lo que dice es peor que ninguna opción.
SI TRAES UNA CARTERA
Si vienes de otro sitio
Dos formas de entrar, y están en etapas distintas
Dicho sin rodeos, porque una página que describe lo planeado con la misma voz que lo construido es una página con la que no puedes decidir nada.
Tu frase de recuperación — ya está. Veinticuatro palabras, y la pregunta de en qué cartera las usaste. Cada dirección que describe la tabla de arriba se deriva en tu dispositivo a partir de la frase y no se guarda en ningún sitio; una cuenta EVM, una cuenta Tron y una cuenta Solana son la misma dirección en todas las redes de esa cadena.
Una multifirma que ya existe — todavía no. Leerla está hecho: la biblioteca que hay debajo abre un Safe por su dirección e informa de sus propietarios, umbral y versión; lee los miembros y el umbral de una multifirma de Squads, los firmantes y los pesos de un permission de Tron, y descodifica un script testigo de Bitcoin de vuelta a su dirección, umbral y claves. Lo que no está hecho es la pantalla que te lleva de la mano por todo eso y lo engancha a una conversación. Hasta que lo esté, esta página no va a fingir lo contrario.
Mientras tanto nada te detiene: un Safe o una multifirma de Squads que ya tengas siguen funcionando en la interfaz donde los hiciste, porque nunca fueron otra cosa que un Safe o una multifirma de Squads.
Nada en este sitio es asesoramiento financiero: los ejemplos son ejemplos, y el dinero — y el riesgo — son tuyos. Avisos.