Bitcoin Forum
June 15, 2024, 11:07:56 AM *
News: Voting for pizza day contest
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Would it be possible to develop crypto address validation technology?  (Read 247 times)
jdn_ldn (OP)
Newbie
*
Offline Offline

Activity: 26
Merit: 7


View Profile
August 26, 2020, 02:03:02 AM
Last edit: August 26, 2020, 01:41:52 PM by jdn_ldn
Merited by ranochigo (2), vapourminer (1), bL4nkcode (1)
 #1

A little while ago I was very tired, multi-tasking and finally made the dreaded mistake of sending some USDT to a BTC address. Fortunately it was only a small amount and the exchange was able to retrieve it, but it got me thinking...

Would it be possible to develop some kind of address validation technology that runs a check and doesn't physically allow you to send crypto to a different coin address?

Coinbase Pro have attempted to implement something like this https://i.imgur.com/HD2l9jI.png but after running a test it still seems to give the green light for a PAXG deposit address when sending USDC. I imagine this is because they're both ERC20 tokens.

I messaged another exchange and they said it would be hard to implement because many coins don't have coin specific addresses.

I feel like this is such an essential thing to have in the crypto space if it's to ever have a serious chance at mass adoption. The fact that this easy mistake can be so calamitous and with no customer support because... well its crypto, seems like a fundamental flaw.

I've been sending crypto around for 6 years and I'm still just triple checking the first and last 4 characters of an address. Then until it's shows up at the deposit end I still have a slight fear that I might've made a mistake, as I'm sure many can relate.

Surely in this day and age of the crypto scene it is nonsensical that something as basic as sending crypto is still subject to manual checks and easy irreversible human error.

Is it possible to develop something like this or is there an existing technology I don't know about?
ranochigo
Legendary
*
Offline Offline

Activity: 2982
Merit: 4193



View Profile
August 26, 2020, 03:27:16 AM
Merited by vapourminer (1)
 #2

This is unfortunately very difficult to achieve. Addresses do have checksums to check for errors with the mis-spelling of the letters.

It's not possible for wallets to be able to check whether the intention is to send to a USDT address or a Bitcoin address. USDT runs on top of Bitcoin which means that unless they shift away from using a second layer network that utilises specifically on Bitcoin, it's not possible for them to change the address format.

It's fairly common for this to happen and unfortunately there's no viable solution. It's not possible for the wallet client to identify which coin you're intending to send because both would be sending to the same address.

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
pooya87
Legendary
*
Offline Offline

Activity: 3486
Merit: 10643



View Profile
August 26, 2020, 04:14:48 AM
 #3

I feel like this is such an essential thing to have in the crypto space if it's to ever have a serious chance at mass adoption. The fact that this easy mistake can be so calamitous and with no customer support because... well its crypto, seems like a fundamental flaw.

i don't think so.
you see any coin that has a similar address as another one obviously had lazy developers who didn't care or even know about how to change a single line of code to produce a different looking address that is invalid by the wallet of the coin they are copying. so by definition that is a shitcoin and is useless. consequently it doesn't have any adoption let alone want to enter mass adoption.

there are exceptions like tether that don't have a network of their own and rely on bitcoin network. when you send tether you are actually sending them on bitcoin blockchain and to a bitcoin address so it makes sense that the address is the same.

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
TravelMug
Hero Member
*****
Offline Offline

Activity: 2674
Merit: 854



View Profile
August 26, 2020, 04:34:09 AM
Merited by vapourminer (1)
 #4

I remember this project, https://github.com/Swyftx/crypto-address-validator

It seems that it was being updated, but I can't vouch for it as I haven't try or used it.

API

