Inspiration
The inspiration for SynTrade Ledger stems directly from the LMA's core mission: enhancing liquidity and efficiency within the multi-trillion dollar loan market. We recognized the critical bottleneck in the secondary market—settlements taking weeks—which is a direct contradiction to modern capital market expectations. We were driven to apply blockchain technology to create a commercially viable, desktop-first solution that transforms an illiquid loan contract into a liquid, verifiable digital asset.
What it does
SynTrade Ledger reimagines the loan lifecycle by tokenizing debt and creating a trustless secondary market layer for it. The platform allows a bank to:
- Tokenize: Convert a signed loan agreement into a non-custodial digital asset pair.
- Manage Risk: Maintain an immutable, real-time health score for the underlying loan via the Soulbound Token (SBT) structure, transparent to potential buyers.
- Trade Instantly: List the asset on a secondary market for immediate liquidity via Fixed-Price Sales.
- Simulate Servicing: The owner can initiate a Claim Interest process, proving the asset generates cash flow.
How we built it
We utilized a modern and robust stack to build the protocol and the user interface:
- Smart Contracts (The Backend): Built using Solidity (v0.8.31) and Foundry. We developed the
LoanNFT(ERC721 for trading) and theLoanFactory(to mint the NFT and the associated risk record). We also deployed a secureLoanMarketplacecontract to handle the listing and buying process. - Frontend (The Desktop Prototype): Built with React/Vite for speed. We integrated Wagmi/Viem for wallet connectivity (MetaMask on Sepolia) and Tailwind CSS for a professional, enterprise-grade UI.
- Data Binding: We used
useReadContractextensively to make the UI reactively update based on the blockchain state (e.g., showing cards only if they exist, showing the correct price if listed).
Challenges we ran into
The complexity of bridging a legacy financial concept to immutable code presented several challenges:
- The SBT/NFT Connection: Ensuring the NFT was transferable but its associated SBT was not required careful Solidity inheritance and custom logic.
- Asynchronous Transactions (The Big One): When selling, a user must first
approve()the Marketplace contract before they canlistLoan(). Managing these two sequential, asynchronous blockchain transactions in React/Wagmi without crashing the UI (the "wait-for-it" logic) required careful state management and the use ofwaitForTransactionReceipt. - Access Control: We ran into issues where the script defaulted to a test address instead of the actual owner address. We solved this by hardcoding the deployment address in the script to guarantee that only the designated owner wallet has the authority to mint new tokens.
Accomplishments that we're proud of
We are most proud of creating a system that integrates three distinct concepts into one coherent product:
- Tokenization for Liquidity.
- SBT for Immutable Risk Visibility.
- A functioning two-step marketplace flow (Approve/List).
The privacy feature in the UI, where asset value is blurred for non-owners, demonstrates a keen awareness of commercial sensitivity in a way a purely technical project might miss.
What we learned
We learned that building on-chain systems requires anticipating real-world operational complexity. Specifically, we learned:
- The absolute necessity of pinning library versions (
wagmiv2 vs v3 issue). - The importance of error handling in asynchronous calls (using
try/catchwithwriteContractAsync) to provide better user feedback than just "stuck on pending." - That a clear, multi-step UI flow is essential to guide non-crypto experts through complex transaction processes.
What's next for SynTrade Ledger
If we had more time, we would implement:
- Servicing Automation: Full integration of the
claimPaymentfunction, allowing the NFT owner to automatically claim accrued interest based on on-chain oracles. - Off-Chain Bidding: Implementing secure off-chain bidding via signed messages (like OpenSea does) for the negotiation phase before a final on-chain execution.
- Metadata Standards: Deploying metadata to IPFS instead of using local simulation data, which would make the token truly interoperable.
Log in or sign up for Devpost to join the conversation.