Beginner Guide
π What You'll Learn
This guide teaches you how to integrate DeFindex API into your application using:
Freighter Wallet for secure wallet connection and transaction signing
DeFindex API for creating yield-generating vault deposits and withdrawals
Vault concepts like dfTokens (vault shares) and investment strategies
π― Prerequisites
Before starting, make sure you have:
Basic knowledge of HTML, CSS, and JavaScript
Freighter Wallet extension installed
An API key from DeFindex (contact team on Discord for access)
A web browser with developer tools
5-10 minutes of focused time
ποΈ Project Structure Overview
Our vault deposit application consists of 6 main parts:
Since this guide is to use the DeFindex API, we'll focus on the core functions that make vault deposits happen.
π§ Core Functions Explained
Function 1: Connect to Wallet π
π What this function does:
Checks if Freighter wallet is available
Requests permission to access the wallet
Stores the wallet address for later use
Updates the UI to show connection status
π¨ Common issues:
User doesn't have Freighter installed β Show installation instructions
User denies permission β Ask them to try again
Function 2: Get Vault Info and Build Deposit Transaction π°
π What this function does:
Validates wallet connection first
Fetches vault information (name, assets, strategies)
Builds a deposit transaction for the specified amount
Prepares the transaction for signing (stores in app state)
Updates the UI to enable the next step
π¨ Common issues:
Wallet not connected β Connect wallet first
API key expired β Contact DeFindex team for new key
Insufficient balance β Make sure wallet has enough XLM
Vault not found β Check vault address and network
Function 3: Sign the Transaction βοΈ
π What this function does:
Validates wallet connection and transaction availability
Calls Freighter to sign the transaction
Stores the signed transaction in app state
Updates UI to enable final step
π¨ Common issues:
User rejects signing β Ask them to try again
Freighter not connected β Check wallet connection
Wrong network β Ensure Freighter is on testnet
Function 4: Send Transaction to Network π
π What this function does:
Validates we have a signed transaction ready
Submits the transaction to the Stellar network via Soroswap API
Shows success message with transaction hash and explorer link
Resets state for potential next transaction
π Complete Workflow Summary
4-Step Process:
π οΈ Key Concepts for Beginners
What is XDR?
XDR (External Data Representation) is how Stellar transactions are encoded:
Unsigned XDR: Transaction ready to be signed
Signed XDR: Transaction with digital signature, ready to submit
What is a Vault?
A vault is a smart contract that:
Holds multiple users' assets
Automatically invests them in yield-generating strategies
Issues dfTokens (vault shares) representing ownership
What are dfTokens?
dfTokens are like receipts for your vault deposit:
Represent your proportional share of the vault
Increase in value as the vault earns yield
Can be redeemed for underlying assets + profits
What are Strategies?
Strategies are investment protocols that:
Generate yield on deposited assets
Examples: Blend Capital lending, liquidity providing
Vaults can use multiple strategies to maximize returns
What is Signing?
Signing a transaction means:
Proving you own the wallet
Authorizing the vault deposit
Making it ready for the network
π¨ Security Best Practices
β
DO:
Use testnet for learning and testing
Keep your API keys secure
Verify transaction details before signing
Start with small amounts
β DON'T:
Put API keys in public code repositories
Sign transactions you don't understand
Use mainnet while learning
Hardcode private keys (never!)
π§ Common Troubleshooting
Problem: "Freighter not found"
Solution: Install Freighter wallet extension
Problem: "403 Forbidden" error
Solution: Check your API key is correct and not expired
Problem: "Insufficient balance"
Solution: Make sure you have enough XLM in your wallet for the deposit
Problem: Transaction fails
Solution: Check you have enough XLM for fees and minimum deposit requirements
π Next Steps
Once you understand this basic example:
Customize the UI with better styling
Add error handling for better user experience
Support multiple vaults with different asset combinations
Add APY tracking to show vault performance
Try withdrawal functionality to redeem your dfTokens
Explore the SDKs from DeFindex
Learn about strategies and how they generate yield
π Additional Resources
DeFindex API Docs: https://api.defindex.io/docs
DeFindex Discord: https://discord.gg/ftPKMPm38f
Freighter Docs: https://freighter.app/docs
Stellar Docs: https://developers.stellar.org
Stellar Expert: https://stellar.expert (blockchain explorer)
DeFindex: https://defindex.io
π‘ Pro Tips
Use browser dev tools to debug API calls
Check the console for error messages
Read API responses to understand what's happening
Last updated