Skip to main content

SecretKey

Struct SecretKey 

Source
pub struct SecretKey { /* private fields */ }
Expand description

Ed25519 or Secp256k1 secret key.

Implementations§

Source§

impl SecretKey

Source

pub fn generate_ed25519() -> Self

Generate a new random Ed25519 key pair.

Source

pub fn ed25519_from_bytes(bytes: [u8; 32]) -> Self

Create an Ed25519 secret key from raw 32 bytes.

Source

pub fn key_type(&self) -> KeyType

Get the key type.

Source

pub fn as_bytes(&self) -> &[u8]

Get the raw key bytes.

Source

pub fn public_key(&self) -> PublicKey

Derive the public key.

Source

pub fn sign(&self, message: &[u8]) -> Signature

Sign a message.

Source

pub fn from_seed_phrase(phrase: impl AsRef<str>) -> Result<Self, SignerError>

Derive an Ed25519 secret key from a BIP-39 seed phrase.

Uses SLIP-10 derivation with the default NEAR HD path (m/44'/397'/0').

§Arguments
  • phrase - BIP-39 mnemonic phrase (12, 15, 18, 21, or 24 words)
§Example
use near_kit::SecretKey;

// Valid BIP-39 mnemonic (all zeros entropy)
let phrase = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about";
let secret_key = SecretKey::from_seed_phrase(phrase).unwrap();
Source

pub fn from_seed_phrase_with_path( phrase: impl AsRef<str>, hd_path: impl AsRef<str>, ) -> Result<Self, SignerError>

Derive an Ed25519 secret key from a BIP-39 seed phrase with custom HD path.

Uses SLIP-10 derivation for Ed25519 keys. Only hardened derivation paths are supported (all path components must use ' suffix).

§Arguments
  • phrase - BIP-39 mnemonic phrase (12, 15, 18, 21, or 24 words)
  • hd_path - BIP-32 derivation path (e.g., "m/44'/397'/0'")
§Example
use near_kit::SecretKey;

let phrase = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about";
let secret_key = SecretKey::from_seed_phrase_with_path(phrase, "m/44'/397'/1'").unwrap();
Source

pub fn from_seed_phrase_with_path_and_passphrase( phrase: impl AsRef<str>, hd_path: impl AsRef<str>, passphrase: Option<&str>, ) -> Result<Self, SignerError>

Derive an Ed25519 secret key from a BIP-39 seed phrase with passphrase.

The passphrase provides additional entropy for seed generation (BIP-39 feature). An empty passphrase is equivalent to no passphrase.

§Arguments
  • phrase - BIP-39 mnemonic phrase
  • hd_path - BIP-32 derivation path
  • passphrase - Optional passphrase for additional entropy
§Example
use near_kit::SecretKey;

let phrase = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about";
let secret_key = SecretKey::from_seed_phrase_with_path_and_passphrase(
    phrase,
    "m/44'/397'/0'",
    Some("my-passphrase")
).unwrap();
Source

pub fn generate_with_seed_phrase() -> Result<(String, Self), SignerError>

Generate a new random seed phrase and derive the corresponding secret key.

Returns both the seed phrase (for backup) and the derived secret key. Uses 12 words by default and the standard NEAR HD path.

§Example
use near_kit::SecretKey;

let (phrase, secret_key) = SecretKey::generate_with_seed_phrase().unwrap();
println!("Backup your seed phrase: {}", phrase);
Source

pub fn generate_with_seed_phrase_words( word_count: usize, ) -> Result<(String, Self), SignerError>

Generate a new random seed phrase with custom word count.

§Arguments
  • word_count - Number of words (12, 15, 18, 21, or 24)
§Example
use near_kit::SecretKey;

let (phrase, secret_key) = SecretKey::generate_with_seed_phrase_words(24).unwrap();
assert_eq!(phrase.split_whitespace().count(), 24);
Source

pub fn generate_with_seed_phrase_custom( word_count: usize, hd_path: impl AsRef<str>, passphrase: Option<&str>, ) -> Result<(String, Self), SignerError>

Generate a new random seed phrase with full customization.

§Arguments
  • word_count - Number of words (12, 15, 18, 21, or 24)
  • hd_path - BIP-32 derivation path
  • passphrase - Optional passphrase for additional entropy

Trait Implementations§

Source§

impl Clone for SecretKey

Source§

fn clone(&self) -> SecretKey

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SecretKey

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for SecretKey

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl FromStr for SecretKey

Source§

type Err = ParseKeyError

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl TryFrom<&str> for SecretKey

Source§

type Error = ParseKeyError

The type returned in the event of a conversion error.
Source§

fn try_from(s: &str) -> Result<Self, Self::Error>

Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T> ToStringFallible for T
where T: Display,

Source§

fn try_to_string(&self) -> Result<String, TryReserveError>

ToString::to_string, but without panic on OOM.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more