3

I'm working on creating a service where it will accept Bitcoins from a certain address and be able to manage the Bitcoin for that user.

I'm using Coinbase APIs and I can't find a simple way to find out who sent me BTC. I had someone send me some recently and I had no record of the transaction except in my downloadable transaction history, and even then it doesn't say anything about the transaction or who sent it which seems odd.

Ive extensively searched every Coinbase API and I haven't seen anything that looks promising. It looks like Coinbase API mirrors the blockchain APIs so I don't think there's any additional information I can find there.

There must be some way to get information regarding the transaction?

2 Answers 2

3

In Bitcoin, it is generally not possible to attribute transactions to a single person without external knowledge of someone claiming that they made the transaction. There are no "from" addresses, and although you can inspect the inputs, there can be multiple inputs each associated with different addresses, and each of which may belong to a different person.

Generally, identifying who paid a service is done by giving each payer a different unique address. Following the philosophy of no address reuse, you would even given a new address for each payment which would also help to track what specific payments are for.

3
  • I'm assuming there are multiple "from" addresses due to the nature of how Bitcoin works through miners verifying and processing the transaction? Suppose there are two users and one of them sends me Bitcoin, both claim they sent the same amount. Even if I assign a unique address to the payer, how do I know which user actually sent it?
    – Riz
    Feb 19 at 5:38
  • 2
    You don't care who actually sent it. Bob and Joe want to buy a widget from you, you get your wallet to generate two new receiving addresses and give Bob the first, Joe the second. If you receive a payment to the first address you send a widget to Bob. If you receive a payment to the second address you send a widget to Joe. If Mary, Sue or Joe pay you to send a widget to Bob, you have no way to know and no reason to care. Feb 19 at 16:15
  • 2
    @Riz No, multiple "from" addresses are because Bitcoin uses a UTXO model, not an accounts model. Bitcoin does not have accounts, rather transactions create new UTXOs and consume existing UTXOs (created by previous transactions). Each UTXO is independent of every other UTXO, and multiple can be spent at the same time in a single transaction. As such, a transaction could spend UTXOs that all belong to different people, but they could also just be multiple UTXOs owned by a single person. These two cannot be distinguished from just looking at the transaction itself.
    – Ava Chow
    Feb 19 at 18:41
1

In the context of Bitcoin transactions and Coinbase API, it's important to understand that Bitcoin transactions are designed to be pseudonymous. This means that while transactions are recorded on the blockchain, which is a public ledger, they typically don't include personal information about the sender or recipient.

Coinbase, like many other cryptocurrency exchanges and wallet services, prioritizes user privacy and security. As a result, they often don't provide detailed information about the sender of a transaction, especially if it's incoming to your wallet.

However, there are a few potential ways to work around this limitation:

Requesting Information from Senders: If you're receiving Bitcoin from users of your service, you could implement a system where users include a unique identifier or some form of metadata when sending Bitcoin to your address. This could be a reference number, username, or any other data that helps identify the sender. However, this relies on the cooperation of your users and may not always be feasible.

Using Unique Addresses for Each User: Instead of having a single address for receiving Bitcoin, you could generate unique addresses for each user of your service. Many wallet providers and exchanges offer this feature. When a transaction occurs, you can link the incoming funds to the respective user based on the unique address used.

Exploring Coinbase's API Features: While Coinbase's APIs may not directly provide sender information for incoming transactions, they might offer other features or data that could help you identify transactions. For example, you could look into their wallet notifications or webhooks to receive real-time updates about transactions and potentially extract useful information from the transaction metadata.

Consider Compliance Solutions: Depending on your jurisdiction and the nature of your service, you may have legal obligations regarding Know Your Customer (KYC) and Anti-Money Laundering (AML) regulations. In such cases, you might need to implement additional identity verification processes for your users.

Ultimately, handling Bitcoin transactions in a way that suits your service's needs while respecting user privacy can be challenging. It often requires a combination of technical solutions, user education, and compliance measures to strike the right balance.

1
  • Generating a new wallet address through Coinbase does not seem to work, I get an invalid signature or "Account creation has been disabled." I have all permissions enabled. Maybe I need to use a different service...
    – Riz
    Feb 20 at 6:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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