Project Name: NYCryptoAI
Project Description: NYCrypto is an AI-powered wallet that lets users perform blockchain actions through natural conversation, making Web3 as simple as chatting. Built during the Solana AI Hackathon, our MVP transforms complex crypto interactions into intuitive dialogue, paving the way for mainstream adoption.
Project's X/Twitter:
Project's Website: https://y72x7ltasemfjcml.vercel.app
Project's GitHub: https://github.com/Tidus-Wallet/NYCryptoAI
This hackathon submission, titled NYCryptoAI, is an AI-powered wallet designed to simplify blockchain interactions through natural language conversation. The project aims to make cryptocurrency and Web3 more accessible to users by allowing them to perform on-chain tasks using simple human language. The submission includes several key features such as wallet address fetching, balance display, token transfers, and transaction history fetching, among others.
- Wallet Address Fetching: Users can retrieve their wallet addresses.
- Balance Fetching and Display: Users can view their cryptocurrency balances.
- Token Transfers: Users can send tokens to other addresses.
- Token Swaps: Users can swap one token for another.
- Transaction History Fetching: Users can view their transaction history.
- Trending Tokens Information: Users can see which tokens are currently trending.
- Token Prices and Price Change Information: Users can get real-time price updates for tokens.
- Future Features: The project plans to implement generative UI, portfolio breakdowns, lending, borrowing, staking, liquidity position management, and NFT portfolio management.
Score: 7/10
Strengths:
- The codebase appears to be functional, with the main features implemented correctly. The use of hooks and state management is appropriate for a React application.
Weaknesses:
- There are potential issues with error handling in the
ask
function. For instance, if thesolanaPrivateKey
is not provided, the function returns a message but does not halt execution, which could lead to further errors down the line.
Improvement Suggestions:
- Implement early returns or throw errors when critical information like the private key is missing to prevent further execution of the function.
Code Snippet:
if (!solanaPrivateKey) {
return {
text: 'Please provide a Solana private key to continue.',
}
}
This should ideally throw an error or return early to prevent further execution.
Score: 6/10
Strengths:
- The code is generally well-structured, with clear function names and logical flow. The use of TypeScript adds type safety, which aids in understanding the expected data structures.
Weaknesses:
- Some parts of the code could benefit from additional comments or documentation. For example, the
ask
function is quite lengthy and could be broken down into smaller helper functions for better readability.
Improvement Suggestions:
- Add comments to explain complex logic and consider breaking down large functions into smaller, more manageable ones.
Code Snippet:
const result = await generateText({
// model: anthropic('claude-3-5-sonnet-latest'),
model: openai('gpt-4o'),
messages: convertToCoreMessages(messages.slice(-15)),
temperature: 0.4,
system: `You are an AI assistant built by NYCrypto for a crypto wallet...`,
tools,
maxSteps: 10,
})
This section could be clearer with comments explaining the purpose of each parameter.
Score: 5/10
Strengths:
- The code runs without major syntax errors, and the main functionalities seem to work as intended.
Weaknesses:
- There are potential runtime errors that could occur, especially in the
handleSubmit
function where theask
function is called. If the API fails or returns unexpected data, it could lead to unhandled exceptions.
Improvement Suggestions:
- Implement more robust error handling throughout the application, especially in asynchronous functions. Consider using try-catch blocks more extensively to catch and handle errors gracefully.
Code Snippet:
try {
const response = await ask([...messages, userMessage])
} catch (err) {
setError(err instanceof Error ? err : new Error('An error occurred'))
}
While there is some error handling, it could be improved by providing more context to the user about what went wrong.
Score: 8/10
Strengths:
- The submission includes a solid set of features that align well with the project goals. The roadmap for future features is also well-defined, indicating a clear vision for the project's growth.
Weaknesses:
- Some features are still in development and not yet implemented, such as generative UI and portfolio breakdowns. While this is understandable given the hackathon timeframe, it does limit the current usability of the application.
Improvement Suggestions:
- Prioritize the implementation of the most requested features based on user feedback to enhance the application's value.
Final Score: 6.5/10
Overall, NYCryptoAI demonstrates a strong foundation with several key functionalities and a clear vision for future development. However, improvements in error handling, code readability, and feature completeness are necessary to enhance the overall quality of the submission. With some refinements, this project has the potential to be a valuable tool for users looking to navigate the complexities of cryptocurrency and blockchain interactions.