We describe Bitcoin transactions, restricted transactions called Covenants, and our own research into secure Bitcoin custody using a type of Covenant called Vaults.


Custody sits core to digital asset infrastructure and is dictated by key management. Keys are what generate signatures that can spend bitcoins, and thus, key management determines how digital assets are held and secured. The problem the FCAT team tried to solve was the access, incentives and corresponding attack surfaces that are presented when keys, or a set of keys, are compromised. In that, attackers can arbitrarily spend bitcoins custodied by those compromised keys at will.

The team presents a Vault custody protocol that uses pre-signed transactions, a relative time-lock, and a key-deletion method to activate Covenants. …

In this post we will be going over Algorand wallet security and wallet and account interaction. Specifically we will be looking at the steps and mechanisms involved in:

  • Generating a wallet
  • Generating accounts in the wallet
  • Generating accounts outside of the wallet and importing them into the wallet
  • Backing up a wallet
  • Backing up a specific account that is within a wallet
  • Recovering a wallet
  • Recovering accounts that were generated within a wallet
  • Importing multi-signature accounts into a wallet

Please make sure you have an Algorand TestNet node running and make sure that you start the kmd process.

goal kmd start -d [DATA…

In our previous posts we looked what Opting into an Algorand Asset was and how to build a reactive front-end component using React in anticipation of Algorand 2.0. In this post, we will look at what creating an account on Algorand looks like in JavaScript, as well as constructing a transaction object, signing the transaction and broadcasting the transaction to the network.

Main Methods

We will be using a few methods from the algosdk to make all of this happen:

  1. generateAccount() returns a new Algorand address and its corresponding secret key
  2. mnemonicToSecretKey() takes a mnemonic string and returns the corresponding Algorand address and its secret…

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store