fireblocks-sdk 2026.3.27

Rust implementation of the Fireblocks SDK
Documentation
// Fireblocks API
//
// Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain.  - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
//
// The version of the OpenAPI document: 1.8.0
// Contact: developers@fireblocks.com
// Generated by: https://openapi-generator.tech

use {
    crate::models,
    serde::{Deserialize, Serialize},
};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct TravelRuleOwnershipProof {
    /// The type of ownership proof. Example values: - `eip-191`: Ethereum
    /// signature proof - `eip-712`: Ethereum typed data signature proof -
    /// `bip-137`: Bitcoin signature proof - `microtransfer`: Microtransaction
    /// (Satoshi test) - `screenshot`: Uploaded screenshot of the wallet -
    /// `self-declaration`: Checkbox attestation of ownership
    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
    pub r#type: Option<String>,
    /// The cryptographic signature, transaction hash, or other proof depending
    /// on the type. Examples: - For `eip-191`: `0x3dd4a17a...ce4a2bcd1b` - For
    /// `microtransfer`: The transaction hash `H3V8GXBy39Dz...tr3TSTkY=`
    #[serde(rename = "proof", skip_serializing_if = "Option::is_none")]
    pub proof: Option<String>,
    /// A human-readable statement of wallet ownership. Required for signature
    /// proofs and self-declarations. Examples: - `I certify that ETH account
    /// 0x896B...0b9b belongs to me.` - `I hereby declare that the blockchain
    /// address 0xa437bEed902AF9338B7DEB23848e195d85019510 is under my control.`
    #[serde(rename = "attestation", skip_serializing_if = "Option::is_none")]
    pub attestation: Option<String>,
    /// The wallet address being verified. Examples: - For Ethereum:
    /// `0x896B...0b9b` - For Bitcoin: `1442...dxhsQ`
    #[serde(rename = "address", skip_serializing_if = "Option::is_none")]
    pub address: Option<String>,
    /// The wallet provider or method used for verification. Examples: - For
    /// Metamask: `Metamask` - For manual signature: `manual`
    #[serde(rename = "wallet_provider", skip_serializing_if = "Option::is_none")]
    pub wallet_provider: Option<String>,
    /// The URL for the uploaded screenshot (for `screenshot` proof types only). Example: `https://example.com/uploaded_image.png`
    #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
    pub url: Option<String>,
    /// Whether the user confirmed ownership of the wallet (for
    /// `self-declaration` proofs). Example: `true`
    #[serde(rename = "confirmed", skip_serializing_if = "Option::is_none")]
    pub confirmed: Option<bool>,
}

impl TravelRuleOwnershipProof {
    pub fn new() -> TravelRuleOwnershipProof {
        TravelRuleOwnershipProof {
            r#type: None,
            proof: None,
            attestation: None,
            address: None,
            wallet_provider: None,
            url: None,
            confirmed: None,
        }
    }
}