I assumed that that was a new project. I didn’t want to be too hard on someone who is excited about his new project. He said there was “lots of room for improvement”, so I assumed that it was being improved. I took that post within its four corners—only pointed out the obvious about keypools; HD wallet support is a basic MVP feature, a safety feature. My bad. A pile of unmaintained PHP code ( srsly) that uses keypools, and is exclusively reliant on Blockchain(dot)(whatever)? Mark Karpelès did better than this. But its author has spare dev cycles to make videos promoting it on Youtube. I built NoNodePay for this exact purpose a few years back, no lightning though. This is a simple shopping cart that creates keypool to give each buyer a unique address to pay to, as well as an admin dashboard to track orders, add new products etc. Lots of room for improvement but the basics are there.https://github.com/coinables/NoNodePayHere's a video demo and a walkthrough of how to set it up on just about any server, even free shared servers: https://www.youtube.com/watch?v=jBUnOFxe24sPlease, no. The question from OP is on the Development Board, and the question was how would someone achieve this without using a node. I shared an old project that showed how one COULD DEVELOP their own solution by looking at how I created a simple shopping cart with very minimal code. It is not a product launch, and I'm not telling anyone to use it, but rather a sharing of ideas and approach of how to solve different solutions. I know it's fun to make fun of PHP but it is a lot more helpful to see someone else's simple implementation instead of you typing on a board "just use an zpub bro". They can build on whatever stack they want. The simpiler, the easier to understand the concept and develop for it. That is what this board is about. Very few people are offering anything helpful and instead are just pumping their signature campaigns, so don't scold me about sharing a walkthrough on youtube.
|
|
|
I built NoNodePay for this exact purpose a few years back, no lightning though. This is a simple shopping cart that creates keypool to give each buyer a unique address to pay to, as well as an admin dashboard to track orders, add new products etc. Lots of room for improvement but the basics are there. https://github.com/coinables/NoNodePayHere's a video demo and a walkthrough of how to set it up on just about any server, even free shared servers: https://www.youtube.com/watch?v=jBUnOFxe24s
|
|
|
The only input I'm seeing here is "this is new and I don't know how to use it".
I don't think that's it. Then why remove dumpprivkey entirely? Why not update that CLI response to include the WIF and a descriptor of the path? Remember how long `getinfo` was deprecated before it was actually functionally removed? Not sure what the rush is... I have seen people complaining about not being able to see their address(es) because they imported their key(s) into a wallet that only makes a specific type of address. I have seen people confused why when they import a xpub or xprv that the wallet generates a completely different set of addresses than they are expecting. Descriptor solve these problems by explicitly stating what kind of addresses to create and what the derivation paths are.
The confusion we all see on a regular basis is because of the backwards compatibility of output types, and because wallets are free to deviate from a standard (as they should be able to) -- to that end I think we just need to accept that confusion will always exist. Creating yet another new standard that may not be adopted by most wallets just creates an opportunity in the future for more confusion. Similar to how we saw wallets completely diverge on an HD standard. I know the goal is to improve bitcoin, help others and make loss of funds more difficult but I think in a few years time we will have some users with descriptors and some without. Users asking how to recover funds without descriptors, or how to import if their wallet doesn't support descriptors.
|
|
|
I agree with OP I'm not a fan of the new wallet design. Being able to supposedly export private keys does not guarantee that you actually have them. For all you know, Bitcoin Core could be outputting gibberish when you use dumpprivkey. If all you want is to see private keys, then listdescriptors will do that.
What do you mean? Any WIF key can easily be converted to an address by many different libraries in many languages that could easily confirm Bitcoin Core is not "outputting gibberish". No, it actually makes things easier.
No, a real user is telling you it's actually more difficult. You'd likely benefit by taking their input into consideration. A bunch of core devs probably isn't the best test group for usability. Just because someone knows more about something than someone else, doesn't mean they know best. It's sad that Core continues to miss on UX year after year...
|
|
|
This is a standard JSON response. What you are looking to do is parse JSON in what appears to be PHP. If you haven't already you can use json_decode() to convert it to an array and tell it to return the numeric key #2. Deposit #38 is the third element in the object, but in programming zero is the first position -- therefore Deposit #38 is actually labeled #2 in the object. $json = json_decode($obj, true); echo $json["result"]["deposits"][2];
|
|
|
Excuse me from asking, but why would anyone want to use this? You've said that the wallet uses public APIs and so, your IP can be tracked, that the users should be extremely cautious etc. You've literally called it the most dangerous wallet, and it's true. There are many things you should be aware of such as your browser extensions, programs that have access to your browser etc.
Sure, it might was a good exercise to code it, but to serve it as a "fast & anonymous wallet"? I think it's just bad. Benignly.
First of all, this is a Project Development board, not a Service Announcement. So I'm not asking anyone to use it -- I'm sharing an open source project. Second, you can't come up with a reason why someone would want a single-page open source instantaneous web wallet without setup or registration that they could run from their own machine? Hmm... that doesn't seem sincere but okay. As someone who develops browser extensions I can say that I'm aware of their localStorage access capabilities and their risks. I can also say almost all the same things about desktop wallets. Seems rather naïve to be coming from someone with "BlackHat" in their name but your IP will be also leaked using a desktop wallet to the wallet server, and malware may steal your keys stored on your PC.
|
|
|
The websocket connection for the exchange rate on the other hand, does not include any address, UTXO data. Simply just grabbing the US dollar exchange rate.
I see, but IMO it's better mention the live demo access several 3rd party website (bitfinex for exchange rate and google for font) for optional feature. Thanks! I didn't even think about the font dependency in the bootstrap CSS file. Definitely don't want that. I'm going to remove that ASAP. Also I'll make a note of the use of bitfinex's websocket for exchange rate. I like how youtube video you posted is saying that this is Worlds Most Dangerous Bitcoin Wallet This wallet could be useful for fast and small transactions ...<snip>... Question for @coinableS: Is it possible to make a version of this wallet that work with Bitcoin testnet, and can we can manually set fees for sending transactions or not? Right, designed to be a throw-away wallet, similar to throw away email. It could be converted to testnet but I have not done it.
|
|
|
Is the 20 address arbitrary or is the there a programming reason you have that limit? And is there a way to show the private key for a particular address instead of revealing the seed words?
Either way VERY cool project.
-Dave
Thanks Dave! The 21 address limit is for two reasons: 1) Unleashing the full potential of an HD wallet could lead to an enormous amount of addresses in a wallet which will exceed public API usage limits. Blockchair for example uses a point/cost system. Larger requests "cost" more and you will hit your limit with larger requests. 2) Most HD wallets have a look-ahead gap of around 20. Without a limit users could potentially create 30 addresses (for example)in a keychain and then send funds to the 30th address which may go unnoticed if they try to recover on a wallet that has a look-ahead gap less than 30. To the user it may appear like they have lost funds when attempting to recover from the mnemonic, when in reality the wallet just can't see it due to the look-ahead gap issue. If you are an advanced user and want to get the WIFs simply typing `fkarr` in the browser console will reveal the 21 private key array. They are in respective order with the address array named `farr`.
|
|
|
- This wallet uses public APIs like Blockchain and Blockchair for UTXO data and they probably track your IP! Use a VPN.
I checked the live demo and saw there's network access to wss://api-pub.bitfinex.com/ws/2, did you forget to mention it? Ahh yes a simple websocket in order to grab the current exchange rate. The disclosure related to Blockchain and Blockchair API is related to privacy and associating addresses and UTXOs with an IP address. The websocket connection for the exchange rate on the other hand, does not include any address, UTXO data. Simply just grabbing the US dollar exchange rate.
|
|
|
Wanted to share something I have been working on and using for small casual sums. 100% FOSS free and open-source HD web wallet, FastWallet. Source: https://github.com/fast-wallet/fastwalletLive Demo: https://coinables.github.io/fastwalletYouTube: https://www.youtube.com/watch?v=Egt-BWDNkKsAn instant non-custodial HD bitcoin web wallet that runs in your browser. Serverless, nomadic, privacy-focused throwaway bitcoin wallet. Instantaneous use! No sign up process, no wallet setup process or upfront back up. Some key notes: - Be aware this is a serverless web wallet with your private keys stored in the browser! YIKES! You probably shouldn't use this wallet for significant sums. - This wallet uses public APIs like Blockchain and Blockchair for UTXO data and they probably track your IP! Use a VPN. - Your keys are ONLY stored on YOUR device's temporary internet files. If you don't save your back-up mnemonic and you clear your browser cache you will lose access to your funds permanently. FastWallet is a serverless bitcoin web wallet I built for casual/throwaway use cases. Similar to throwaway email accounts a throwaway wallet is temporary and anonymous for when you don't want transactions to mingle with your primary wallet(s). Although it is an HD wallet the wallet is limited to only 21 addresses, when you use up all 21 addresses just start a new wallet, although you are not prevented from re-using addresses if you wish(not recommended). The 21 address limit is to prevent a bloated wallet with too many addresses that will exceed free API usage limits, and to avoid any look-ahead gap issues if you attempt to recover on another device that support BIP84 deterministic wallets. This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.
|
|
|
What are some of the most reputable tools for doing this? Something that many users have used for years without issues.
https://iancoleman.io/bip39/ has been around for several years, popular, and trusted. Just check the "Show Entropy Details" box at the top and you can input your own entropy including dice rolls and/or playing cards.
|
|
|
Most browsers today have removed Flash and for good reason as it has some serious security issues that are easy to take advantage of, so much so that Flash became known for the entry point on security breaches. That said, let me know when your Flash NFT platform launches Seriously though, don't do it. Adobe officially abandoned Flash for good in 2020.
|
|
|
Nice site, I like the historical feature and that you have a simple API. Keep it up!
|
|
|
Hey all, I decided to list one of my old collectible USB antminers on scarce.city, a lightning based auction house. Check it out! https://scarce.city/auctions/antminer-1AUCTION STARTS MONDAY! In 2013 we saw the first USB ASIC miners, the infamous Block Erupter mining at 333 mh/s per second. In 2014 Bitmain introduced their U1 AntMiner hashing at 1.6gh/s and extremely low power usage at 2 volts via USB. Own this piece of bitcoin mining history from a pivotal moment when ASICs began to take over GPUs. This miner has minimal usage and is in excellent condition, includes original case with UPC sticker. This is being sold as a collectible; it is not practical to be used as a miner today.
|
|
|
How did you create that address? Perhaps it is a non-standard script which is why the error says it doesn't know how to sign it. If a custom p2sh what was your script?
|
|
|
What actually happens when it "goes offline"? Have you checked the server logs? Your host sounds lazy and/or incompetent if their response is "I don't know".
|
|
|
Sounds like you need to fork and start your own coin/chain. Bitcoin is not easy to change on the base protocol level, if there is any contention it will not be adopted, the idea of making backward breaking changes as you describe and introducing proof-of-stake is not a subtle change and has no chance of being pursued.
|
|
|
scantxoutset
You can run a pruned node on your machine locally and scan for UTXO's for ANY address (doesn't have to be imported to your wallet) by using the scantxoutset command. It takes a few minutes, but not nearly as long as a rescan. Doesn't take up a ton of space, and better than using a blockexplorer.
To query one address: scantxoutset start '[{"desc":"addr(1SomeAddress)"}]' Or for multiple addresses: scantxoutset start '[{"desc":"addr(1SomeAddress)"},{"desc":"addr(1AnotherAddressToCheck)"}]'
Since a pruned node does not have all transactions in the block chain, only those limited to what the pruned node stores, it cannot show you any long term history and will certainly return nothing for any confirmed transactions older than the amount pruned.scantxoutset scans the utxo set to match a certain output descriptor. Pruned nodes don't have all the block data, but they have a full UTXO set that's precisely how pruned nodes work.
|
|
|
scantxoutset
You can run a pruned node on your machine locally and scan for UTXO's for ANY address (doesn't have to be imported to your wallet) by using the scantxoutset command. It takes a few minutes, but not nearly as long as a rescan. Doesn't take up a ton of space, and better than using a blockexplorer.
To query one address: scantxoutset start '[{"desc":"addr(1SomeAddress)"}]' Or for multiple addresses: scantxoutset start '[{"desc":"addr(1SomeAddress)"},{"desc":"addr(1AnotherAddressToCheck)"}]'
|
|
|
|