Transforming Telegram into a seamless blockchain hub with our Account Abstraction Magic SDK β making crypto asset management effortless, secure, and gas-free for everyone
- Features
- Screenshots
- Installation
- Usage
- API Endpoints
- Folder Structure
- Technologies Used
- Contributing
- License
- Contact
- πΌ Custodial Wallet: Created and securely stored in Azure Key Vault.
- π Smart Accounts: Auto-creation using ERC-4337 account abstraction.
- β‘οΈ Mint NFTs: Easily mint NFTs with a single tap.
- πΈ No Gas Fees: Gasless transactions facilitated by advanced transaction management.
- π¦ Token and NFT Management: Simple and secure transfers and swaps of tokens and NFTs.
- π View NFTs: NFTs displayed directly in the app wallet.
- π Built-in Token Swap: Powered by Uniswap for seamless token exchanges.
- π² Developer Friendly SDK: Facilitates further integration and development.
-
Clone the repository:
git clone https://github.com/andreykobal/telegram-mini-app-aa.git
-
Navigate to the project directory:
cd telegram-mini-app-aa
-
Install dependencies for the frontend:
npm install
-
Install dependencies for the backend:
cd ../backend npm install
-
Start the backend server:
cd backend npm start
-
Start the frontend application:
cd .. npm start
-
Open your browser and navigate to
http://localhost:3000
- Description: Authenticate a user using Telegram init data.
- Request Body:
{ "initData": "string" }
- Description: Mint a new NFT.
- Request Body:
{ "initData": "string" }
- Description: Transfer an NFT to another address.
- Request Body:
{ "initData": "string", "tokenId": "string", "toAddress": "string" }
- Description: Retrieve NFTs owned by the authenticated user.
- Request Body:
{ "initData": "string" }
- Description: Send ETH to another address.
- Request Body:
{ "initData": "string", "toAddress": "string", "amount": "string" }
- Description: Retrieve balances of the authenticated user's wallet.
- Request Body:
{ "initData": "string" }
- Description: Fetch the swap rate from USDT to USDC.
- Request Body:
{ "amount": "string" }
- Description: Fetch the swap rate from USDC to USDT.
- Request Body:
{ "amount": "string" }
- Description: Fetch the swap rate from USDT to WETH.
- Request Body:
{ "amount": "string" }
- Description: Fetch the swap rate from WETH to USDT.
- Request Body:
{ "amount": "string" }
- Description: Fetch the swap rate from USDC to WETH.
- Request Body:
{ "amount": "string" }
- Description: Fetch the swap rate from WETH to USDC.
- Request Body:
{ "amount": "string" }
- Description: Swap USDT to USDC.
- Request Body:
{ "initData": "string", "amount": "string" }
- Description: Swap USDC to USDT.
- Request Body:
{ "initData": "string", "amount": "string" }
- Description: Swap USDT to WETH.
- Request Body:
{ "initData": "string", "amount": "string" }
- Description: Swap WETH to USDT.
- Request Body:
{ "initData": "string", "amount": "string" }
- Description: Swap USDC to WETH.
- Request Body:
{ "initData": "string", "amount": "string" }
- Description: Swap WETH to USDC.
- Request Body:
{ "initData": "string", "amount": "string" }
- Description: Handle Telegram webhook events.
.
βββ .gitignore
βββ backend
β βββ .gitignore
β βββ index.js
β βββ metadata.json
β βββ models
β β βββ MetadataIndex.js
β β βββ User.js
β βββ nft.js
β βββ package-lock.json
β βββ package.json
β βββ swap.js
β βββ test-swap-copy.js
β βββ test-swap.js
β βββ utils
β β βββ delete-all-users.js
β β βββ delete-user.js
β β βββ get-all-users.js
β βββ webhook.js
β βββ WETH9.json
βββ package-lock.json
βββ package.json
βββ public
β βββ favicon.ico
β βββ index.html
β βββ logo192.png
β βββ logo512.png
β βββ manifest.json
β βββ robots.txt
βββ README.md
βββ src
βββ App.css
βββ App.js
βββ App.test.js
βββ balance.js
βββ Buy.js
βββ client.js
βββ CustomSelect.css
βββ CustomSelect.js
βββ EthToUsdConverter.js
βββ Home.js
βββ icons
βββ index.css
βββ index.js
βββ logo.svg
βββ reportWebVitals.js
βββ setupTests.js
βββ Swap.js
- Frontend: React
- Backend: Node.js, Express
- Database: MongoDB
- Blockchain: Hardhat, Viem, Biconomy, Base
- Hosting: Azure, Vercel
Contributions are welcome! Please read the contributing guidelines first.
This project is licensed under the MIT License - see the LICENSE file for details.