I assume the protocol is similar at a high level to Bitcoin:
Generate private key from entropy
Use ECDSA to make a public key
Do some hashing to generate an address (inc checksums etc.)
What are the specific steps at the lower level, for example if we were to code an address generator outside of a wallet, what functions would we need?