Bitcoin Forum
September 22, 2020, 03:00:37 AM *
News: Latest Bitcoin Core release: 0.20.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 »  All
  Print  
Author Topic: [C#] Watch Only Bitcoin Wallet. Support SegWit and Forks (V3.2.1)  (Read 16760 times)
Coding Enthusiast
Legendary
*
Offline Offline

Activity: 825
Merit: 1617


Bitcoin and C♯ Enthusiast


View Profile WWW
September 14, 2016, 02:54:14 PM
Last edit: April 13, 2020, 01:47:28 PM by Coding Enthusiast
Merited by bitmover (3), mprep (2), OmegaStarScream (2), Lutpin (2)
 #1

Table of Contents

__________

Introduction
This is a simple open source tool which can help users keep track of their bitcoin addresses, balance of each address, bitcoin price and Total balance value in BTC, $ and user's local currency, balances at a specific height.
The main focus will be in keeping this tool light and fast.



*Click on the image to see bigger size*


Features
  • Capable of holding multiple bitcoin addresses with tags, address and their balances.
  • Validating each address with Base58_encoding and new Bech32 format for Segregated Witness.
  • Using a grid (like excel) to show the list which makes it easy to add/edit/remove items.
  • Import addresses in bulk from file or paste in textbox (seperate by newline).
  • Using different block explorer API services to update balances.
  • See the total bitcoin amount in BTC, USD and user defined local currency.
  • USD value can be retrieved from Bitfinex.com or Btc-e.com exchanges using their API.
  • View balance at a specific block height. This is useful for checking how much you owned when a fork like bitcoin cash happened.



Links
Source code on GitHub: https://github.com/Coding-Enthusiast/Watch-Only-Bitcoin-Wallet
Donate Bitcoin: 1Q9swRQuwhTtjZZ2yguFWk7m7pszknkWyk
SegWit: bc1q3n5t9gv40ayq68nwf0yth49dt5c799wpld376s

 



To Do List (aka future features!)
  • [✓]Add other block explorer's APIs and the ability to switch between them.
  • [✓]Add a couple of bitcoin exchanges API for receiving the live bitcoin price.
  • [✓]Add Base58CheckSum check for the input bitcoin address to prevent typos.
  • [✓]Change the style from TextBox to a ListView to make adding unlimited addresses easier.
  • [✓]Handling possible Excretions properly.
  • [✓]Adding the option to create a raw unsigned transaction.(A separate project! Link)
  • [✓]Add unit test.


Feel free to post your request, feedback, suggestion,... in the comments here or on GitHub

Projects List+Suggestion box
Donate: 1Q9s or bc1q
|
|
|
FinderOuter(0.5.0)Ann-git
Denovo(0.0.0)Ann-git
Bitcoin.Net(0.5.0)Ann-git
|
|
|
BitcoinTransactionTool(0.11.0)Ann-git
WatchOnlyBitcoinWallet(3.2.1)Ann-git
SharpPusher(0.10.0)Ann-git
1600743637
Hero Member
*
Offline Offline

Posts: 1600743637

View Profile Personal Message (Offline)

Ignore
1600743637
Reply with quote  #2

1600743637
Report to moderator
1600743637
Hero Member
*
Offline Offline

Posts: 1600743637

View Profile Personal Message (Offline)

Ignore
1600743637
Reply with quote  #2

1600743637
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1600743637
Hero Member
*
Offline Offline

Posts: 1600743637

View Profile Personal Message (Offline)

Ignore
1600743637
Reply with quote  #2

1600743637
Report to moderator
1600743637
Hero Member
*
Offline Offline

Posts: 1600743637

View Profile Personal Message (Offline)

Ignore
1600743637
Reply with quote  #2

1600743637
Report to moderator
1600743637
Hero Member
*
Offline Offline

Posts: 1600743637

View Profile Personal Message (Offline)

Ignore
1600743637
Reply with quote  #2

1600743637
Report to moderator
Coding Enthusiast
Legendary
*
Offline Offline

Activity: 825
Merit: 1617


Bitcoin and C♯ Enthusiast


View Profile WWW
October 06, 2016, 01:55:11 PM
Last edit: February 16, 2018, 10:31:15 AM by Coding Enthusiast
 #2

Major Updates (see commits on github for details)
  • [2016-09-14] Added Icon, Links and some code cleanup
  • [2016-09-09] Initial Commit
  • [2016-10-06] Changed GUI from old TextBox mode to ListView mode for a better look.
  • [2016-10-09] Version 1.1.0 released.
  • [2016-12-05] Version 2.0.0 released.
  • [2017-02-03] Version 2.1.0 released. (Code improved) Now there is only two assemblies.
  • [2017-06-25] Version 2.2.0 released. Lots of code improvement.
  • [2017-12-12] Version 2.3.0 released. New block explorer and balance column is now color coded.
  • [2018-01-04] Version 2.4.0 released. Added fork balance.
  • [2018-01-29] Version 3.0.0 released. Added support of Bech32 SegWit address format.
  • [2018-02-16] Version 3.1.0 released. Added an option to import addresses from file/text in bulk.

Projects List+Suggestion box
Donate: 1Q9s or bc1q
|
|
|
FinderOuter(0.5.0)Ann-git
Denovo(0.0.0)Ann-git
Bitcoin.Net(0.5.0)Ann-git
|
|
|
BitcoinTransactionTool(0.11.0)Ann-git
WatchOnlyBitcoinWallet(3.2.1)Ann-git
SharpPusher(0.10.0)Ann-git
Patatas
Legendary
*
Offline Offline

Activity: 1722
Merit: 1111


LuckyB.it is Back!


View Profile
October 06, 2016, 06:47:15 PM
 #3

As respectfully I'd like to appreciate your efforts for putting the stuff on github,I'd want to point out the main factor which would make your app absolutely a waste of time.That is,the requirements!

 -No everybody uses web wallets,electrum pretty much gives the same service to watch my wallet addresses.
 -Any block explorer would give the results instantly after putting a bitcoin address.Do you really think someone would
 take the pain of keep a 3rd party app running and refreshing the stuff to get the latest results ? I doubt it.
 -I'd give you one for the efforts but practically,I don't think the app would make anything simpler to use.

                         ▄▄▄▄▄▄
             ▄▄█████▄▄███████████▄▄
     ▄▄    ▄████▀▀█████▀▀▀  ▄███████▄
  ▄█████  ████    ███▀     ███▀▀▀████▌
 ▐██▀    ████    ▐██▀  ▄  ▐███    ███▌
 ▐██▄   █████  ▄▄███  ███ ███▌   ▄███
  ▀█████████████████▄███ ▐█████████▀
    ▀▀▀▀████▀▀  ▀▀████▀  ██████████
       ▐███▌            ▐███    ▀███▄
       ████             ███▌     ████
    ▄▄█████       ▄██▄ ▐███     ▄███▀
 ▄███████████▄▄▄█████▀ █████▄▄▄████▀
█████▀▀▀▀██████████▀ ▐███████████▀
▀▀          ▀▀▀▀▀     ▀▀▀▀  ▀▀▀













██████████████████
████████████████████████
████████████████████████████
███████████████████████▀▀    ███
████████████████████▀▀   ▄▄██  ███
██████████████████▀▀   ▄▄██████  █████
██
████████████▀▀   ▄▄██████████  █████
███
████████▀▀   ▄▄██████████████  ██████
██
█████▀▀   ▄▄██████████████████  ██████
██
██▀   ▄▄██████████████████████  ██████
██
██
▄▄██████████████████████████  ██████
██
██
████████████████████████████  ██████
███
██
███████████████████████████  ██████
██
███
█████████████████████████  █████
████
██
█████████████████████████  █████
███
██
████████████████████████████
███
████
██████████████████████████
████
█████
███████████████████
██████
██████████████████
██████████████████












● Great Prizes
● Trophies
● The Original Plinko
● Great Community
● Chat Lotto
● Low House Edge
Youresioure
Full Member
***
Offline Offline

Activity: 162
Merit: 100


Reich mir die Hand


View Profile WWW
October 06, 2016, 06:56:21 PM
 #4

Thank you for uploading your BTC wallet to GitHub! I'm learning C# in my free time and I keep your upload an useful resource. Since it's open-source, I hope I'll be able to contribute some nice features in it soon.
Coding Enthusiast
Legendary
*
Offline Offline

Activity: 825
Merit: 1617


Bitcoin and C♯ Enthusiast


View Profile WWW
October 08, 2016, 06:33:40 AM
 #5

Thanks for your feedbacks.

As respectfully I'd like to appreciate your efforts for putting the stuff on github,

This is the main reason. to make the code open source, get feedback on the code and learn more about coding (look at my name Wink)

Quote
I'd want to point out the main factor which would make your app absolutely a waste of time.That is,the requirements!

I enjoy coding so even if others don't find it useful, I am learning a lot of things in the process and I find it useful for myself that is why I created this in the first plce.
2 weeks ago I couldn't imagine designing the Xaml like what you see in the first post.
A month ago I didn't know how to use Github now i am pushing commits properly to my new branch.
A couple of months ago i had no idea how to use API and now i have this as my tiny side-project and 4 other projects 1 of which is a trading utilities which i am up to 2000 lines of code.

Quote
-No everybody uses web wallets,electrum pretty much gives the same service to watch my wallet addresses.

It is mainly about the size, Electrum is lightweight but it is still 50 MB installation file + 35 MB headers and wallets files.
this project is 1 MB installation file + < 3KB wallet file

Also i personally like to keep track of the value of my bitcoin. If you look at the left side of the GUI you see three TextBoxes for total bitcoin balance and the value of it in USD and local currency which I can't get in Electrum.

Quote
-Any block explorer would give the results instantly after putting a bitcoin address.Do you really think someone would
 take the pain of keep a 3rd party app running and refreshing the stuff to get the latest results ? I doubt it.

It is more like a log book to keep track of ALL your money (public keys)!
For example I have multiple bitcoin addresses which I want to keep them all in one place and not have to copy each address, open a browser and paste one by one to see what the balances are and then open up a calculator to calculate how much it is worth especially in my local currency!



Thank you for uploading your BTC wallet to GitHub! I'm learning C# in my free time and I keep your upload an useful resource. Since it's open-source, I hope I'll be able to contribute some nice features in it soon.

If I see more C♯ Enthusiasts around here I may publish more of my projects on Github.
I'll be glad to see your contributions and help you in any way i can in learning C♯.

Projects List+Suggestion box
Donate: 1Q9s or bc1q
|
|
|
FinderOuter(0.5.0)Ann-git
Denovo(0.0.0)Ann-git
Bitcoin.Net(0.5.0)Ann-git
|
|
|
BitcoinTransactionTool(0.11.0)Ann-git
WatchOnlyBitcoinWallet(3.2.1)Ann-git
SharpPusher(0.10.0)Ann-git
apoorvlathey
Hero Member
*****
Offline Offline

Activity: 1148
Merit: 547


CryptoTalk.Org - Get Paid for every Post!


View Profile WWW
October 09, 2016, 05:24:38 PM
 #6

As respectfully I'd like to appreciate your efforts for putting the stuff on github,I'd want to point out the main factor which would make your app absolutely a waste of time.That is,the requirements!

 -No everybody uses web wallets,electrum pretty much gives the same service to watch my wallet addresses.
 -Any block explorer would give the results instantly after putting a bitcoin address.Do you really think someone would
 take the pain of keep a 3rd party app running and refreshing the stuff to get the latest results ? I doubt it.
 -I'd give you one for the efforts but practically,I don't think the app would make anything simpler to use.

I think this software must be upgraded to an online service. It would then become more convenient to use than to install 3rd party software. It would practically be more easy to view all the addresses's balances in one place instead of using blockchain explorer for each and every address.

semobo
Full Member
***
Offline Offline

Activity: 1106
Merit: 123


★Bitvest.io★ Play Plinko or Invest!


View Profile
October 09, 2016, 08:44:52 PM
 #7

Don't get discouraged. Open source software is much appreciated and needed. Keep up the good work. I'm a C# developer myself and always love seeing new C# projects pop up. Would love to help you in any way I can.

OROBTC
Legendary
*
Offline Offline

Activity: 1932
Merit: 1102



View Profile
October 09, 2016, 09:43:50 PM
 #8

...

I am not a programmer, but I do very much appreciate those who add value with open-source software.  "Adding value" is what it's all about (in making progress).

So: clap, clap  Smiley 

An idea of a future project that I would like to see would be another "Taint Analysis" tool that would show "taint" (connections) between BTC wallets and BTC transfers.  Depending on blockchain.info (as a monoploy on this type of tool) makes me a tad queasy...
klaaas
Hero Member
*****
Offline Offline

Activity: 1358
Merit: 538



View Profile
October 09, 2016, 10:01:24 PM
 #9

Great to see you share your code ! could be handy if you got multiple wallets to keep an eye on.
I was planning to do the same concept in php if i can find the spear time.

Shopping online and stekking sats (satsback) via Lightning
Coding Enthusiast
Legendary
*
Offline Offline

Activity: 825
Merit: 1617


Bitcoin and C♯ Enthusiast


View Profile WWW
October 10, 2016, 03:48:38 AM
 #10

♯I think this software must be upgraded to an online service.♯

There is already a good service you can use for "watch-only" purposes called blockchain.info and they even send you an SMS free of charge.

♯It would then become more convenient to use than to install 3rd party software.♯

This is open source, you don't install anything. You go through the code and if you understood the code, you compile it yourself.

Don't get discouraged. Open source software is much appreciated and needed. Keep up the good work. I'm a C# developer myself and always love seeing new C# projects pop up. Would love to help you in any way I can.

Thank you for your kind words. I am still a beginner but I have been improving a lot. I've already gotten some good feedback on my code on Reddit. But I am always looking for criticism and/or contribution in any way.

An idea of a future project that I would like to see would be another "Taint Analysis" tool that would show "taint" (connections) between BTC wallets and BTC transfers.  Depending on blockchain.info (as a monoploy on this type of tool) makes me a tad queasy...

This sounds like a very good idea. I am working on 4 different projects these days 2 of which you can see here (the wallet and making transactions: Raw unsigned and also CPFP transactions) but I will add it to my queue.



I will update the code this week with all the feedback I have received so far, and most importantly I will add documentation to make it easier to understand.

Projects List+Suggestion box
Donate: 1Q9s or bc1q
|
|
|
FinderOuter(0.5.0)Ann-git
Denovo(0.0.0)Ann-git
Bitcoin.Net(0.5.0)Ann-git
|
|
|
BitcoinTransactionTool(0.11.0)Ann-git
WatchOnlyBitcoinWallet(3.2.1)Ann-git
SharpPusher(0.10.0)Ann-git
OROBTC
Legendary
*
Offline Offline

Activity: 1932
Merit: 1102



View Profile
October 10, 2016, 04:44:14 AM
 #11

♯I think this software must be upgraded to an online service.♯

There is already a good service you can use for "watch-only" purposes called blockchain.info and they even send you an SMS free of charge.

♯It would then become more convenient to use than to install 3rd party software.♯

This is open source, you don't install anything. You go through the code and if you understood the code, you compile it yourself.

Don't get discouraged. Open source software is much appreciated and needed. Keep up the good work. I'm a C# developer myself and always love seeing new C# projects pop up. Would love to help you in any way I can.

Thank you for your kind words. I am still a beginner but I have been improving a lot. I've already gotten some good feedback on my code on Reddit. But I am always looking for criticism and/or contribution in any way.

An idea of a future project that I would like to see would be another "Taint Analysis" tool that would show "taint" (connections) between BTC wallets and BTC transfers.  Depending on blockchain.info (as a monoploy on this type of tool) makes me a tad queasy...

This sounds like a very good idea. I am working on 4 different projects these days 2 of which you can see here (the wallet and making transactions: Raw unsigned and also CPFP transactions) but I will add it to my queue.



I will update the code this week with all the feedback I have received so far, and most importantly I will add documentation to make it easier to understand.



It's guys like you who make the world progress.  I hope that when the time comes that you make some serious coin (Bitcoin?  smile).

There is a lot about the "New Economy" that I still do not well understand (how do you get paid for open-source work, etc.).  But, coding that is open to public review, and with getting notice as author of it, should work out well for you.

Bravo.

Coding Enthusiast
Legendary
*
Offline Offline

Activity: 825
Merit: 1617


Bitcoin and C♯ Enthusiast


View Profile WWW
October 10, 2016, 04:52:50 AM
 #12

♯There is a lot about the "New Economy" that I still do not well understand (how do you get paid for open-source work, etc.). ♯

Open source means you are doing it for free, especially when you release under MIT license.
And as for making money! I even feel bad for having a donation link, it is more of a habit I think!

Quote
But, coding that is open to public review, and with getting notice as author of it, should work out well for you.

Being able (having the knowledge) to do a tiny thing like this gives me a feeling that I can't buy with all the money in the world ^.^

Projects List+Suggestion box
Donate: 1Q9s or bc1q
|
|
|
FinderOuter(0.5.0)Ann-git
Denovo(0.0.0)Ann-git
Bitcoin.Net(0.5.0)Ann-git
|
|
|
BitcoinTransactionTool(0.11.0)Ann-git
WatchOnlyBitcoinWallet(3.2.1)Ann-git
SharpPusher(0.10.0)Ann-git
Dabs
Legendary
*
Offline Offline

Activity: 2730
Merit: 1446


The Concierge of Crypto


View Profile
October 19, 2016, 01:19:41 PM
 #13

How to compile this?

Coding Enthusiast
Legendary
*
Offline Offline

Activity: 825
Merit: 1617


Bitcoin and C♯ Enthusiast


View Profile WWW
October 19, 2016, 03:15:45 PM
 #14

How to compile this?

You need Visual Studio that supports .Net Framework 4.5 and up so at least Visual Studio 2013.

You can download it from here: https://www.visualstudio.com/downloads/

Also as it is said in the GitHub you will need a Nuget package called Newtonsoft.Json (https://www.nuget.org/packages/newtonsoft.json/)
Install with
Code:
Install-Package Newtonsoft.Json

Also keep an eye out, I will soon release a newer version with a little bit better look and easier address edit and a much better code behind following the MVVM pattern.

Projects List+Suggestion box
Donate: 1Q9s or bc1q
|
|
|
FinderOuter(0.5.0)Ann-git
Denovo(0.0.0)Ann-git
Bitcoin.Net(0.5.0)Ann-git
|
|
|
BitcoinTransactionTool(0.11.0)Ann-git
WatchOnlyBitcoinWallet(3.2.1)Ann-git
SharpPusher(0.10.0)Ann-git
btc_enigma
Hero Member
*****
Offline Offline

Activity: 665
Merit: 507


View Profile
October 20, 2016, 05:48:30 AM
 #15

Good job. Perhaps you can create an android version too.

Coding Enthusiast
Legendary
*
Offline Offline

Activity: 825
Merit: 1617


Bitcoin and C♯ Enthusiast


View Profile WWW
October 20, 2016, 11:51:37 AM
 #16

Good job. Perhaps you can create an android version too.

Thanks.
I have it in my future plans, but the problem is I don't have an android so it would be a bit hard for me to test since I have never done it before, but I will do it eventually.

Projects List+Suggestion box
Donate: 1Q9s or bc1q
|
|
|
FinderOuter(0.5.0)Ann-git
Denovo(0.0.0)Ann-git
Bitcoin.Net(0.5.0)Ann-git
|
|
|
BitcoinTransactionTool(0.11.0)Ann-git
WatchOnlyBitcoinWallet(3.2.1)Ann-git
SharpPusher(0.10.0)Ann-git
apoorvlathey
Hero Member
*****
Offline Offline

Activity: 1148
Merit: 547


CryptoTalk.Org - Get Paid for every Post!


View Profile WWW
October 20, 2016, 02:27:17 PM
 #17

Good job. Perhaps you can create an android version too.

Thanks.
I have it in my future plans, but the problem is I don't have an android so it would be a bit hard for me to test since I have never done it before, but I will do it eventually.

Don't worry if you don't have android device, you can still test and run your app on android emulator on a pc.
Android studio by google, bluestacks, leapdroid are some of the emulators.

OmegaStarScream
Staff
Legendary
*
Offline Offline

Activity: 2142
Merit: 2314



View Profile
October 21, 2016, 12:13:18 PM
 #18

Good job. Perhaps you can create an android version too.

Thanks.
I have it in my future plans, but the problem is I don't have an android so it would be a bit hard for me to test since I have never done it before, but I will do it eventually.

Since you are writing using C# , you could use Xamarin [ http://xamarin.com/ ] (for both Android & iOS) and you don't have to own an android phone , Visual studio will allow you to run an Android emulator once you execute the code and you could test everything on it (It's going to require a decent RAM & CPU).

semobo
Full Member
***
Offline Offline

Activity: 1106
Merit: 123


★Bitvest.io★ Play Plinko or Invest!


View Profile
October 22, 2016, 12:52:20 AM
 #19

I've used Xamarin in the past. It does it's job, sure. The one problem I have with it would be the huge payload for such small apps. You're looking at around 5mb payload before you even write a single line of code.

Coding Enthusiast
Legendary
*
Offline Offline

Activity: 825
Merit: 1617


Bitcoin and C♯ Enthusiast


View Profile WWW
October 31, 2016, 08:55:37 AM
 #20

Version 2 is getting ready for release:

Major new features:
  • Code is following the MVVM pattern now
  • The wallet GUI is using the GridView which gives a more excel like view making it easier to add/edit/remove items.
  • Input validation is added to prevent user from entering an invalid bitcoin address

I want to work a little bit more on the code so I am still not merging this with the main branch. But you can see the development on the MVVM branch
Feel free to give me any suggestions or requests. 

Projects List+Suggestion box
Donate: 1Q9s or bc1q
|
|
|
FinderOuter(0.5.0)Ann-git
Denovo(0.0.0)Ann-git
Bitcoin.Net(0.5.0)Ann-git
|
|
|
BitcoinTransactionTool(0.11.0)Ann-git
WatchOnlyBitcoinWallet(3.2.1)Ann-git
SharpPusher(0.10.0)Ann-git
Pages: [1] 2 3 »  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!