The NLS (or NoiseLingoSocket) framework builds on the Noise Protocol Framework and the NoiseSocket encoding layer to provide a rich set of features for building complex protocols. Protocols based on NLS can negotiate their choice of Noise protocol, PSK, and transport phase options, and can also exchange evidence blobs for their static public keys (e.g. certificates).
See NLS spec for more info