Bitcoin Forum
April 30, 2024, 02:01:51 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 [87] 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 ... 191 »
  Print  
Author Topic: Vanitygen: Vanity bitcoin address generator/miner [v0.22]  (Read 1152823 times)
Kangaderoo
Member
**
Offline Offline

Activity: 89
Merit: 11


View Profile
June 30, 2014, 10:26:52 AM
 #1721

@MICRO i need a guide to generate addresses for others without knowing their private key. The provide me with a public key and I have to generate for them. Do you have a guide link for that?

Code:
./keyconv -X 30 -G
Pubkey (hex): 040db67a259fb8cf231fcf6f7249dc1191d793d5c5148ca6cfa5346ba8c4b8ce1f64e319c626fc50bad44700a5b0e2219304baf399429713cce581046a87637a68
Privkey (hex): 1F97DB4905104EFACAF237D0C5478137B0581080D851105131FC1DE799CD9F36
Address: D5KYFpU1daMsrhH9v6K2RnM2vNaNPxkzZL
Privkey: 6JNXsxrb37hirsR2QMFRjJ1PTfPaJdY5HC5WSXLTxbiq2nTXJLY

Code:
./vanitygen -X 30 -P 040db67a259fb8cf231fcf6f7249dc1191d793d5c5148ca6cfa5346ba8c4b8ce1f64e319c626fc50bad44700a5b0e2219304baf399429713cce581046a87637a68 DLR
Difficulty: 1353
Pattern: DLR
Address: DLRFhUnETpuKN9YyzXG8FPGCbHAzb6WWK1
PrivkeyPart: 6KwUrr32oqY8ge5gaADx9codyb4MtafzDmsFY1jSAcJkc2Xn3Ey

Code:
./keyconv -X 30 -c 6JNXsxrb37hirsR2QMFRjJ1PTfPaJdY5HC5WSXLTxbiq2nTXJLY 6KwUrr32oqY8ge5gaADx9codyb4MtafzDmsFY1jSAcJkc2Xn3Ey
Address: DLRFhUnETpuKN9YyzXG8FPGCbHAzb6WWK1
Privkey: 6JEegwXYMJhr756ZqLnWDvUyMytfNGUcr3wdSaQgmJzHwJakXq4


Here is roughly the procedure. the -X 30 is for DogeCoin, if left blank the software will default to BitCoin
the first step, gen of the new key, and the last step combining the keys need to be done by your third party for security reasons.
The generation of the new key is your work.


Slow but steady Android coin mining with NeoNeonMiner
BTC:1NeoArmnGyWHKfbje9JNWqw3tquMY7jHCw
1714485711
Hero Member
*
Offline Offline

Posts: 1714485711

View Profile Personal Message (Offline)

Ignore
1714485711
Reply with quote  #2

1714485711
Report to moderator
1714485711
Hero Member
*
Offline Offline

Posts: 1714485711

View Profile Personal Message (Offline)

Ignore
1714485711
Reply with quote  #2

1714485711
Report to moderator
"I'm sure that in 20 years there will either be very large transaction volume or no volume." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714485711
Hero Member
*
Offline Offline

Posts: 1714485711

View Profile Personal Message (Offline)

Ignore
1714485711
Reply with quote  #2

1714485711
Report to moderator
1714485711
Hero Member
*
Offline Offline

Posts: 1714485711

View Profile Personal Message (Offline)

Ignore
1714485711
Reply with quote  #2

1714485711
Report to moderator
rahulgarg12342
Newbie
*
Offline Offline

Activity: 27
Merit: 0


View Profile
June 30, 2014, 10:34:21 AM
 #1722

Hey is this for windows? And is the process for all cryptos same? Is this a .bat file? And why does it have 3 steps. I don't get it. I am a noob to this. Please can you explain.
foroplus
Legendary
*
Offline Offline

Activity: 1212
Merit: 1052



View Profile
June 30, 2014, 10:40:23 AM
 #1723

@MICRO i need a guide to generate addresses for others without knowing their private key. The provide me with a public key and I have to generate for them. Do you have a guide link for that?
The complete guide is in the original post of this thread.
"I have a lot of compute power, and want to make vanity addresses for others.  How do I do it?"

