So if we look here, it shows that libsodium uses three 3 different algorithms for this, which sounds weird to me, cause nothing indicates that anything besides Curve25519 is used in those specific functions (the boxes specifically take private and public keys and nothing indicates there is any key generation for XSalsa20):
https://doc.libsodium.org/public-key_cryptography/authenticated_encryption#algorithm-details
And if we look here, it is stated that the python implementation of this uses only Curve25519:
https://pynacl.readthedocs.io/en/latest/public/#algorithm
What is going on here?