A key tuple (ask, skenc, addrpk) is generated by users who wish to receive payments under this scheme. The viewing key skenc and the payment address addrpk = (apk , pkenc ) are derived from the spending key ask .\

I cannot find a clear explanation of how the viewing key is generated from the spending key and how the transmission key is then generated from the viewing key. Any pointers?

If I understand this correctly, from a lay-person’s point of view;

ask is a large random number generated in a way similar to how one would generate a private key in bitcoin
apk is ask pushed though a hash function - ie not a public key in the bitcoin elliptic curve sense
skenc is apk transformed into a private key format - ie a large number deterministically liked to the hash of ask
pkenc is the public key of skenc - ie the elliptic curve point related to skenc by point multiplication of the generator

Am I on the right track? Can I ask what the (0) and (1) qualifiers are on PRFask for the apk and skenc respectively.

If I understand this correctly, from a lay-person’s point of view;

ask is a large random number generated in a way similar to how one would generate a private key in bitcoin

Yes.

apk is ask pushed though a hash function - ie not a public key in the bitcoin elliptic curve sense

Yes.

skenc is apk transformed into a private key format - ie a large number deterministically liked to the hash of ask

No, a_{pk} is a public part of the address, so sk_{enc} cannot be derived from it. It is derived as a (different) hash of a_{sk}.

(a_{sk} is the spending key, which allows you to spend from an address. sk_{enc} is the viewing key, which allows you to see payments sent to an address. You should be able to derive the viewing key from the spending key but not vice versa.)

pkenc is the public key of skenc - ie the elliptic curve point related to skenc by point multiplication of the generator

Yes.

Am I on the right track? Can I ask what the (0) and (1) qualifiers are on PRFask for the apk and skenc respectively.

Since we use the same function PRF^{addr} to derive both from a_{sk}, we need distinct inputs to make sure that a_{pk} is unrelated to sk_{enc}.