<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Vulpem Ventures on Medium]]></title>
        <description><![CDATA[Stories by Vulpem Ventures on Medium]]></description>
        <link>https://medium.com/@vulpem?source=rss-a85116a1bcaa------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*sQWlO1Pqvj9TQ2vOeRmJIA.png</url>
            <title>Stories by Vulpem Ventures on Medium</title>
            <link>https://medium.com/@vulpem?source=rss-a85116a1bcaa------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 06 Apr 2026 08:11:33 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@vulpem/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Banco: Non-interactive swaps]]></title>
            <link>https://vulpem.medium.com/banco-non-interactive-swaps-00d042791e06?source=rss-a85116a1bcaa------2</link>
            <guid isPermaLink="false">https://medium.com/p/00d042791e06</guid>
            <category><![CDATA[trading]]></category>
            <category><![CDATA[liquid-network]]></category>
            <category><![CDATA[bitcoin]]></category>
            <category><![CDATA[dex]]></category>
            <category><![CDATA[swap]]></category>
            <dc:creator><![CDATA[Vulpem Ventures]]></dc:creator>
            <pubDate>Mon, 29 Jan 2024 08:01:56 GMT</pubDate>
            <atom:updated>2024-01-29T08:01:56.066Z</atom:updated>
            <content:encoded><![CDATA[<h3><strong>Banco: Non-Interactive Swaps</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3af9fNdByQHQqjG30ZVSKQ.png" /></figure><p>We are excited to introduce <a href="https://github.com/vulpemventures/banco"><strong>Banco</strong></a>, a Bitcoin trading protocol that facilitates non-interactive swaps among two or more parties utilizing <a href="https://github.com/ElementsProject/elements/blob/master/doc/tapscript_opcodes.md">Elements introspection opcodes</a>.</p><p>Discover more about the <a href="https://github.com/vulpemventures/banco/blob/master/PROTOCOL.md">protocol</a> or start trading on the Liquid Testnet at <a href="https://banco.vulpem.com">banco.vulpem.com</a>. Additionally, you have the option to <a href="https://github.com/vulpemventures/banco/tree/master#-show-me-the-code">host your Banco server</a> to contribute liquidity.</p><h4><strong>What’s the Deal?</strong></h4><p>Non-interactivity is a sought-after feature in atomic swaps and various decentralized protocols. Over time, it has become clear that interactivity and state management can hinder the adoption of self-custodial applications in real-world scenarios. Existing alternatives often rely on co-signing schemes, necessitating participants to be online and accessible over the public internet, which compromises the privacy and user experience of trading participants.</p><p>Banco’s protocol eliminates the need for a trusted third party. It offers a non-custodial solution for traders and is capital-efficient for market makers, eliminating the necessity for a centralized order book and settlement server. Liquidity providers can deploy a straightforward automated bot that monitors the mempool for pending contracts to execute or via recursive covenants constructions to enable automated liquidity pools.</p><h4><strong>How Does This Benefit Bitcoin?</strong></h4><p>Banco enables BTC-to-BTC trades. Unlike current coinjoin schemes, which are highly interactive and require the use of specific wallets, Banco simplifies the process. It significantly expands the pool of potential liquidity providers; anyone can operate a taker bot or contribute to a covenant pool, fostering liquidity in an open and borderless network.</p><h4><strong>Design Goals</strong></h4><ul><li><strong>Confidentiality:</strong> The protocol ensures confidentiality by default, allowing traders and providers to engage without disclosing their intentions publicly.</li><li><strong>Ease of Integration:</strong> The protocol is user-friendly and does not demand specific wallet integrations. Traders can fund trade contracts using any wallet that supports Taproot addresses.</li><li><strong>Liquidity Efficiency:</strong> Traders can initiate transactions that any liquidity provider can fulfill, provided the trader doesn’t cancel the transaction. This feature enables liquidity provision through automated bots, mitigating the risk of capital being locked for extended periods, as seen with time-locked atomic swaps.</li><li><strong>Decentralization:</strong> Banco is entirely decentralized, requiring no trusted third parties. It is non-custodial for traders and capital-efficient for market makers, without the need for centralized order book servers or settlement facilities. Takers can simply monitor the mempool for public contracts to fulfill.</li><li><strong>Operational Security:</strong> The protocol allows providers to operate in a pub-sub manner, monitoring a public channel (e.g., the mempool or Nostr) and broadcasting the spending transaction to execute the trade, eliminating the need for firewalls or publicly accessible IPs.</li></ul><h4><strong>How It Works</strong></h4><p><strong>Banco</strong> requires two blockchain transactions: one to <strong>fund</strong> the <strong>trade contract</strong> and another to either <strong>fulfill</strong> or <strong>cancel</strong> it. The trader (from now on the <strong>maker</strong>) can utilize any wallet to send and receive assets, while the provider (the <strong>taker</strong>) is an automated bot that executes trades by crafting fulfill transactions, incorporating funds to cover the trade amount enforced by the covenant in the trade contract.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5Y4XEGX-qAL6NYwvFqbF9Q.png" /></figure><p>The maker initiates by funding a trade contract, which a taker can fulfill without further input from the maker. The contract mandates that the first output of the spending transaction matches the requested value, asset, and script.</p><p>Once this <strong>funding transaction</strong> is visible in the mempool or shared privately, the taker can execute the contract by sending a <strong>fulfill transaction</strong> that spends the funding transaction’s output, adhering to the covenant’s constrained value, asset, and script.</p><p>Should the maker opt out of the trade, they can cancel the contract, a privilege exclusively held by the maker. Canceling involves sending a transaction that reverts the funding transaction’s output back to the maker.</p><h4><strong>Show Me the Opcodes</strong></h4><pre>OP_0<br>OP_INSPECTOUTPUTSCRIPTPUBKEY<br>&lt;MAKER_WITNESS_VERSION&gt;<br>OP_EQUALVERIFY<br>&lt;MAKER_WITNESS_PROGRAM&gt;<br>OP_EQUALVERIFY<br>OP_0<br>OP_INSPECTOUTPUTASSET<br>OP_DROP<br>&lt;MAKER_ASSET_TO_RECEIVE&gt;<br>OP_EQUALVERIFY<br>OP_0<br>OP_INSPECTOUTPUTVALUE<br>OP_DROP<br>&lt;MAKER_VALUE_TO_RECEIVE&gt;<br>OP_EQUAL</pre><h4><strong>Roadmap</strong></h4><ul><li>Integrate within Marina Wallet with a Swap interface.</li><li>Automated trading pool that fulfills trades using a recursive covenant and oracle signed price attestations.</li><li>Develop gRPC and JSON APIs for Banco server interaction.</li><li>Enable Confidential Funding for confidential transactions.</li><li>Utilize Nostr for public trading and Nostr DM for private exchanges.</li><li>Investigate shared-secret generation for blinding factors in fulfill transactions.</li></ul><p><strong>Contribute</strong></p><p>Banco is open-source, with a server reference implementation available on GitHub at <a href="https://github.com/vulpemventures/banco">https://github.com/vulpemventures/banco</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=00d042791e06" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Hello Marina]]></title>
            <link>https://vulpem.medium.com/hello-marina-bf139cb3d95f?source=rss-a85116a1bcaa------2</link>
            <guid isPermaLink="false">https://medium.com/p/bf139cb3d95f</guid>
            <category><![CDATA[tether]]></category>
            <category><![CDATA[liquid]]></category>
            <category><![CDATA[blockstream]]></category>
            <category><![CDATA[bitcoin]]></category>
            <category><![CDATA[bitcoin-wallet]]></category>
            <dc:creator><![CDATA[Vulpem Ventures]]></dc:creator>
            <pubDate>Fri, 18 Dec 2020 17:25:05 GMT</pubDate>
            <atom:updated>2021-05-09T11:15:08.853Z</atom:updated>
            <content:encoded><![CDATA[<p><em>The world’s first browser extension to access the Liquid Network</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*SBHN0WTh8i8bmLxuwahdTA.png" /><figcaption>Marina Browser Extension mockup</figcaption></figure><p>We are thrilled to announce one of our most exciting ventures to date — <strong>Marina</strong>. Marina is the ultimate gateway designed to access the Liquid Network directly from your browser.</p><p><a href="https://liquid.net">Liquid</a> is a sidechain-based settlement network for traders and exchanges, enabling faster, more <strong>confidential Bitcoin transactions</strong> and <strong>issuance of digital assets</strong>.</p><p>Over the past months, the Liquid ecosystem has been rapidly growing with several exchanges that are now supporting the network and an increasing number of financial services such as <a href="https://blog.liquid.net/hodl-hodl-lend-launches-with-liquid-tether-support/"><strong>peer-to-peer lending</strong></a> and <a href="https://www.btctimes.com/news/tdex-launches-beta-daemon-on-the-liquid-network"><strong>non-custodial atomic swaps</strong></a>.</p><p><strong>Marina</strong> is a browser extension designed to streamline access to Liquid and foster an even greater adoption of the network. It enables users to easily <strong>send and receive Liquid assets</strong> such as Liquid Bitcoin (L-BTC) and Tether USDt. Web developers can benefit from Marina integration as a plug-and-play solution to <strong>integrate Liquid Network</strong> into their browser applications.</p><p><strong>Use Cases</strong></p><p>Thanks to Marina, exchanges like <a href="https://sideshift.ai">SideShiftAI</a> and <a href="https://liquiditi.io">Liquiditi.io</a> can now automatically fill the address fields and trigger the user to review and confirm transactions to make trades. Furthermore, interactions between Marina and <strong>non-custodial exchange protocols such as </strong><a href="https://specs.tdex.network"><strong>TDex</strong></a><strong> </strong>can enable users to benefit from non-custodial atomic swaps directly from their own browser.</p><p><strong>Features</strong></p><ul><li>Generate an <strong>HD wallet</strong> with blinding keys</li><li>Restore from <strong>mnemonic</strong> seed</li><li><strong>Receive and send</strong> any Liquid asset</li><li><strong>Connect your browser </strong>to the Liquid Network</li><li><strong>Share specific addresses</strong> only with websites you trust</li><li><strong>Auto-fill</strong> transactions and <strong>popup</strong> confirmation for signature</li><li>Pay transactions fees with Tether USDt</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/721/1*FhebvRYW5cJ2s2bXber-gA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/721/1*4d_p6-OEt2ILtoTJi70mLQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/720/1*XIYC8pLjcBa-KyShAgzQWw.png" /></figure><p><strong>Send USDt without owning LBTC</strong></p><p>We have integrated <a href="https://liquid.taxi">Liquid.Taxi</a>, our Liquid fee top-up service, directly into Marina. Thanks to this integration, It will now be possible to <strong>move around your Liquid assets without having to spend L-BTC </strong>for transaction fees. Instead, fees can be paid directly with Tether USDt.</p><blockquote>“Marina is an exciting development in the Liquid ecosystem. Not only can you receive and send payments in Liquid-based assets directly from your browser, but your transaction fees can be paid in Liquid Tether, too! The Liquid network has just become a lot easier to use!” — Yuri de Gaia, Partner at<a href="https://www.bitcoinreserve.com"> Bitcoin Reserve</a></blockquote><p><strong>Developers can integrate Liquid in their browser app</strong></p><p>Web developers who want to integrate Liquid Network can rely on the injected APIs offered by the <a href="https://docs.vulpem.com/marina/api">Marina Web Provider</a> to automatically fill inputs with Liquid addresses or to prompt a confirmation to make transactions.</p><p><strong>Download Marina Wallet from Chrome Web Store</strong></p><p>The extension is <a href="https://chrome.google.com/webstore/detail/nhanebedohgejbllffboeipobccgedhl">available in the Chrome Web Store</a> and soon as Firefox Add-on.<br>The code is open-source and available <a href="https://github.com/vulpemventures/marina">here</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bf139cb3d95f" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Announcing Liquid.Coach]]></title>
            <link>https://vulpem.medium.com/announcing-liquid-coach-b7fe43eedc40?source=rss-a85116a1bcaa------2</link>
            <guid isPermaLink="false">https://medium.com/p/b7fe43eedc40</guid>
            <category><![CDATA[liquid-network]]></category>
            <category><![CDATA[bitcoin]]></category>
            <category><![CDATA[blockstream]]></category>
            <dc:creator><![CDATA[Vulpem Ventures]]></dc:creator>
            <pubDate>Wed, 12 Aug 2020 14:05:24 GMT</pubDate>
            <atom:updated>2021-05-25T07:06:53.910Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*I-rvDVA3BAz6WBloUpPkjg.png" /></figure><p>Today, we’re announcing <a href="https://vulpemventures.github.io/liquid.coach">Liquid Coach</a>, a browser-based tool for <a href="https://liquid.net">Liquid</a> developers and advanced users for doing operations like checking <strong>the balance of an address</strong>, creating and importing a<strong> PSET (Partial Signed Elements Transaction) </strong>or even sign it, all from their browser.</p><h3>Features</h3><ul><li>Load a <strong>blech32 confidential and bech32 unconfidential native segwit</strong> address</li><li>Load an <strong>unconfidential wrapped segwit and legacy</strong> (confidential support coming soon!)</li><li>Generate a mnemonic and derive an unconfidential native segwit address</li><li>Select a custom Liquid explorer</li><li>Provide an hex-encoded blinding key (if blech32 address) to unblind your utxos and watch the balance of your Liquid assets.</li><li>L-BTC Faucet and Asset Mint on Regtest</li><li>Create an <strong>unconfidential</strong> PSET with full control over inputs and outputs</li><li>Add the Explicit Fee output</li><li>Encode the PSET to base64</li><li>Import base64 encoded <strong>unconfidential</strong> PSET and inspect and add inputs/outputs</li><li>Sign with mnemonic or WIF</li></ul><h3>Network</h3><p>The tool has been designed for developers and to mostly be used in regtest, although is possible to use it for Liquid mainnet too.</p><p>It uses a block explorer to connects and source blockchain data, it uses <a href="https://blockstream.info/liquid/">Blockstream.info</a> for mainnet and an hosted instance of the regtest box <a href="https://github.com/vulpemventures/nigiri">Nigiri</a> (tl;dr it adds on top of <a href="https://github.com/blockstream/electrs">Blockstream Electrs</a> a <em>/faucet </em>and <em>/mint </em>endpoint useful for regtest development along with automatic block mining)</p><p>You can use a local Nigiri as explorer, just select the Explorer button in the top-right of the page.</p><h3>Limitations</h3><p>Liquid.Coach is NOT meant to be used as a web-wallet for end-users. Use <a href="https://blockstream.com/green/">Blockstream Green</a> instead.</p><p>There are few limitations, may or may not be fixed in the following iterations:</p><ul><li>You cannot load multiple addresses, just a single one.</li><li>You can load a blech32 address and unblind the unspents, but you cannot create and sign a transaction with it. Cooperative blinding is kind of impossible with the current PSET spec.</li><li>When you generate an address by default is unconfidential, so you can create and sign a transaction end to end.</li><li>The generated mnemonic always uses the <em>m/84&#39;/0&#39;/0&#39;/0 derivation path</em></li></ul><p>For any issue that may arise please open a ticket <a href="https://github.com/vulpemventures/liquid.coach">in the Github repository.</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b7fe43eedc40" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Announcing Vulpem Notary private beta]]></title>
            <link>https://vulpem.medium.com/announcing-vulpem-notary-private-beta-357053a36e79?source=rss-a85116a1bcaa------2</link>
            <guid isPermaLink="false">https://medium.com/p/357053a36e79</guid>
            <category><![CDATA[distributed-systems]]></category>
            <category><![CDATA[mongodb]]></category>
            <category><![CDATA[mysql]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[bitcoin]]></category>
            <dc:creator><![CDATA[Vulpem Ventures]]></dc:creator>
            <pubDate>Fri, 24 May 2019 02:21:01 GMT</pubDate>
            <atom:updated>2019-05-24T13:23:14.113Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*XIi9G38b4qLGXukiwV_-MA.jpeg" /><figcaption>Photo by <a href="https://unsplash.com/photos/GWOTvo3qq7U?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">j zamora</a> on <a href="https://unsplash.com/search/photos/law?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><p>Today, we’re announcing <a href="https://notary.vulpem.com"><strong>Vulpem Notary</strong></a>, a blockchain-based notary service specifically tailored for enterprise workflows and distributed architectures.</p><p>We have created an abstraction layer that we offer as a cloud service, which helps database operators to create an indisputable chain of events that happened in the private infrastructure, without leaking any sensible information.</p><p>In this way, any observer can easily audit and verify any possible malicious attempt of tampering, both from an external attacker or an inside job and be able to demonstrate it ex-post.</p><p>This allows to cryptographically prove to other parties (eg. auditors or consortium partners) that some data existed prior a certain point in time.</p><p><strong>How does it work?</strong></p><p>We provide a lightweight and standalone client, that can be easily installed on the majors cloud platforms, which oversees the low-level replication of the distributed database cluster (<strong>MySql</strong> and <strong>MongoDB</strong> are supported for now) and takes care to split, makes a one-way fingerprint, timestamp, and queue for a public and indisputable attestation.<br>Thanks to batching and distributed calendar architecture, we can stamp and notarize petabytes of data and embed them on the <strong>Bitcoin</strong> blockchain.</p><p><strong>Why?</strong></p><p>In any centralized architecture that implies a database, the person with admin privileges (the owner, employees, contractors) can simply delete or modify any data stored in it and no-one, even with the help of modern digital forensics tools, can demonstrate to an external viewer without any doubts that this malicious action has happened.</p><p>While this concern seems to be solved for the enterprises by “private blockchains” or “distributed ledger technology”, we believe that <strong><em>Vulpem Notary</em></strong><em> is a</em><strong><em> more elegant, more scalable </em></strong><em>and</em><strong><em> friction-less solution </em></strong><em>using open time-stamping technology </em><strong><em>on top of Bitcoin, </em></strong><em>acting as a</em><strong><em> neutral notary</em></strong>.</p><p>There is no need to move any data to a new architecture and scrap your existent systems, just get an API key, install the daemon and you are ready to go! The same guarantees of so-called private-blockchains, without changing any lines of code!</p><p>Lastly, the number of features, years or even decades of extensive testing and reliability of a common distributed database isn’t comparable to any of the primordial private blockchain solutions like Hyperledger and such.</p><p><strong>How to get an API Key?</strong></p><p>To enroll for an API Key for the private beta, subscribe<a href="https://notary.vulpem.com/#cta"> here</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=357053a36e79" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Hello Nigiri!]]></title>
            <link>https://vulpem.medium.com/hello-nigiri-fbdecd4295f?source=rss-a85116a1bcaa------2</link>
            <guid isPermaLink="false">https://medium.com/p/fbdecd4295f</guid>
            <category><![CDATA[elements]]></category>
            <category><![CDATA[docker]]></category>
            <category><![CDATA[bitcoin]]></category>
            <category><![CDATA[liquid]]></category>
            <category><![CDATA[electrum]]></category>
            <dc:creator><![CDATA[Vulpem Ventures]]></dc:creator>
            <pubDate>Wed, 22 May 2019 02:21:02 GMT</pubDate>
            <atom:updated>2019-05-22T02:21:02.052Z</atom:updated>
            <content:encoded><![CDATA[<p>Today we announce a new tool for Bitcoin developers: Bitcoin 🍣 <a href="https://nigiri.vulpem.com"><strong>Nigiri</strong></a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Mkmxfp-taFi-rt1sWCsb5A.png" /><figcaption>A typical Bitcoin Nigiri</figcaption></figure><h3>Overview</h3><p><a href="https://github.com/vulpemventures/nigiri">Bitcoin Nigiri</a> is a cross-platform command line tool that allows to quickly fire up a personal regtest<strong> Bitcoin</strong> blockchain along with a <strong>Liquid</strong> sidechain, <strong>Electrum </strong>explorer and other <a href="https://github.com/vulpemventures/nigiri-chopsticks">special developer tools</a>.<br>You can run tests and execute commands locally for development or in a continuous integration pipeline.</p><p>At the moment Docker and Compose are used under the hood to ensure a reproducible installation. Bare metal installations for major platforms are coming.</p><h3><strong>Get started</strong></h3><ul><li>Download and install nigiri command line interface</li></ul><pre>$ curl https://getnigiri.vulpem.com | bash</pre><ul><li>Launch Docker daemon (Mac OSX)</li></ul><pre>$ open -a Docker</pre><ul><li>Close and reopen your terminal, then start Bitcoin and Liquid</li></ul><pre>$ nigiri start --liquid</pre><p>That’s it.</p><p>Go to <a href="http://localhost:5000">http://localhost:5000</a> for quickly inspect the Bitcoin blockchain or <a href="http://localhost:5001">http://localhost:5001</a> for Liquid.</p><h3><strong>Commands</strong></h3><p><strong>Start Bitcoin</strong></p><pre>nigiri start</pre><p><strong>Start Bitcoin and Liquid</strong></p><pre>nigiri start --liquid</pre><p><strong>Stop</strong></p><pre>nigiri stop</pre><p><strong>Delete</strong></p><pre>nigiri stop --delete</pre><p><strong>Version</strong></p><pre>nigiri --version</pre><p><strong>Log</strong></p><p>To see services (node, electrs, esplora, chopsticks) pass as first argument.<br>Pass an optional flag --liquid for Liquid related services.</p><pre>nigiri logs SERVICE --liquid</pre><h3>What’s inside?</h3><h4>Data directory</h4><p>When starting, you can specify a directory where all your container will stay with --datadir flag. By default it will be ~/.nigiri</p><p>You can fully configure your own environment, just by tweaking ports and containers via compose and conf files in ~/.nigiri/resources</p><p><strong>Bitcoin + Liquid nodes</strong></p><p>Bitcoin and Liquid (if selected with —liquid ) <em>rpc</em> interfaces are exposed both with user admin1 and password 123 .</p><p>At the moment the nodes are started on <strong><em>regtest</em></strong> network. <em>testnet</em> and <em>mainnet</em> compose files will be released soon.</p><p><strong>Electrum &amp; Nigiri Chopstick</strong></p><p>For each chain an Electrum server is started and exposes and the rpc interface. We use the Blockstream <a href="https://github.com/Blockstream/electrs">Electrs</a> fork that and wrap the REST interface <a href="https://github.com/vulpemventures/nigiri-chopsticks">with <strong>Nigiri Chopstick</strong></a>, an API pass-through that simply proxies requests to Electrs and adds some handy features for a developer sandbox:</p><ul><li>POST endpoint /faucet to get Bitcoins or Liquid Bitcoin with a application/json body as {&quot;address&quot;:&quot;yourBitcoinOrLiquidAddr&quot;}</li><li>automatic block mining once /tx POST endpoint’s called</li></ul><p><strong>Esplora</strong></p><p>Quickly inspect the blocks via the browser using the <a href="https://github.com/Blockstream/esplora">Esplora</a> explorer, deployed for both bitcoin and liquid.</p><h3>Do you like Nigiri?</h3><p><a href="https://github.com/vulpemventures/nigiri">Give us a star on GitHub!</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fbdecd4295f" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How-to: Bitcoin multi-signature wallet using Electrum and several Ledger Nano S]]></title>
            <link>https://vulpem.medium.com/how-to-bitcoin-multi-signature-wallet-using-electrum-and-several-ledger-nano-s-3b329ce42ed2?source=rss-a85116a1bcaa------2</link>
            <guid isPermaLink="false">https://medium.com/p/3b329ce42ed2</guid>
            <category><![CDATA[multisignature]]></category>
            <category><![CDATA[electrum]]></category>
            <category><![CDATA[ledger-nano-s]]></category>
            <category><![CDATA[bitcoin]]></category>
            <dc:creator><![CDATA[Vulpem Ventures]]></dc:creator>
            <pubDate>Thu, 26 Apr 2018 14:04:04 GMT</pubDate>
            <atom:updated>2019-04-29T21:06:21.249Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qy8IP7kM0AW80c44l3JBQQ.jpeg" /></figure><blockquote><em>How an organization can securely manage funds having an extra-layer of security before sending any </em><strong><em>satoshi</em></strong><em>, due to multiple cosigners</em></blockquote><ul><li>PC (Linux, Mac, Windows)</li><li>Ledger Nano S (one for each cosigner)</li><li>Electrum (<a href="https://electrum.org/#download">https://electrum.org/#download</a>)</li><li>PGP (optional)</li></ul><p>This walk-through is intended to be for a distributed team/organization that needs to setup and use a multi-signature remotely. <br>Our fictionary company, <em>Hodl Inc, </em>with 100 bitcoin to store in a multisig, the execs Alice the CFO, Bob the CEO and Charlie the CTO are going to be the cosigners.</p><h4>Procedure</h4><h4>1. Provisioning</h4><p>The first step to get started is to collect all the public keys of the cosigner. Let’s say Charlie, the CTO, take care of this. He will contact Alice and Bob asking them their public keys in order to specify them in the xpub needed to create the multi-sig.</p><p><strong>Secure channel</strong></p><p>Since Hodl Inc is a remote company, they will use internet as a communication channel (you don’t say?!). Charlie needs to take precautions to not leave traces about his identity over the net. This is needed to not become target of an attack. This one of the many reasons why he will use PGP to encrypt emails and attachments. (Since he has a company-paid G Suite account he will use the <a href="http://flowcrypt.com">FlowCrypt</a> Chrome extension)</p><p><strong>Get the public key from Ledger Nano S</strong></p><p>To recover the public key on the Ledger Nano S, Alice (and Bob) needs to do the following:</p><p>Connect the Ledger and install in it the Bitcoin Wallet app trough the <a href="https://chrome.google.com/webstore/detail/ledger-manager/beimhnaefocolcplfimocfiaiefpkgbf">Ledger Manager</a> Chrome app.</p><p>Now Alice (and Bob) needs to run Electrum on the computer. Once it’s launched, she needs to:</p><ul><li><strong>File &gt; New/Restore</strong> new wallet</li><li>Insert a name to recognize the wallet</li><li>Then select <strong>Standard Wallet</strong></li><li><strong>Use a hardware device</strong></li></ul><p>as in the following screens</p><blockquote><em>If a </em><strong><em>“No hardware device detected”</em></strong><em> message is displayed</em><strong><em>, </em></strong><em>besure to have the ledger unlocked (PIN inserted) and press back and next to trigger again the connection. Alice should see this screen and press Next</em></blockquote><p>Now Alice (and Bob) has to be sure be sure to insert the right derivation path. If he/she used a <strong>BIP49</strong> (most likely) select <strong>p2sh-segwit BIP49</strong> or manually insert</p><p>In the next screen Alice encrypt her metadata wallet file and it’s done!</p><p>In order to get the Master Public Key, Alice has to select in the menu <strong>Wallet &gt; Information </strong>and she can get the Master Public Key. If BIP44 should starts with <strong>xpub</strong> and if BIP49 <strong>ypub</strong>. <br>Now she sends encrypted over PGP to Charlie.</p><h4>2. Setup</h4><p>Charlie now has Bob’s and Alice’s public key and he’s going to create a multi-sig wallet where the company’s funds will be stored.</p><p>As Alice (and Bob) did , Charlie now creates a new wallet, selecting <strong>Multi-signature walle</strong>t instead of <em>Standard Wallet.</em></p><p>In the following screen he chooses the number of signatures needed to unlock funds, so <strong>From 3 cosigners </strong>and <strong>Require 3 signatures</strong></p><p>Now in the <strong>Add cosigner (1 of 3) </strong>screen, Charlie assign himself and use the Ledger Nano directly, so <strong>Use a hardware wallet</strong></p><p>For the other cosigners, he can use the <em>xpubs</em> collected by Alice and Bob, select <strong>Enter cosigner key </strong>and paste them. Then, Charlie chooses to encrypt the multisig metadata wallet file.</p><p>Now we can safely send bitcoin to the multisig wallet. To get the address, go to the <strong>Receive tab</strong> and copy paste the <strong>Receiving Address</strong>. It should start with 3 on Bitcoin main-net.</p><h4>3. Co-sign transactions</h4><p><strong>Alice 1/3</strong></p><p>Alice wants to get out 100 mBTC to pay for company’s expenses. So she initiates a new transaction heading to <strong>Send </strong>tab, compiling the <strong>Pay to</strong> address, an optional description and the amount. Hitting send, she should see this screen with the partially signed transaction. She clicks on <strong>Export</strong></p><p>She sends the exported <strong><em>unsigned.txn </em></strong>file to Bob using an encrypted email.</p><p><strong>Bob 2/3</strong></p><p>Bob receive and decrypt the pgp message containing the file. Now he goes to Electrum, clicking on<strong> Tool &gt; Load transaction &gt; from file</strong></p><p>Now he clicks on <strong>Sign</strong>, then <strong>Export</strong> again the partially signed transaction and sends to Charlie. (Encrypted if possible)</p><p><strong>Charlie 3/3</strong></p><p>Charlie, as the last cosigner required, now will do the same as Bob with the difference that he needs to click <strong>Broadcast</strong> once signed.</p><p>Now, the transaction should be sent over the Bitcoin Network using the Electrum severs.</p><p>Note<strong>: There is no risk of funds being stolen if someone else gets the unsigned or signed files, since the keys remains on the hardware wallet all the time.</strong></p><p><em>Originally published at </em><a href="https://medium.com/@tiero/how-to-bitcoin-multi-signature-wallet-using-electrum-and-several-ledger-nano-s-225867e3b726"><em>https://medium.com</em></a><em> on April 26, 2018.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3b329ce42ed2" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>