Bitcoin Forum
February 17, 2026, 05:00:35 PM *
News: Latest Bitcoin Core release: 30.2 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 [6] 7 »  All
  Print  
Author Topic: Can Coinjoin transactions be traced? Busting Bitcoin privacy myths!  (Read 3248 times)
SagittariusV
Newbie
*
Offline Offline

Activity: 11
Merit: 1


View Profile
January 25, 2025, 10:13:51 AM
 #101

I would like to ask:
can the coordinator, if he wants, arrange rounds for certain inputs only with this inputs and his own known inputs?
i.e. when the coordinator sees an attempt to register an input of interest to him, he throws out other inputs unknown to him from the round and supplements the round only with his own inputs.
not taking into account how expensive this may be and where the coordinator gets his inputs.
is this technically possible and how can the user be sure that this does not happen?
Kruw (OP)
Full Member
***
Offline Offline

Activity: 1022
Merit: 233


Use Bitcoin anonymously - wasabiwallet.io


View Profile WWW
January 25, 2025, 10:19:45 AM
 #102

I would like to ask:
can the coordinator, if he wants, arrange rounds for certain inputs only with this inputs and his own known inputs?
i.e. when the coordinator sees an attempt to register an input of interest to him, he throws out other inputs unknown to him from the round and supplements the round only with his own inputs.
not taking into account how expensive this may be and where the coordinator gets his inputs.
is this technically possible and how can the user be sure that this does not happen?

It's not possible to perform this sort of attack because the user you are targeting may have 2 inputs in the same round. This would allow the target to detect that their second input is suspiciously missing.

Protect your privacy - Coinjoin with Wasabi Wallet
Code:
https://coinjoin.kruw.io/
SagittariusV
Newbie
*
Offline Offline

Activity: 11
Merit: 1


View Profile
January 25, 2025, 10:38:03 AM
 #103

It's not possible to perform this sort of attack because the user you are targeting may have 2 inputs in the same round. This would allow the target to detect that their second input is suspiciously missing.
i.e. it is technically possible to do this. but the user may notice that not all of his inputs are taken into the round.
Kruw (OP)
Full Member
***
Offline Offline

Activity: 1022
Merit: 233


Use Bitcoin anonymously - wasabiwallet.io


View Profile WWW
January 25, 2025, 10:39:39 AM
 #104

i.e. is it technically possible to do this? but the user may notice that not all of his inputs are taken into the round.

Yes, here's an example of an implementation that verifies this information - https://github.com/WalletWasabi/WalletWasabi/pull/13658

Protect your privacy - Coinjoin with Wasabi Wallet
Code:
https://coinjoin.kruw.io/
Kruw (OP)
Full Member
***
Offline Offline

Activity: 1022
Merit: 233


Use Bitcoin anonymously - wasabiwallet.io


View Profile WWW
February 01, 2025, 10:23:58 PM
 #105

Bitcoin's mempool is empty today, now is a good chance to try out coinjoins if you haven't before.

Protect your privacy - Coinjoin with Wasabi Wallet
Code:
https://coinjoin.kruw.io/
rando2939
Newbie
*
Offline Offline

Activity: 6
Merit: 0


View Profile
March 01, 2025, 10:40:20 PM
Last edit: March 02, 2025, 08:13:36 PM by hilariousandco
 #106

Bitcoin's mempool is empty today, now is a good chance to try out coinjoins if you haven't before.

Thanks for all that you do Kruw.

I'm curious to know what is the best way to coinjoin my dollar cost averaging UTXOs?

I have about 0.15BTC now in UTXOs after a few years of averaging.
But they are all from Coinbase.

They are of varying sizes.

What is the most private way to coinjoin them? Do I send them all at once to Wasabi wallet? Then transfer it to cold storage from there?

And what if I only want UTXOs that are larger than 0.02 in my cold storage?

Thanks!

Bitcoin's mempool is empty today, now is a good chance to try out coinjoins if you haven't before.

one more question. I just watched BTC Sessions video about using the wallet.

How do we avoid small UTXOs?
PrivacyG
Legendary
*
Offline Offline

Activity: 1428
Merit: 2357


Fight for Privacy.


View Profile
March 02, 2025, 12:56:58 AM
 #107

