GAP600 is a service (that has processed $5 billion in cryptocurrency) which allows exchanges and payment service providers to process Bitcoin payments instantly (0 confirmation trx). It guarantees a transaction against double-spend, expiration or other fraud even before it is confirmed by the Bitcoin network:

GAP600 facilitates instant, risk-mitigated cryptocurrency commerce by enabling exchanges to recognize unconfirmed Bitcoin.. transactions as final using a proprietary risk engine, which analyzes and performs live risk scoring for each transaction as it reaches the mempool.

How is it possible to guarantee a transaction against double-spend, expiration or other fraud before it is confirmed by the Bitcoin network? What kind of "risk analysis" might be performed to achieve this result?

Note: My question is different from Looking for a tool that gives a score based on the likely hood of a 0-confirm deposit being douple spent because:

1) The question above explicitly asks for a open source tool to achieve the intended purpose. I am asking about what logical vectors might be used to achieve the stated goal (One example might be accepting transactions from addresses associated with well known exchanges such as Coinbase who are unlikely to perform a double spend)

2) The response in that question basically states that it is not possible to achieve this. It does not answer the question. As stated in the comments, it is demonstrably wrong as GAP600 is doing this along with several others.

3) To be clear, the possibility of accepting Bitcoin with 0 confirmations doesn't imply that every transaction will be accepted. If the risk is great enough the transaction will have to wait until 6 confirmations but it GAP600 is able to accept up to 85% of transaction with 0 confirmations

4) It is also possible that a transaction which is deemed un-risky will turn out to be a double spend however it is obvious that the likelihood of this happening is so minute that the value obtained from the other transaction will outweigh any loss from this error (this is my own assumption)

  • Accepting zero confirmation transactions as final is not safe afaik. And in some cases you might even want to wait for more than 1 confirmation.
    – user103136
    Commented Jan 17, 2021 at 1:18
  • @chytrik Definitely not. Also, the highest voted answer (bitcoin.stackexchange.com/a/97203/78451) is demonstrable wrong as GAP600 (and possibly Gemini ) is able to guarantee up to 85% of all transactions against double spend etc. They've processed over $5 billion worth of Bitcoin and there are many prominent payment processors relying on their algorithm. You may not know how they do it, but there are definitely ways that this can be done.
    – S.O.S
    Commented Jan 17, 2021 at 4:14

1 Answer 1


How is it possible to guarantee a transaction against double-spend, expiration or other fraud before it is confirmed by the Bitcoin network?

It isn't really possible in the absolute sense, but you can could perhaps create an insurance fund of sorts, to help provide guarantees against the rare occasion one of your customers is defrauded.

However you fundamentally cannot know for certain whether or not any specific transaction will be confirmed, until it has been. Even if a transaction has been seen by every node on the network, a miner could craft a conflicting transaction, and include it in their next block (with a success rate equal to their percentage of the hashpower). No amount of risk analysis can change this fact.

What kind of "risk analysis" might be performed to achieve this result?

It is hard to say for certain.

You could attempt to track where transactions originate from, like for example if you see transactions coming from large exchanges or service providers that are well-known and trusted in the community. Those entities are probably less likely to attempt a double spend.

You could watch for transactions marked as 'replace-by-fee' (RBF), which is a technique employed by many wallets, which allows the user to increase the fee-rate on a transaction for faster confirmation. Transactions marked as RBF could be treated as less trustworthy in regards to 'zero-confirmation' assurances.

There are likely other ways as well, those are the first couple that come to mind.

Not the answer you're looking for? Browse other questions tagged or ask your own question.