Hallo zusammen, ich habe eine sehr technische Frage und bin mir unsicher, ob sich hier im Forum auch Entwickler aufhalten, die auf BTC aufbauen. Da Roman den vermutlich weltweit besten BTC-Content verbreitet, kann ich mir das gut vorstellen.
Nun, ich würde gerne eine Anwendung/Webseite anbieten, in der eine Bitcoin-Transaktion mit bestimmten OP-Codes erstellt wird. Diese Transaktion soll mit einer externen Soft- oder Hardwarewallet signiert werden. Also die vorgefertigte Transaktion soll direkt vom Browser aus an die Soft- oder Hardwarewallet des Nutzers zum Signieren gesendet werden. Kennt sich da jemand aus und kann eine JS-Library empfehlen, die mit möglichst vielen BTC-Wallets funktioniert?
(Scheinbar bietet Ledger und Trezor eine entsprechende JS-Bibliothek, doch es wäre recht mühselig diese Funktion für jeden Wallet-Hersteller separat integrieren zu müssen.)
Für Altcoins gibt es Wallets, die es ermöglichen direkt mit Applikationen im Browser zu interagieren.
Vornehmlich wird es genutzt um Smart Contracts zu bedienen, deren grafische Oberfläche über eine Webanwendung bereitgestellt wird. Die Schnittstelle zwischen Browser und Wallet wird auf verschiedene Weise ermöglicht. Beispielsweise indem die Webanwendung einen QR-Code bereitstellt, der durch die Wallet eingescannt werden kann oder indem die Webanwendung auf einen lokalen Server zugreift, der durch die Wallet im Hintergrund betrieben wird. Es gibt auch Wallets wie MetaMask, die direkt im Browser integriert sind.
Bitcoin bietet zwar absichtlich keine Turing-vollständige Smart-Contracts, doch mit den OP-Codes sind ausreichend komplexe Anwendungen möglich. Diese würde ich gerne genauso einfach aus dem Browser heraus signieren, wie es bei den ganzen Altcoin-Wallets möglich ist.
Hintergrund ist ein Art Betrugsschutz-Mechanismus, der ohne Orakel auskommt.
PSBT scheint schonmal den richtigen Weg zu weisen. Es gibt auch anscheinend einige BTC-Wallets, die es ermöglichen benutzerfreundlich mit „QR-Code“, „HTTP-API“, „Browser Extension“ oder „Deep Link“ eine PSBT zu empfangen. Doch es scheint so als ob da jede Wallet ihr eigenes Süppchen kocht. Kennt jemand vielleicht eine JS-Library, die möglich viele Wallets gleichzeitig abdeckt?