What is the most private way to coinjoin them? Do I send them all at once to Wasabi wallet?
You mentioned they are coming from Coinbase.  Who cares how you are directing these funds to your Wasabi wallet?  Coinbase can easily and instantly trace your transaction to Wasabi, whether it is in one single transaction or each UTXO separated.

If I was in your shoes, I would first consolidate these UTXOs and bounce them every few days at a random time during the day from an address to another.  I am suggesting this only because Coinbase most likely traces what happens with your wallet and maybe they will become suspect of you if they see your coins were Coin Joined.

By bouncing from an address to another, the chances they suspect you become less because at that point they look as if they 'traveled' from wallet to wallet, as in to them it looks like different people may have handled the coins before the actual Coin Join.

Then transfer it to cold storage from there?
A quick heads up.  I suggest having an entirely separate cold wallet for Coin Joined Bitcoin.  It is enough to mix a Coin Joined UTXO with a non Coin Joined UTXO only ONCE and a lot of your history will be revealed, rendering all the previous efforts of Coin Joins useless and ultimately a waste of time and money.

Keep in mind one thing.  Even if you perfectly label all addresses and own both Coin Joined and non Coin Joined Bitcoin in the same wallet, one day you may spend your Coin Joined Bitcoin and not realize in time that you are paying the fees for that transaction using one of your non Coin Joined UTXOs.  So once again I suggest, separate your Coin Joined wallet from the rest.

 
 b1exch.io 
  ETH      DAI   
  BTC      LTC   
  USDT     XMR    
.███████████▄▀▄▀
█████████▄█▄▀
███████████
███████▄█▀
█▀█
▄▄▀░░██▄▄
▄▀██▄▀█████▄
██▄▀░▄██████
███████░█████
█░████░█████████
█░█░█░████░█████
█░█░█░██░█████
▀▀▀▄█▄████▀▀▀
ABCbits
Legendary
*
Offline Offline

Activity: 3514
Merit: 9768



View Profile
March 02, 2025, 08:44:09 AM
 #108

I'm curious to know what is the best way to coinjoin my dollar cost averaging UTXOs?

I have about [snip] BTC now in UTXOs after a few years of averaging.
But they are all from Coinbase.

They are of varying sizes.

First of all, i recommend you not to disclose amount of Bitcoin you have since it could attract hacker and scammer.

While i mostly agree with @PrivacyG, be careful you may lose a bit of privacy if your UTXOs belong on multiple address with different usage. If you're willing to pay more TX fee, you may want to consider consolidate on few TX. For example, consolidate from multiple address with same/similar usage.

And what if I only want UTXOs that are larger than 0.02 in my cold storage?

After re-searching Wasabi docs, such exist doesn't seem to exist. And it seems you still can't manually choose UTXO used to perform CoinJoin either. So you need want to monitor CoinJoin process and stop it manually when it start creating UTXO with balance lower than you desire, but CMIIW.

███████████████████████████
███████▄████████████▄██████
████████▄████████▄████████
███▀█████▀▄███▄▀█████▀███
█████▀█▀▄██▀▀▀██▄▀█▀█████
███████▄███████████▄███████
███████████████████████████
███████▀███████████▀███████
████▄██▄▀██▄▄▄██▀▄██▄████
████▄████▄▀███▀▄████▄████
██▄███▀▀█▀██████▀█▀███▄███
██▀█▀████████████████▀█▀███
███████████████████████████
.
.Duelbits PREDICT..
█████████████████████████
█████████████████████████
███████████▀▀░░░░▀▀██████
██████████░░▄████▄░░████
█████████░░████████░░████
█████████░░████████░░████
█████████▄▀██████▀▄████
████████▀▀░░░▀▀▀▀░░▄█████
██████▀░░░░██▄▄▄▄████████
████▀░░░░▄███████████████
█████▄▄█████████████████
█████████████████████████
█████████████████████████
.
.WHERE EVERYTHING IS A MARKET..
█████
██
██







██
██
██████
Will Bitcoin hit $200,000
before January 1st 2027?

    No @1.15         Yes @6.00    
█████
██
██







██
██
██████

  CHECK MORE > 
SagittariusV
Newbie
*
Offline Offline

