Concurrent Sends

Note that BitGo does not currently support sending multiple transactions simultaneously. This is due to an issue with the selection of unspent outputs - it's not possible for BitGo to know that specific unspent outputs are about to be spent while creating a transaction and thus if a second process queries us for unspent outputs, we may return some that are already about to be spent by a process that only queried for them milliseconds earlier.

As a result, if you have two different processes creating transactions within the period of a second or two, it's possible that the second process will attempt to double spend some of the same unspent outputs as the first process and BitGo will reject the second transaction.

We recommend that API users serialize their transaction sending through a single queue / process in order to only send one transaction at a time. While we may some day create unspent output locking functionality in order to prevent this race condition, the main reason this is not considered a high priority is because the entire bitcoin network is only capable of processing ~3 transactions per second.

If you have any questions or suggestions, please contact us at any time!