7 releases
new 0.1.31 | Feb 19, 2025 |
---|---|
0.1.22 | Feb 14, 2025 |
#250 in Cryptography
707 downloads per month
1MB
20K
SLoC
Dfns SDK Rust
Modular, extensible, and easy-to-use Rust SDK for the Dfns API.
Warning: This SDK is currently under development and not ready for production use. The API is subject to change. This SDK is missing tests, but we are working on it. Please feel free to contribute.
Installation
cargo add dfns-sdk-rs
Examples
Check out the list of all examples in this repository.
Wallets
- List Wallets - Demonstrates how to retrieve a list of wallets
- Create Wallet - Shows how to create a new wallet
- Get Wallet - Retrieves details of a specific wallet
- Update Wallet - Updates wallet information
- Tag Wallet - Adds tags to a wallet
- Untag Wallet - Removes tags from a wallet
- Get Wallet Assets - Lists assets in a wallet
- Get Wallet History - Shows transaction history
- Get Wallet NFTs - Lists NFTs in a wallet
- Transfer Asset - Transfers assets between wallets
- Broadcast Transaction - Broadcasts a transaction
- Generate Signature - Generates a signature
- Get Signature - Retrieves a specific signature
- List Signatures - Lists all signatures
- Get Transaction - Gets transaction details
- List Transactions - Lists all transactions
- Get Transfer - Gets transfer details
- List Transfers - Lists all transfers
- Export Wallet - Exports a wallet
- Import Wallet - Imports a wallet
- Delegate Wallet - Delegates wallet control
Webhooks
- Create Webhook - Creates a new webhook
- Get Webhook - Gets webhook details
- Update Webhook - Updates webhook configuration
- Delete Webhook - Deletes a webhook
- List Webhooks - Lists all webhooks
- Ping Webhook - Tests webhook connectivity
- Get Webhook Event - Gets webhook event details
- List Webhook Events - Lists webhook events
Staking
- Create Stake - Creates a new stake
- Create Stake Action - Creates a stake action
- Get Stake Rewards - Gets stake rewards
- List Stake Actions - Lists stake actions
- List Stakes - Lists all stakes
Signers
- List Signers - Lists all signers in clusters
Policies
- Archive Policy - Archives a policy
- Create Approval Decision - Creates an approval decision
- Create Policy - Creates a new policy
- Get Approval - Gets approval details
- Get Policy - Gets policy details
- List Approvals - Lists all approvals
- List Policies - Lists all policies
- Update Policy - Updates policy configuration
Permissions
- Archive Permission - Archives a permission
- Create Assignment - Creates a permission assignment
- Create Permission - Creates a new permission
- Delete Assignment - Deletes a permission assignment
- Get Permission - Gets permission details
- List Assignments - Lists all assignments
- List Permissions - Lists all permissions
- Update Permission - Updates permission configuration
Networks
- Get Fees - Gets network fees for various blockchains
- Read Contract - Reads data from a smart contract
Exchanges
- Create Deposit - Creates a new deposit
- Create Exchange - Creates a new exchange
- Create Withdrawal - Creates a new withdrawal
- Delete Exchange - Deletes an exchange
- Get Exchange - Gets exchange details
- List Account Assets - Lists assets in an account
- List Accounts - Lists all accounts
- List Asset Withdrawal Networks - Lists withdrawal networks for an asset
- List Exchanges - Lists all exchanges
Authentication
- Activate Application - Activates an application
- Activate Credential - Activates a credential
- Activate Personal Access Token - Activates a personal access token
- Activate Service Account - Activates a service account
- Activate User - Activates a user
- Deactivate Application - Deactivates an application
- Deactivate Credential - Deactivates a credential
- Deactivate Personal Access Token - Deactivates a personal access token
- Deactivate Service Account - Deactivates a service account
- Deactivate User - Deactivates a user
- Archive Application - Archives an application
- Archive Personal Access Token - Archives a personal access token
- Archive Service Account - Archives a service account
- Archive User - Archives a user
- Create Credential Challenge - Creates a credential challenge
- Create Credential Code - Creates a credential code
- Create Credential With Code - Creates a credential using a code
- Create Delegated Recovery Challenge - Creates a delegated recovery challenge
- Create Delegated Registration Challenge - Creates a delegated registration challenge
- Create Login Challenge - Creates a login challenge
- Create Personal Access Token - Creates a personal access token
- Create Recovery Challenge - Creates a recovery challenge
- Create Registration Challenge - Creates a registration challenge
- Create Service Account - Creates a service account
- Create User - Creates a new user
- Create User Action Challenge - Creates a user action challenge
- Create User Action Signature - Creates a user action signature
- Get Application - Gets application details
- Get Personal Access Token - Gets personal access token details
- Get Service Account - Gets service account details
- Get User - Gets user details
- List Applications - Lists all applications
- List Credentials - Lists all credentials
- List Personal Access Tokens - Lists all personal access tokens
- Login - Performs a login
- Recover - Recovers an account
- Recreate Delegated Registration Challenge - Recreates a delegated registration challenge
- Register - Registers a new user
- Register End User - Registers an end user
- Register With Recovery - Registers using recovery
- Update Application - Updates an application
- Update Credential - Updates a credential
- Update Personal Access Token - Updates a personal access token
- Update Service Account - Updates a service account
- Verify Challenge - Verifies a challenge
- Verify Recovery Challenge - Verifies a recovery challenge
- Verify Registration Challenge - Verifies a registration challenge
Usage
Here's a simple example of how to use the SDK:
use dfns_sdk_rs::{
DfnsApiClient, DfnsBaseApiOptions, CredentialSigner,
models::wallets::CreateWalletRequest,
};
use std::sync::Arc;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Initialize your signer (implementation depends on your use case)
let signer = Arc::new(YourCredentialSigner::new());
// Create API client
let client = DfnsApiClient::new(
DfnsBaseApiOptions {
base_url: "https://api.dfns.io".to_string(),
app_id: "ap-2ng9jv-80cfc-983pop0iauf2sv8r".to_string(),
auth_token: "your-auth-token".to_string(),
},
Some(signer),
);
// Create a wallet
let wallet = client
.wallets()
.create_wallet(CreateWalletRequest {
network: "EthereumSepolia".to_string(),
})
.await?;
// Get wallet assets
let assets = client
.wallets()
.get_wallet_assets(wallet.id)
.await?;
println!("Wallet assets: {:?}", assets);
Ok(())
}
The example above demonstrates:
- Creating an API client with authentication
- Creating a new wallet
- Retrieving wallet assets
Documentation
Generating Documentation
To generate the documentation locally, you'll need the nightly Rust toolchain. Here's how to set it up:
# Install and switch to nightly Rust
rustup install nightly
rustup default nightly
# Generate the documentation
RUSTDOCFLAGS="--enable-index-page -Zunstable-options" cargo doc --no-deps --document-private-items --target-dir ./docs
Viewing Documentation
To view the documentation in your browser:
# Start a local server (Python required)
python3 -m http.server 8000 --directory ./docs/doc
Then open http://localhost:8000/dfns_sdk_rs/ in your browser.
For more examples and detailed API documentation, check the documentation section.
Dependencies
~10–23MB
~309K SLoC