pub trait Verifiable {
// Required methods
fn validate(&self) -> Result<(), AuthError>;
fn id(&self) -> CredentialId;
fn info(&self) -> CredentialInfo;
fn message(&self) -> Binary;
// Provided methods
fn human_id(&self) -> String { ... }
fn message_digest(&self) -> Result<Vec<u8>, AuthError> { ... }
fn is_cosmos_derivable(&self) -> bool { ... }
}