Your user can generate public addresses in a simplier way using "vanity address" tag of paper wallet generator as in http://bitaddress.org or https://liteaddress.org/.
And after you generate the second priv key, he can also add the two priv semi-keys there.

Almost all coins has a paper wallet generator.

rahulgarg12342
Newbie
*
Offline Offline

Activity: 27
Merit: 0


View Profile
June 30, 2014, 10:43:32 AM
 #1724

Foroplus thanks a lot. But I wanted a guide for windows 7.
Kangaderoo
Member
**
Offline Offline

Activity: 89
Merit: 11


View Profile
June 30, 2014, 10:48:13 AM
 #1725

Foroplus thanks a lot. But I wanted a guide for windows 7.
At the moment the tool is command line (no Gui) the source is cross platform, you will have to build the executable.

Hey is this for windows? And is the process for all cryptos same? Is this a .bat file? And why does it have 3 steps. I don't get it. I am a noob to this. Please can you explain.


When generating a key for a third party the result would not be secure.
If you just gen a plain address, both you and the person you send the result to will have access to the wallet.....

step 1:
you request a public key from the person you are going to generate the key for.
step 2:
With this public key, generate a new vanity address. (-P flag)
step 3:
the two private keys need to be combined for a new private key, only known to one person

Slow but steady Android coin mining with NeoNeonMiner
BTC:1NeoArmnGyWHKfbje9JNWqw3tquMY7jHCw
rahulgarg12342
Newbie
*
Offline Offline

Activity: 27
Merit: 0


View Profile
June 30, 2014, 10:54:50 AM
 #1726

Got it. So I did not know about the -P flag. Thanks and cheers!

Just one last thing. Can we use the same method to generate addresses for any coin if we know the starting character? Why is there a different command for doge address (-X)
MICRO
Legendary
*
Offline Offline

Activity: 2464
Merit: 1037


CEO @ Stake.com and Primedice.com


View Profile WWW
June 30, 2014, 01:01:18 PM
 #1727

Got it. So I did not know about the -P flag. Thanks and cheers!

Just one last thing. Can we use the same method to generate addresses for any coin if we know the starting character? Why is there a different command for doge address (-X)

Well it uses other algoritam and other calculations than for bitcoin , bitcoin (sha256), litecoin (script) ...
Thats why u need to "tell" generator what address u need .

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



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



● OVER 1000 GAMES
● DAILY RACES AND BONUSES
● RAKEBACK & VIP RANKS
● 24/7 LIVE SUPPORT
Trillium
Hero Member
*****
Offline Offline

Activity: 546
Merit: 500



View Profile
June 30, 2014, 01:18:52 PM
 #1728

Got it. So I did not know about the -P flag. Thanks and cheers!

Just one last thing. Can we use the same method to generate addresses for any coin if we know the starting character? Why is there a different command for doge address (-X)

https://en.bitcoin.it/wiki/List_of_address_prefixes

BTC:1AaaAAAAaAAE2L1PXM1x9VDNqvcrfa9He6
rahulgarg12342
Newbie
*
Offline Offline

Activity: 27
Merit: 0


View Profile
June 30, 2014, 02:01:16 PM
 #1729

Got it. So I did not know about the -P flag. Thanks and cheers!

Just one last thing. Can we use the same method to generate addresses for any coin if we know the starting character? Why is there a different command for doge address (-X)

https://en.bitcoin.it/wiki/List_of_address_prefixes

Sorry I do not know how to read or interpret it. Can you please give me an example? thanks.
TheRealSteve
Hero Member
*****
Offline Offline

Activity: 686
Merit: 500

FUN > ROI


View Profile
June 30, 2014, 02:24:26 PM
 #1730

Could someone please tell me the approximate time to generate an address that begins with 5-12 custom address.
You've already got a few answers (multiply by constant for each additional character), but if you plan on offering this as a service to others, you might want to take care of a few caveats.  Note that the best way would be to check the vanitygen source and look at the actual code used, duplicating that in your service.