Activity: 11
Merit: 1


View Profile
March 02, 2025, 11:10:01 AM
 #109

By the way, really, according to what algorithm and on whose side (coordinator or user) are the output amounts formed? If the amounts are formed on the user side, then how does it happen that different users have the same outputs for non-standard amounts? If suddenly someone has already been interested in this question, maybe there is a link to GitHub to the right place in the code?

Bitcoin's mempool is empty today, now is a good chance to try out coinjoins if you haven't before.

Kruw (OP)
Full Member
***
Offline Offline

Activity: 1022
Merit: 233


Use Bitcoin anonymously - wasabiwallet.io


View Profile WWW
March 02, 2025, 01:17:08 PM
Last edit: March 02, 2025, 01:47:02 PM by Kruw
 #110

I'm curious to know what is the best way to coinjoin my dollar cost averaging UTXOs? I have about 0.15BTC now in UTXOs after a few years of averaging. But they are all from Coinbase. They are of varying sizes. What is the most private way to coinjoin them? Do I send them all at once to Wasabi wallet? Then transfer it to cold storage from there?

Coinbase already knows how much BTC you have and which addresses those coins are in, so if you send all your coins at once, no new information is revealed to them. If you wanted to add privacy from the perspective of others watching the blockchain besides Coinbase, you could gradually send your UTXOs one at a time and do 1-2 coinjoin rounds in between deposits.

And what if I only want UTXOs that are larger than 0.02 in my cold storage?

You can send specific sized amounts in a coinjoin using Wasabi's RPC interface - https://docs.wasabiwallet.io/using-wasabi/RPC.html#payincoinjoin

How do we avoid small UTXOs?

The creation of small UTXOs from coinjoins allows you to avoid creating change outputs from coinjoins. These small UTXOs won't continue to be split and pile up over time though, small UTXOs will get consolidated back into bigger UTXOs as you continue to coinjoin.

By the way, really, according to what algorithm and on whose side (coordinator or user) are the output amounts formed?

With Joinmarket, the coordinator is the taker and they choose the output amounts. Makers can still set their own personal minimums and ignore takers offering small coinjoins.

With WabiSabi, users choose their own output amounts. Coordinators can set their own minimums and maximums (at the start of the round).

If the amounts are formed on the user side, then how does it happen that different users have the same outputs for non-standard amounts? If suddenly someone has already been interested in this question, maybe there is a link to GitHub to the right place in the code?

Yes, getting clients to match amounts with each other (despite not ever communicating directly with each other) is the main research problem that had to be solved for WabiSabi to be an effective coinjoin method. Here is the description of the solution from the mailing list post:

Quote from: Max Hillebrand
## Output Selection

The coordinator collects all input registrations, and forwards them to all users. At this point, all clients knows all inputs of this transaction. The goal now is to get a Schelling point among users of
which output denominations to choose, so that the anonset size of each denomination is sufficiently large.

First of all, it's a good idea to limit the denominations that the client will register. Some simulations confirmed that low Hemming weight numbers are efficient, thus clients generate a list of standard
denominations which are: powers of two; powers of three; two times powers of three; powers of ten; two times powers of ten; and five times powers of ten. However, remove some of those denominations which are very close to each other, more so for larger values. Notice that this list of standard denominations is the same across all rounds, it does not depend on specific inputs.

We can further decrease the list of potential denominations that the client chooses, but specifically for every round. This is a further Schelling point of which denominations the client prefers to choose.
This is done with a deterministic frequency table, based on the inputs of the proposed transaction.

Take each input and greedily decompose it into the standard denominations, meaning every input has precisely one decomposition. [45 decomposes greedily into 32+10+3] Count the occurrences of every standard denomination into a frequency table. All those standard denominations, which have a count of 2 or larger, are considered likely denominations.

Notice that currently we remove the largest input from this frequency table calculation. This is so that the whale does not mix alone by himself. Also notice that individual inputs, and not input sums are
decomposed. This is because we found that generating the frequency table based on only one input leads to a more accurate Schelling point, which increases anonset count of the finally chosen denominations. Finally, notice that we only calculate one single decomposition for each input, the greedy one, but we could also calculate multiple different [or all possible] decompositions for each input, thus generate a larger frequency table and more likely denominations.

