I managed to write a piece of code that generates a bitcoin address and creates a transaction. I would like to make some tests on the testnet but it seems to lack some documentation. So far I figured that we use a different version 0xEF (rather than 0x80) when creating a WIF key, and that we use a net byte of 0x6F (rather than 0x00) when creating a public address from the public key.
What other differences are there? The differences I mentioned above are not sufficient to create a valid public address it appears. Maybe the base58 encoding is different? What about raw transactions?