Caveat 1: Make sure you disallow the characters 'O' (uppercase 'o'), '0' (number zero), 'I' (uppercase i'), and 'l' (lowercase L), as they're not allowed in addresses.  Make sure they know what characters their address should start with ('1' for Bitcoin), etc.

Caveat 2: Some prefixes are harder than others; https://bitcointalk.org/index.php?topic=301068.msg7478542#msg7478542

Caveat 2.1: Prefixes that are run-on digits of 1 are especially hard:
1AAAAA = 259,627,881
111111 = 1,099,511,627,776

Caveat 2.2: Some first characters are harder than others:
1 = 256
2-6 = 23
7-P = 22
Q = 65
R-z = 1,353

Caveat 2.3: Prefixes alphabetically (digits first, then uppercase, then lowercase) before the pivot prefix '1QLbz7JHiBTspS9' (it's longer, but this number of characters will do for practical purposes well into the future) are easier than those exactly on it, and easier still than those after it:
1QLbz5 = 259,627,881
1QLbz6 = 259,627,881
1QLbz7 = 837,596,142
1QLbz8 = 15,318,045,009
1QLbz9 = 15,318,045,009

There are some estimation routines - you can check out the javascript source for coinbit.tk for one example - but they'll all have edge cases where the estimation will be wrong by usually a factor 58 or 59, or some oddball number if it's on some other pivot (e.g. '1111G').  So while giving an estimate is fine, keep in mind that in some edge cases it's going to be wrong.  That's fine if you're just doing it for fun - but if you're taking payment, it's better to be able to give an accurate quote (lest you take payment for something that is estimated to take a few hours, but then actually ends up taking weeks).

Kangaderoo
Member
**
Offline Offline

Activity: 89
Merit: 11


View Profile
June 30, 2014, 02:24:57 PM
 #1731


Sorry I do not know how to read or interpret it. Can you please give me an example? thanks.

Basically most Crypto-Coin addresses are generated the same way. Independent of Scrypt/SHA etc.

A new private key is SHA256 hashed.
Next step is a RMD160 Hash.

A prefix (coin depended the -X) is added to this result
generate a checksum, add the checksum to the result
and display the result in a Base58 representation.

In order to get the resulting bitcoin address to start with ("1") the prefix equals 0, this is the default setting in the software

If you require a lite coin address ("L") the prefix used is -X 48
For a DogeCoin address ("D") the prefix is -X 30

see also https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses

Most of the addresses are generated this way, just use the table with a fixed setting of your first character.
calculate a test result, and insert the result in a wallet to verify the generated address.

Slow but steady Android coin mining with NeoNeonMiner
BTC:1NeoArmnGyWHKfbje9JNWqw3tquMY7jHCw
TheRealSteve
Hero Member
*****
Offline Offline

Activity: 686
Merit: 500

FUN > ROI


View Profile
June 30, 2014, 02:37:36 PM
 #1732

Note that if you need to find the parameter for "-X", you can also check the coin's source.  It's usually in there assigned to PUBKEY_ADDRESS in one way or another.

E.g. for DogeCoin (30):
https://github.com/dogecoin/dogecoin/blob/master/src/chainparams.cpp#L151
Code:
        std::vector<unsigned char> pka = list_of(30);
        base58Prefixes[PUBKEY_ADDRESS] = pka;

For LiteCoin (48):
https://github.com/litecoin-project/litecoin/blob/master-0.8/src/base58.h#L275
Code:
        PUBKEY_ADDRESS = 48, // Litecoin addresses start with L

Keep in mind that each coin will have its own quirks in terms of disallowed characters (at certain locations), etc.

jkminkov
Hero Member
*****
Offline Offline

Activity: 698
Merit: 500


View Profile
June 30, 2014, 02:44:34 PM
 #1733

I`m getting following errors:

[25.60 Mkey/s][total 113246208]                                                Match idx: 0
CPU hash: 62877214296428cff20ae302409afcabd66b05f1
GPU hash: 86c80e8df57566f7401c78c932b0862b13269b7e
Found delta: 6291453 Start delta: 1
Match idx: 0
CPU hash: a7154bbe3446797050205a116adc2a4b0e05Match idx: 0
CPU hash: eaf026c81206d7baf5a8ee137fa62d7b1efa1359
e11b
GPU hash: 2b5e766241541bf70a8ccc2489acMatch idx: 0
CPU hash: d73417646c48df0a688e6eca77b02291e3041f88
GPU hash: 9da6ec6c7c488c63ce5cfea3a1c4ec55f9734956
e87fc51bdf0c
Found delta: 6290172 Start delta: 1

if you have that output, extract files to current directory of oclvanitygen from https://www.sendspace.com/file/2unr1u

pick \SYSWOW64\*.* files if you have x64 bit windows

tested with windows 7 and hd5870 only

.:31211457:. 100 dollars in one place talking - Dudes, hooray, Bitcoin against us just one, but we are growing in numbers!
boliu
Sr. Member
****
Offline Offline

Activity: 267
Merit: 250

6th BTC reached. Thank you for your support


View Profile
June 30, 2014, 06:11:13 PM
 #1734

I`m getting following errors:

[25.60 Mkey/s][total 113246208]                                                Match idx: 0
CPU hash: 62877214296428cff20ae302409afcabd66b05f1
GPU hash: 86c80e8df57566f7401c78c932b0862b13269b7e
Found delta: 6291453 Start delta: 1
Match idx: 0
CPU hash: a7154bbe3446797050205a116adc2a4b0e05Match idx: 0
CPU hash: eaf026c81206d7baf5a8ee137fa62d7b1efa1359
e11b
GPU hash: 2b5e766241541bf70a8ccc2489acMatch idx: 0
CPU hash: d73417646c48df0a688e6eca77b02291e3041f88
GPU hash: 9da6ec6c7c488c63ce5cfea3a1c4ec55f9734956
e87fc51bdf0c
Found delta: 6290172 Start delta: 1

if you have that output, extract files to current directory of oclvanitygen from https://www.sendspace.com/file/2unr1u

pick \SYSWOW64\*.* files if you have x64 bit windows

tested with windows 7 and hd5870 only

You video driver is too new, downgrade it.

raganius
Sr. Member
****
Offline Offline

Activity: 308
Merit: 250


View Profile
June 30, 2014, 07:26:35 PM
 #1735

Cool! Thank you.
OgNasty
Donator
Legendary
*
Offline Offline

Activity: 4718
Merit: 4234


Leading Crypto Sports Betting & Casino Platform


View Profile WWW
July 04, 2014, 10:53:26 PM
 #1736

Will oclvanitygen ever be fixed to work with the latest SDK?

..Stake.com..   ▄████████████████████████████████████▄
   ██ ▄▄▄▄▄▄▄▄▄▄            ▄▄▄▄▄▄▄▄▄▄ ██  ▄████▄
   ██ ▀▀▀▀▀▀▀▀▀▀ ██████████ ▀▀▀▀▀▀▀▀▀▀ ██  ██████
   ██ ██████████ ██      ██ ██████████ ██   ▀██▀
   ██ ██      ██ ██████  ██ ██      ██ ██    ██
   ██ ██████  ██ █████  ███ ██████  ██ ████▄ ██
   ██ █████  ███ ████  ████ █████  ███ ████████
   ██ ████  ████ ██████████ ████  ████ ████▀
   ██ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██
   ██            ▀▀▀▀▀▀▀▀▀▀            ██ 
   ▀█████████▀ ▄████████████▄ ▀█████████▀
  ▄▄▄▄▄▄▄▄▄▄▄▄███  ██  ██  ███▄▄▄▄▄▄▄▄▄▄▄▄
 ██████████████████████████████████████████
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█  ▄▀▄             █▀▀█▀▄▄
█  █▀█             █  ▐  ▐▌
█       ▄██▄       █  ▌  █
█     ▄██████▄     █  ▌ ▐▌
█    ██████████    █ ▐  █
█   ▐██████████▌   █ ▐ ▐▌
█    ▀▀██████▀▀    █ ▌ █
█     ▄▄▄██▄▄▄     █ ▌▐▌
█                  █▐ █
█                  █▐▐▌
█                  █▐█
▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀█
▄▄█████████▄▄
▄██▀▀▀▀█████▀▀▀▀██▄
▄█▀       ▐█▌       ▀█▄
██         ▐█▌         ██
████▄     ▄█████▄     ▄████
████████▄███████████▄████████
███▀    █████████████    ▀███
██       ███████████       ██
▀█▄       █████████       ▄█▀
▀█▄    ▄██▀▀▀▀▀▀▀██▄  ▄▄▄█▀
▀███████         ███████▀
▀█████▄       ▄█████▀
▀▀▀███▄▄▄███▀▀▀
..PLAY NOW..
LtPaxIV
Sr. Member
****
Offline Offline

Activity: 400
Merit: 250


View Profile
July 05, 2014, 01:58:16 AM
 #1737

i dont think so if not someone else than OP will do it
OgNasty
Donator
Legendary
*
Offline Offline

Activity: 4718
Merit: 4234


Leading Crypto Sports Betting & Casino Platform


View Profile WWW
July 05, 2014, 02:53:12 AM
 #1738

i dont think so if not someone else than OP will do it

That's a shame.  Do any alternatives exist?

..Stake.com..   ▄████████████████████████████████████▄
   ██ ▄▄▄▄▄▄▄▄▄▄            ▄▄▄▄▄▄▄▄▄▄ ██  ▄████▄
   ██ ▀▀▀▀▀▀▀▀▀▀ ██████████ ▀▀▀▀▀▀▀▀▀▀ ██  ██████
   ██ ██████████ ██      ██ ██████████ ██   ▀██▀
   ██ ██      ██ ██████  ██ ██      ██ ██    ██
   ██ ██████  ██ █████  ███ ██████  ██ ████▄ ██
   ██ █████  ███ ████  ████ █████  ███ ████████
   ██ ████  ████ ██████████ ████  ████ ████▀
   ██ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██
   ██            ▀▀▀▀▀▀▀▀▀▀            ██ 
   ▀█████████▀ ▄████████████▄ ▀█████████▀
  ▄▄▄▄▄▄▄▄▄▄▄▄███  ██  ██  ███▄▄▄▄▄▄▄▄▄▄▄▄
 ██████████████████████████████████████████
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█  ▄▀▄             █▀▀█▀▄▄
█  █▀█             █  ▐  ▐▌
█       ▄██▄       █  ▌  █
█     ▄██████▄     █  ▌ ▐▌
█    ██████████    █ ▐  █
█   ▐██████████▌   █ ▐ ▐▌
█    ▀▀██████▀▀    █ ▌ █
█     ▄▄▄██▄▄▄     █ ▌▐▌
█                  █▐ █
█                  █▐▐▌
█                  █▐█
▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀█
▄▄█████████▄▄
▄██▀▀▀▀█████▀▀▀▀██▄
▄█▀       ▐█▌       ▀█▄
██         ▐█▌         ██
████▄     ▄█████▄     ▄████
████████▄███████████▄████████
███▀    █████████████    ▀███
██       ███████████       ██
▀█▄       █████████       ▄█▀
▀█▄    ▄██▀▀▀▀▀▀▀██▄  ▄▄▄█▀
▀███████         ███████▀
▀█████▄       ▄█████▀
▀▀▀███▄▄▄███▀▀▀
..PLAY NOW..
LtPaxIV
Sr. Member
****
Offline Offline

Activity: 400
Merit: 250


View Profile
July 05, 2014, 03:04:04 AM
 #1739

not that i know of. but (im not sure now) i think it was the mixture of catalyst and sdk that was the problem because i got the latest catalyst and vanity runs for me,not sure wich sdk i have atm tho
Remember remember the 5th of November
Legendary
*
Offline Offline

Activity: 1862
Merit: 1011

Reverse engineer from time to time


View Profile
July 05, 2014, 03:49:23 AM
 #1740

I might take a look at it later, but since my experience with OpenCL is very little, no promises.

BTC:1AiCRMxgf1ptVQwx6hDuKMu4f7F27QmJC2
Pages: « 1 ... 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 [87] 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 ... 191 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!