Quote
validate (address [, currency = 'bitcoin'[, networkType = 'prod' [, addressType = ['all']]])
Parameters

    address - Wallet address to validate.
    currency - Optional. Currency name or symbol, e.g. 'bitcoin' (default), 'litecoin' or 'LTC'
    networkType - Optional. Use 'prod' (default) to enforce standard address, 'testnet' to enforce testnet address and 'both' to enforce nothing.
    addressType - Optional. Specifies what version of the address should be validated. Defaults to 'legacy', but can be changed on a per asset basis.

    Returns true if the address (string) is a valid wallet address for the crypto currency specified, see below for supported currencies.

R


▀▀▀▀▀▀▀██████▄▄
████████████████
▀▀▀▀█████▀▀▀█████
████████▌███▐████
▄▄▄▄█████▄▄▄█████
████████████████
▄▄▄▄▄▄▄██████▀▀
LLBIT
  CRYPTO   
FUTURES
 1,000x 
LEVERAGE
COMPETITIVE
    FEES    
 INSTANT 
EXECUTION
.
   TRADE NOW   
Charles-Tim
Legendary
*
Offline Offline

Activity: 1582
Merit: 4954


Leading Crypto Sports Betting & Casino Platform


View Profile
August 26, 2020, 04:49:04 AM
 #5

there are exceptions like tether that don't have a network of their own and rely on bitcoin network. when you send tether you are actually sending them on bitcoin blockchain and to a bitcoin address so it makes sense that the address is the same.
It makes good sense if you control the private key, normally this is not an issue while using wallet because people can decide to use noncustodial wallets but I still see it to be an issue while using exchanges that your private key is managed by the exchange. Also, many people are novice and make the mistake in a way they may not get the tether back by sending to an address they do not have its private keys.

I think something can be done, in a way to invalidate tether omini addresses while mistaken for bitcoin addresses. All I think will be needed is a little more of programming and testing.

If we remember the litecoin nested segwit addresses that started with 3, people also mistaken it with bitcoin 3-prefix addtesses, and have resulted to many bitcoin been trapped and lost, but litecoin developers was able to create the M-ptefix version of the address with the same private key as the 3-prefix litecoin addresses. That aside, also the address is not valid while mistaken for bitcoin address (although, I read this, not yet in my practical).

I am not certain, but I think there is something developers can do to make this work. Although, I used litecoin as an example, but not a perfect example though as it has it own separate blockchain, but when not yet implemented, it can make people think such may not be possible.


..Stake.com..   ▄████████████████████████████████████▄
   ██ ▄▄▄▄▄▄▄▄▄▄            ▄▄▄▄▄▄▄▄▄▄ ██  ▄████▄
   ██ ▀▀▀▀▀▀▀▀▀▀ ██████████ ▀▀▀▀▀▀▀▀▀▀ ██  ██████
   ██ ██████████ ██      ██ ██████████ ██   ▀██▀
   ██ ██      ██ ██████  ██ ██      ██ ██    ██
   ██ ██████  ██ █████  ███ ██████  ██ ████▄ ██
   ██ █████  ███ ████  ████ █████  ███ ████████
   ██ ████  ████ ██████████ ████  ████ ████▀
   ██ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██
   ██            ▀▀▀▀▀▀▀▀▀▀            ██ 
   ▀█████████▀ ▄████████████▄ ▀█████████▀
  ▄▄▄▄▄▄▄▄▄▄▄▄███  ██  ██  ███▄▄▄▄▄▄▄▄▄▄▄▄
 ██████████████████████████████████████████
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█  ▄▀▄             █▀▀█▀▄▄
█  █▀█             █  ▐  ▐▌
█       ▄██▄       █  ▌  █
█     ▄██████▄     █  ▌ ▐▌
█    ██████████    █ ▐  █
█   ▐██████████▌   █ ▐ ▐▌
█    ▀▀██████▀▀    █ ▌ █
█     ▄▄▄██▄▄▄     █ ▌▐▌
█                  █▐ █
█                  █▐▐▌
█                  █▐█
▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀█
▄▄█████████▄▄
▄██▀▀▀▀█████▀▀▀▀██▄
▄█▀       ▐█▌       ▀█▄
██         ▐█▌         ██
████▄     ▄█████▄     ▄████
████████▄███████████▄████████
███▀    █████████████    ▀███
██       ███████████       ██
▀█▄       █████████       ▄█▀
▀█▄    ▄██▀▀▀▀▀▀▀██▄  ▄▄▄█▀
▀███████         ███████▀
▀█████▄       ▄█████▀
▀▀▀███▄▄▄███▀▀▀
..PLAY NOW..
ranochigo
Legendary
*
Offline Offline

Activity: 2982
Merit: 4193



View Profile
August 26, 2020, 04:56:40 AM
 #6

I remember this project, https://github.com/Swyftx/crypto-address-validator

It seems that it was being updated, but I can't vouch for it as I haven't try or used it.

API
It checks for the validity of an address. A valid Bitcoin address is also a valid Omnilayer address.
I think something can be done, in a way to invalidate tether omini addresses while mistaken for bitcoin addresses. All needed is a little more of programming and testing.

If we remember the litecoin nested segwit addresses that started with 3, people also mistake it with bitcoin and has resulyed to many bitcoin been trapped and lost, but litecoin developers was able to create the M-ptefix version of the address with the same private key as the 3-prefix. That aside, also the address is not valid while mistaken for bitcoin address (although, I read this, not yet in my practical).

I am not certain, but I think there is something developers can do to make this work. Although, I used litecoin as an example, but not a perfect example though, but when not yet implemented, it can make people think such many not be possible.
You cannot change the address format of an Omnilayer address. A valid OmniLayer address has to be a Bitcoin address; the transactions are being done on the Bitcoin Blockchain itself. If the address isn't a Bitcoin address, then the transaction wouldn't work.

You cannot compare altcoins with Omni. Alt coins runs on completely different network while an OmniLayer has to piggyback on an existing coin's blockchain.

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
crwth
Copper Member
Legendary
*
Offline Offline

Activity: 2800
Merit: 1268


Try Gunbot for a month go to -> https://gunbot.ph


View Profile WWW
August 26, 2020, 05:05:41 AM
 #7

The fear of sending BTC, especially if it's a significant amount of coin would always loom over your head, knowing that if you sent to the wrong address, you can't get it back easily or lost forever. For the validation part, I don't think it's currently needed. It's the users part of the process and it would be better to do it on your own rather than a program. What exchanges or wallets could do better is to have a last "preview" of the transaction before sending it to the address. I triple check it most of the time to calm my nerves but I think that kind of technology is not a priority right now.

███████████████████████████
███████▄████████████▄██████
████████▄████████▄████████
███▀█████▀▄███▄▀█████▀███
█████▀█▀▄██▀▀▀██▄▀█▀█████
███████▄███████████▄███████
███████████████████████████
███████▀███████████▀███████
████▄██▄▀██▄▄▄██▀▄██▄████
████▄████▄▀███▀▄████▄████
██▄███▀▀█▀██████▀█▀███▄███
██▀█▀████████████████▀█▀███
███████████████████████████
.
.Duelbits.
..........UNLEASH..........
THE ULTIMATE
GAMING EXPERIENCE
DUELBITS
FANTASY
SPORTS
████▄▄█████▄▄
░▄████
███████████▄
▐███
███████████████▄
███
████████████████
███
████████████████▌
███
██████████████████
████████████████▀▀▀
███████████████▌
███████████████▌
████████████████
████████████████
████████████████
████▀▀███████▀▀
.
▬▬
VS
▬▬
████▄▄▄█████▄▄▄
░▄████████████████▄
▐██████████████████▄
████████████████████
████████████████████▌
█████████████████████
███████████████████
███████████████▌
███████████████▌
████████████████
████████████████
████████████████
████▀▀███████▀▀
/// PLAY FOR  FREE  ///
WIN FOR REAL
..PLAY NOW..
pooya87
Legendary
*
Offline Offline

Activity: 3486
Merit: 10643



View Profile
August 26, 2020, 05:09:15 AM
 #8

~
You cannot change the address format of an Omnilayer address. A valid OmniLayer address has to be a Bitcoin address; the transactions are being done on the Bitcoin Blockchain itself. If the address isn't a Bitcoin address, then the transaction wouldn't work.

it makes no sense to do something like this because you are still sending bitcoin on bitcoin blockchain to a bitcoin address but it is not impossible to implement considering the fact that we have 2 separate "wallets", a bitcoin wallet and an omni wallet.
so theoretically tether could introduce a different wallet encoding (or simply a different version byte) so that its addresses are rejected by the "bitcoin wallet" and the bitcoin addresses are rejected by the "omni wallet" while they both decode to the same scriptpub.

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
hatshepsut93
Legendary
*
Offline Offline

Activity: 2996
Merit: 2148


View Profile
August 26, 2020, 07:51:27 AM
 #9

If an address is valid on more than one blockchains, there's nothing you can do to determine the user's intended destination chain. You can only make a list of blockchains that can have shared addresses, and warn the user to double check that they are sending coins to the right place. This can be implemented as an addon for popular wallets or for the browser.
Ucy
Sr. Member
****
Offline Offline

Activity: 2576
Merit: 402


View Profile
August 26, 2020, 10:16:08 AM
 #10

Looks like something a united and organized crypto communities can solve. Projects could be made to have distinct addresses to make identifying them by both humans and softwares easy. Atleast this could be part of good standards that can be demanded from crypto developers. When you are rating a cryptocurrency, you also rate it based on how distinct its address is.  You rate cryptos without distinct addresses poorly in that regard.
bitsurfer2014
Hero Member
*****
Offline Offline

Activity: 924
Merit: 520


View Profile
August 26, 2020, 12:20:10 PM
 #11

The fear of sending BTC, especially if it's a significant amount of coin would always loom over your head, knowing that if you sent to the wrong address, you can't get it back easily or lost forever. For the validation part, I don't think it's currently needed. It's the users part of the process and it would be better to do it on your own rather than a program. What exchanges or wallets could do better is to have a last "preview" of the transaction before sending it to the address. I triple check it most of the time to calm my nerves but I think that kind of technology is not a priority right now.

I agree! Sending crypto to another wallet address is just like sending funds to a bank account number and its the senders obligation to check surely the intended recipient's address to avoid any issues.

At the same time, I also think that most wallet developers could implement some kind of bullet proof mechanism to check the validity of any address that will be used with its corresponding network.
int03h
Full Member
***
Offline Offline

Activity: 532
Merit: 104


View Profile
August 26, 2020, 12:59:11 PM
 #12

I think there will soon be a project to do this. Sending wrong wallet addresses is very common and needs to be resolved. But there will need to be cooperation in the provision of crypto wallet data between projects. Every day, thousands of addresses are created. If all users are using wallet address recognition protocol then sending the wrong address will be handled easily.
bitbunnny
Legendary
*
Offline Offline

Activity: 2912
Merit: 1068


WOLF.BET - Provably Fair Crypto Casino


View Profile
August 26, 2020, 01:06:00 PM
 #13

Probably there are some algorithms that could be used in design of such tool. Many people have this caution and fear every time they sent Bitcoin so I guess something that could verify the address might be of great help. I'm not the expert for this but I guess that there are multiple solutions to solve this, it's only the question if there is such interest.

witcher_sense
Legendary
*
Offline Offline

Activity: 2380
Merit: 4372


🔐BitcoinMessage.Tools🔑


View Profile WWW
August 26, 2020, 01:35:38 PM
 #14

In order to develop such mechanisms of validation, the blockchain technology itself should evolve to such extent where user interfaces and convenience are more important than ensuring the functionality(robustness) of the system. The blockchain must first reach its maturity in technological terms. When technology is mature enough to only care about user experience, it will be a good sign for starting implementing checking and validation. First of all, for validation system to exist and work properly, the number of blockchains should drop significantly. Moreover, they must be easily distinguishable. Only then will it be possible to talk about the introduction of validation mechanisms, that is, recognition mechanisms. But like I said, it is to early to solve that particular problem, because we have many other that need to be solved before go further.

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
bL4nkcode
Copper Member
Legendary
*
Offline Offline

Activity: 2142
Merit: 1305


Limited in number. Limitless in potential.


View Profile
August 26, 2020, 01:54:22 PM
 #15

Thousands of coins worth $$$$ had been lost due this kind of user's mistake at least software/wallet developers build for somewhat user friendly that will help to avoid this if possible.
BrewMaster
Legendary
*
Offline Offline

Activity: 2114
Merit: 1292


There is trouble abrewing


View Profile
August 26, 2020, 02:45:24 PM
 #16

Thousands of coins worth $$$$ had been lost due this kind of user's mistake at least software/wallet developers build for somewhat user friendly that will help to avoid this if possible.

i don't think the numbers are that high because even though mistakes like these happen but they are not common and whenever they happen there is always a simple way to recover the coins specially if the user has access to the private key. and if not the exchanges do recover these coins if the total value of it is high enough.

There is a FOMO brewing...
anu1908
Sr. Member
****
Offline Offline

Activity: 770
Merit: 268


View Profile
August 27, 2020, 05:53:42 AM
 #17

Thousands of coins worth $$$$ had been lost due this kind of user's mistake at least software/wallet developers build for somewhat user friendly that will help to avoid this if possible.
it's more like user mistake and most of the time they're doing it on exchange. if anything needs t be changed then exchange should be able to do it, like adding 5 confirmation before you make a token transactions.

seriously though, it's quite easy to double check whether you're sending to the right address or not, even though it's using the same address format. just open 2 window, one for your withdrawal, one for your deposit address and the token name.
AakZaki
Legendary
*
Offline Offline

Activity: 2338
Merit: 1076


zknodes.org


View Profile WWW
August 27, 2020, 09:29:12 PM
 #18

The fear of sending BTC, especially if it's a significant amount of coin would always loom over your head, knowing that if you sent to the wrong address, you can't get it back easily or lost forever. For the validation part, I don't think it's currently needed. It's the users part of the process and it would be better to do it on your own rather than a program. What exchanges or wallets could do better is to have a last "preview" of the transaction before sending it to the address. I triple check it most of the time to calm my nerves but I think that kind of technology is not a priority right now.
Manual validation is more relaxing. because if indeed a validation program was developed, manual validation would also be needed just to be sure. The last preview is an attempt to address the correct address, because as you said if the address is wrong BTC will not be able to come back again.
verita1
Member
**
Offline Offline

Activity: 1358
Merit: 81


View Profile
August 27, 2020, 11:14:46 PM
 #19

I have seen that in Binance DEX to send a coin, it allows you to verify your shipment by asking the question if you are sure to send the coin to the address you placed. MetaMask can also detect if an address is correct. But in the error that you mention only the most advisable thing is double check. With so many experiences lived and shared in crypto we must be very careful as a rule of thumb.

Jating
Hero Member
*****
Offline Offline

Activity: 2954
Merit: 822


View Profile
August 27, 2020, 11:31:47 PM
 #20

I have seen that in Binance DEX to send a coin, it allows you to verify your shipment by asking the question if you are sure to send the coin to the address you placed. MetaMask can also detect if an address is correct. But in the error that you mention only the most advisable thing is double check. With so many experiences lived and shared in crypto we must be very careful as a rule of thumb.

Yes, this is good as a first layer of security, but if the user didn't check the address he is sending, then it will defeat the purpose. I would agree that this is really essential thing, but it seems very difficult to implement as well.

I would say that each and everyone of us really need to do due diligence and be very careful as this kind of mistakes is irreversible and very costly.
Pages: [1] 2 »  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!