Hi @gladguy, I’m not sure I understand your question.
The Bitcoin API provides UTXOs for the following addresses (see docs):
Pay to public key hash (P2PKH)
Pay to script hash (P2SH)
Pay to witness public key hash (P2WPKH)
Pay to witness script hash (P2WSH)
Pay to taproot (P2TR)
As for signing transactions, you can use any address type that relies on ECDSA, so that would be all of the address types above with the exception of P2TR. We don’t offer libraries for signing Bitcoin transactions, so you’d have to rely on other libraries to do so or implement that yourself.
Mentions as below, it seems taproot is submitted or i misunderstood ?
Given a get_utxos_request, which must specify a Bitcoin address and a Bitcoin network (mainnet or testnet), the function returns all unspent transaction outputs (UTXOs) associated with the provided address in the specified Bitcoin network based on the current view of the Bitcoin blockchain available to the Bitcoin component. The UTXOs are returned sorted by block height in descending order.
Would like to know who owns the Mnemonic or private of the wallet ?
You mean, if you want to sign transactions on the Internet Computer, where would the private key/seed phrase be stored? You shouldn’t generate private keys on the Internet Computer, as that isn’t secure. Instead, you should be using the threshold ECDSA API. There are Motoko and Rust examples that show how this is done.
I’m unaware of any library that you can use out of the box with the Internet Computer currently. I’d have a look at the example above, or the source code of ckBTC for inspiration on how to sign transactions. Additionally, for P2TR, while you can retrieve the UTXOs of a PT2R address, you cannot use sign P2TR transactions as it doesn’t use ECDSA, so I’d suggest you go with a different address type for your project.