Whereas the frequency table should be deterministic as a Schelling point, the actual user's input sum must not be deterministically decomposed, otherwise an adversary who knows the input sum would find out which denominations the client chose. [but not which of the equal outputs he got]

The client takes his input sum [minus fees] and brute-force decomposes into all possible groups of the likely denominations [those with high count in this rounds' frequency table]. We found that in most cases, even with this reduced list of likely denominations, any input sum can be decomposed into up to eight outputs. [Sometimes the wealthiest user gets a non-standard change amount] However, each decomposition has some small amount of sats left over, which is is not put into an output value, but instead pays miner fees.

Sort this list of all possible output groups ascending by leftover amount, and remove those groups which have a leftover amount 1.3x larger than the best option. Further, remove a group if it has a similar largest denomination as another one. [So far everything deterministic, given all coinjoin inputs and the users' input sum]

Out of this shorter list of output amount groups, shuffle and pick randomly one of them. These are non-deterministic denominations which will be registered for the actual coinjoin outputs. If there were no shuffle, but a selection of the amount group with the lowest loss, users would save sats. But arguably having this randomness here increases privacy sufficiently to justify the slight increase in leftover amount cost.

Again, while choosing their own outputs, clients do not know which outputs other clients registered. If the client would have this information, it could possibly increase the quality of it's own output
registration substantially.

Notice there is a different decomposition strategies for the frequency table [greedy] and the input sum [brute-force all]. Maybe, having the same decomposition strategy here would lead to better results.

Notice further that there is no rank ordering of the possible denominations based on some ambiguity score or entropy score. Rather, the choice is random, and in some cases, this might result in not
optimal outcomes.

Here are some results of our simulation of the current algorithm:

50 inputs 15 users

Median output count:    98
Median change count:    4
Median change percent:  3.2
Median out anonsets:    3.5
Median leftovers:       481

300 inputs 70 users

Median output count:    442
Median change count:    0.5
Median change percent:  0.3
Median out anonsets:    9.6
Median leftovers:       394


Thank you for your consideration to review!

Skol
Max

Protect your privacy - Coinjoin with Wasabi Wallet
Code:
https://coinjoin.kruw.io/
rando2939
Newbie
*
Offline Offline

Activity: 6
Merit: 0


View Profile
March 02, 2025, 04:41:18 PM
 #111


You can send specific sized amounts in a coinjoin using Wasabi's RPC interface - https://docs.wasabiwallet.io/using-wasabi/RPC.html#payincoinjoin

The creation of small UTXOs from coinjoins allows you to avoid creating change outputs from coinjoins. These small UTXOs won't continue to be split and pile up over time though, small UTXOs will get consolidated back into bigger UTXOs as you continue to coinjoin.

With WabiSabi, users choose their own output amounts. Coordinators can set their own minimums and maximums (at the start of the round).


Thanks for your help.

So if I have some UTXOs from Coinbase and some from Kraken I should not combine these?

I have 0.15BTC right now and I'm not going to accumulate anymore. Most are from coinbase, but I have some from kraken, and P2P as well (not a lot)

How to I combine my UTXOs into one without someone being able to see that it is all connected to me?

Kruw (OP)
Full Member
***
Offline Offline

Activity: 1022
Merit: 233


Use Bitcoin anonymously - wasabiwallet.io


View Profile WWW
March 03, 2025, 01:08:59 AM
Last edit: March 03, 2025, 01:30:21 AM by Kruw
 #112

I have 0.15BTC right now and I'm not going to accumulate anymore. Most are from coinbase, but I have some from kraken, and P2P as well (not a lot). How to I combine my UTXOs into one without someone being able to see that it is all connected to me?

The act of combining UTXOs is what connects all of these transactions together. So, if your current wallet software allows you to select the specific UTXOs for your transaction, you can send them to your coinjoin wallet one at a time, or send in groups (Coinbase group, Kraken group, P2P group).

Protect your privacy - Coinjoin with Wasabi Wallet
Code:
https://coinjoin.kruw.io/
rando2939
Newbie
*
Offline Offline

Activity: 6
Merit: 0


View Profile
March 03, 2025, 02:48:49 AM
 #113

I have 0.15BTC right now and I'm not going to accumulate anymore. Most are from coinbase, but I have some from kraken, and P2P as well (not a lot). How to I combine my UTXOs into one without someone being able to see that it is all connected to me?

The act of combining UTXOs is what connects all of these transactions together. So, if your current wallet software allows you to select the specific UTXOs for your transaction, you can send them to your coinjoin wallet one at a time, or send in groups (Coinbase group, Kraken group, P2P group).

Great that makes sense.

Post coin join can I consolidate them?
Kruw (OP)
Full Member
***
Offline Offline

Activity: 1022
Merit: 233


Use Bitcoin anonymously - wasabiwallet.io


View Profile WWW
March 03, 2025, 04:44:06 PM
 #114

Post coin join can I consolidate them?

Yes, consolidating coinjoined outputs is generally ok if the amount is small and you've remixed a couple of times.

Protect your privacy - Coinjoin with Wasabi Wallet
Code:
https://coinjoin.kruw.io/
Kruw (OP)
Full Member
***
Offline Offline

Activity: 1022
Merit: 233


Use Bitcoin anonymously - wasabiwallet.io


View Profile WWW
March 31, 2025, 12:54:30 PM
 #115

Private Pond by Kukks is "the most advanced payjoin system" - https://njump.me/naddr1qvzqqqr4gupzqg42s9gsae3lu2cketskuzfp778fh2vg9c5x3elx8ttdpzhfkk25qq2nv5nzddgxxdjtd4u9vwrdv939vmnswfzk6j85dxk

Protect your privacy - Coinjoin with Wasabi Wallet
Code:
https://coinjoin.kruw.io/
Wind_FURY
Legendary
*
Offline Offline

Activity: 3556
Merit: 2145



View Profile
April 20, 2025, 02:53:15 PM
 #116

Playing Devil's Advocate.

If CoinJoin transactions can't be traced, then why would some exchanges claim to block user deposits if they were "tainted" through CoinJoin? Plus why would some coordinators use the service of blockchain analytics to filter unwanted outputs from passing through their coordinators?

Are exchanges merely misleading their users?
Is filtering merely a way to show the exchanges that they should not worry?

██████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
██████████████████████
.SHUFFLE.COM..███████████████████████
███████████████████████
███████████████████████
███████████████████████
███████████████████████
█████████████████████
████████████████████
██████████████████████
████████████████████
██████████████████████
███████████████████████
███████████████████████
███████████████████████
███████████████████████
███████████████████████
███████████████████████
██████████████████████
██████████████████████
██████████████████████
███████████████████████
███████████████████████
███████████████████████
███████████████████████
███████████████████████
███████████████████████
███████████████████████
.
...Next Generation Crypto Casino...
ABCbits
Legendary
*
Offline Offline

Activity: 3514
Merit: 9768



View Profile
April 21, 2025, 09:13:27 AM
 #117

Playing Devil's Advocate.

If CoinJoin transactions can't be traced, then why would some exchanges claim to block user deposits if they were "tainted" through CoinJoin?

By can't be traced, usually it means you can't link between input and output of the CoinJoin TX. But it's not difficult to know whether certain coin comes from CoinJoin, where some exchange simply blacklist all coin from CoinJoin.

███████████████████████████
███████▄████████████▄██████
████████▄████████▄████████
███▀█████▀▄███▄▀█████▀███
█████▀█▀▄██▀▀▀██▄▀█▀█████
███████▄███████████▄███████
███████████████████████████
███████▀███████████▀███████
████▄██▄▀██▄▄▄██▀▄██▄████
████▄████▄▀███▀▄████▄████
██▄███▀▀█▀██████▀█▀███▄███
██▀█▀████████████████▀█▀███
███████████████████████████
.
.Duelbits PREDICT..
█████████████████████████
█████████████████████████
███████████▀▀░░░░▀▀██████
██████████░░▄████▄░░████
█████████░░████████░░████
█████████░░████████░░████
█████████▄▀██████▀▄████
████████▀▀░░░▀▀▀▀░░▄█████
██████▀░░░░██▄▄▄▄████████
████▀░░░░▄███████████████
█████▄▄█████████████████
█████████████████████████
█████████████████████████
.
.WHERE EVERYTHING IS A MARKET..
█████
██
██







██
██
██████
Will Bitcoin hit $200,000
before January 1st 2027?

    No @1.15         Yes @6.00    
█████
██
██







██
██
██████

  CHECK MORE > 
Wind_FURY
Legendary
*
Offline Offline

Activity: 3556
Merit: 2145



View Profile
May 02, 2025, 02:53:34 PM
 #118

Playing Devil's Advocate.

If CoinJoin transactions can't be traced, then why would some exchanges claim to block user deposits if they were "tainted" through CoinJoin?


By can't be traced, usually it means you can't link between input and output of the CoinJoin TX. But it's not difficult to know whether certain coin comes from CoinJoin, where some exchange simply blacklist all coin from CoinJoin.


That's probably where the Lightning Network should actually be very useful. It will add another layer of untraceablity on top of untraceability.

Lightning as a sort of "privacy tool" could increase demand for routing channels, and with that increased demand, give a reason for higher fees, making it more sustainable to run a node in the system?

██████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
██████████████████████
.SHUFFLE.COM..███████████████████████
███████████████████████
███████████████████████
███████████████████████
███████████████████████
█████████████████████
████████████████████
██████████████████████
████████████████████
██████████████████████
███████████████████████
███████████████████████
███████████████████████
███████████████████████
███████████████████████
███████████████████████
██████████████████████
██████████████████████
██████████████████████
███████████████████████
███████████████████████
███████████████████████
███████████████████████
███████████████████████
███████████████████████
███████████████████████
.
...Next Generation Crypto Casino...
Kruw (OP)
Full Member
***
Offline Offline

Activity: 1022
Merit: 233


Use Bitcoin anonymously - wasabiwallet.io


View Profile WWW
October 16, 2025, 05:27:57 AM
 #119

I traced noosphere888's "fake coinjoin" transaction 7d64210cb1fe4470be5b833c93bcfc10ff5661aee4bcf3ec03a111136da3b344 - https://x.com/noosphere888x2/status/1977803822484599243

Here are his linked addresses that were discovered using blockchain analysis:

bc1qj596ng4fn3yt854wky6r2ku44nd9dx3yz55kwc and bc1qat79napu8x8hrmnpemel95qxcjpwxmcqmqzw5v are change outputs that are *supposed* to belong to 2 different users. bc1qu8czxlnppvzvwgruty65e3gz6zra9hzez6mvcj and bc1qlgehzc63s9ewpfu0kasfyv7ypyp6uhmcu80cxs are *supposed* to be "mixed" outputs. However, all spent outputs converge, proving they belong to the same entity (which also reveals the third output as the payment address by process of elimination).

The 1st output and 4th output were immediately deanonymized by consolidating together in this Whirlpool tx0: 5eca1912471b6d4b1c64806d687f767a33ecbd0689ec6390287e15115c6676d8. The 2nd output was spent in this payment: 9b4e1fecf8cd5627f1367f17dfb9e35c43d34de148cbdb923ea3ee5385cbfaf1.

The change output from that payment landed in address bc1q4wflthuhlss7p2a5kwxkf7ym0wft5r6a4mkqt8 and was recycled into premix wallet address bc1qgwea4xq84t7pqhdl4rh38wcducymu5d2r30rk0

Haven't we seen this address already?... Yes! bc1qgwea4xq84t7pqhdl4rh38wcducymu5d2r30rk0 is an input to 5eca1912471b6d4b1c64806d687f767a33ecbd0689ec6390287e15115c6676d8, which is the same transaction the other 2 inputs were already consolidated in.

@noosphere888x2 didn't protect his privacy at all with his fake coinjoin, all he did was waste an additional ~16k sats in mining fees.

Protect your privacy - Coinjoin with Wasabi Wallet
Code:
https://coinjoin.kruw.io/
Eclipse01
Jr. Member
*
Offline Offline

Activity: 66
Merit: 2


View Profile
October 18, 2025, 09:40:37 PM
 #120

I don't know what ur getting at, but every Blockchain transactions can be traced

Bitcoin: A P2P Electronic Cash System
Pages: « 1 2 3 4 5 [6] 7 »  All
  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!