Skip to content

Instantly share code, notes, and snippets.

Matias Alejo Garcia matiu

  • Bitpay Inc.
  • Tucuman, Argentina
Block or report user

Report or block matiu

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View gist:9768106
'use strict';
var imports = require('soop').imports();
var bitcore = require('bitcore');
var Storage = imports.Storage || require('./Storage');
function Wallet(opts) {
opts = opts || {}; = === 'livenet' ?
bitcore.networks.livenet : bitcore.networks.testnet;
matiu / gist:9833812
Last active Aug 29, 2015
Proposed TransactionBuilder Interfase.
View gist:9833812
/* create and sign */
var tx = TransactionBuilder.init(opts)
View gist:9854631
Cosign.prototype.cmd_raw_sign_scripthash = function(anypay, tx, i, scriptPubKey, txSigHash)
var scriptHash = scriptPubKey.capture()[0];
var addr = new Address(, scriptHash);
var addrStr ='base58');
if (!(addrStr in this.wallet.datastore.scripts))
var scriptHex = this.wallet.datastore.scripts[addrStr];
matiu / gist:11237601
Created Apr 24, 2014
Copay peer handshake
View gist:11237601
Alice Bob
.generates Extended PrivKey, PubKey
PeerID is provided to the PeerJS/WebRTC
P2P facilitator server
View gist:f17cacfdf9b3ae73619e

Sample return:

    address: "n2PuaAguxZqLddRbTnAoAuwKYgN2w2hZk7",
    txid: "dbfdc2a0d22a8282c4e7be0452d595695f3a39173bed4f48e590877382b112fc",
    vout: 0,
    ts: 1401276201,
    scriptPubKey: "76a914e50575162795cd77366fb80d728e3216bd52deac88ac",
    amount: 0.001,
View gist:c3ed36926064f7552430
$for i in `seq 1 20`;do mocha >> output; done
$ cat output |grep passing
89 passing (8s)
89 passing (8s)
89 passing (9s)
89 passing (8s)
89 passing (8s)
89 passing (8s)
89 passing (8s)
89 passing (8s)
View gist:ea8e402822c4c7e079d4
### Keybase proof
I hereby claim:
* I am matiu on github.
* I am matiu ( on keybase.
* I have a public key whose fingerprint is F8FC 1D9B 1B46 486D 273D AE51 0247 0DB5 5127 7AB3
To claim this, I am signing this object:
View gist:0a1d7217c99350936d92


Copay is an open-source multisig wallet. Each peer is has control of her private keys, that never leave their system. Copay has two components: a client and a p2p network of servers. The servers form a p2p global network that exchange messages between clients and provide Bitcoin blockchain API services using insight-API.

Copay-client is implemented in JS client-side. It can work as a:

  • web app,
  • a webview based mobile app,
  • or a node-kit based desktop app.
matiu / gist:3305c42b341916fb7afc
Last active Aug 29, 2015
Copay: Remove transaction proposals
View gist:3305c42b341916fb7afc

Remove TxProposals

matiu / gist:0d5201b89c2f9ed8e23e
Last active Aug 29, 2015
Copay Recovery Process
View gist:0d5201b89c2f9ed8e23e

This procedure is for reseting a Copay Wallet status, reseting its transactions proposals, addresses and peer metainfo. It should be used as a last resource to recover wallet's funds, in case there is an error on the wallet or a corrupted backup.

A. Gathering the information

  1. You need to have access of the ALL peers of the wallet (*)
  2. If you will run the procedure on the same computer, BE SURE not to use the same browser, since localStorage is shared. You can use: 1 Chrome window, and 1 Chrome incognito window, 1 Firefox window, 1 Firefox incognito window.
  3. Start by creating backups of all the peers.
  4. Go to 'More' in the peers wallet, and add the &advanced=1 at the end of the URL. This should show some advanced options
  5. Take note of the Master Private Key of ALL the peers.
You can’t perform that action at this time.