I really like the setup of this library and I believe it works quite well for the creation of a JWT. However I think there's room to improve on the decode/decrypt side of the fence.
Ideally it'd be great to deal with the ClaimCollection or Claim objects, especially for validating each claim is correct. At the minute, there is logic inside of the verify function for some claims. What if this logic sat on the Claim itself and Jwt simply asked the ClaimsCollection to find out if the token claims were correct?