Hello!
Technical task (TT) for the development of a platform for integration with the Coinbase API (intermediary platform)
General information
Create a platform to provide users with cryptocurrency trading and storage services through the Coinbase API. The platform will act as an intermediary, providing an interface for working with Coinbase without the need for direct user interaction with Coinbase itself.
Goals and objectives
1. Integration with the Coinbase API for:
• Trading cryptocurrencies (buy/sell).
• Asset storage (deposits and withdrawals).
• Obtaining market data (prices, volumes, orders).
2. Implementation of a user interface for working with the platform:
• User registration and authorization.
• Portfolio management: balances, transaction history.
• Placing orders and tracking their status.
3. Ensuring data and interaction security.
4. Implementation of basic KYC/AML procedures (Know Your Customer / Anti-Money Laundering).
Main functions
1. User interface
1. Registration and authorization:
• Ability to register with email confirmation.
• Authorization using two-factor authentication (2FA).
2. User dashboard:
• Viewing current balance (across all supported cryptocurrencies).
• Transaction history (deposits, withdrawals, orders).
• Information about open orders.
3. Trading interface:
• Selecting a trading pair (e.g., BTC/USD).
• Placing orders (limit, market).
• Viewing market data (charts, order book).
4. Deposits and withdrawals:
• Generating addresses for cryptocurrency deposits.
• Ability to withdraw funds to external wallets.
2. Integration with the Coinbase API
1. API authorization:
• Using OAuth2 for interaction with the Coinbase API.
• Storing user access tokens.
2. Working with wallets:
• Obtaining a list of supported assets and their balances.
• Generating addresses for deposits.
• Initiating fund withdrawals.
3. Working with orders:
• Creating market and limit orders.
• Tracking order status.
• Cancelling active orders.
4. Obtaining market data:
• Current prices for trading pairs.
• Information about liquidity (depth of the order book).
• Historical data for charting.
3. Administrative panel
1. User management:
• Viewing the user list.
• Transaction statistics.
• Blocking/unblocking accounts.
2. Monitoring operations:
• Operation logs (deposits, withdrawals, orders).
• Tools for manual transaction verification.
3. Platform settings:
• Setting fees for trading, deposits/withdrawals.
• Managing supported assets.
Technical requirements
1. Integration with the Coinbase API
• Use official Coinbase libraries for working with the API:
• Coinbase API (main)
• Coinbase Pro API (trading)
• Set up OAuth2 for user authorization.
2. Technology stack
• Backend: Python (Django, Flask) or Node.js.
• Frontend: React.js or Vue.js.
• Database: PostgreSQL or MySQL.
• Hosting: AWS, Google Cloud, or another cloud provider.
• API security:
• All requests via HTTPS.
• Storing keys and tokens in secure storage (e.g., AWS Secrets Manager).
3. Security
• Two-factor authentication (2FA).
• Encryption of user data.
• Regular logs and transaction monitoring to prevent fraud.
4. KYC/AML
• Integration with providers for user verification (e.g., Jumio, Onfido).
• Collection of basic data: passport, address, identity verification.
Development stages
1. Planning (1–2 weeks)
• Defining functionality.
• Developing platform architecture.
2. Backend development (4–6 weeks)
• Implementing integration with the Coinbase API.
• Setting up the database.
• Implementing business logic (deposits, withdrawals, orders).
3. Frontend development (3–5 weeks)
• Creating the user interface.
• Integrating with the backend via REST API.
4. Testing (2–3 weeks)
• Checking API functionality in the Coinbase test environment.
• Testing security and performance.
5. Launch and support (1 week + ongoing)
• Deployment on the server.
• Monitoring and bug fixing.
Documents to be provided
1. Code with comments.
2. API documentation for internal use.
3. Technical documentation for platform deployment.
4. Security and update recommendations.
Developer requirements
• Experience with REST APIs (preferably Coinbase).
• Knowledge of OAuth2 and working with tokens.
• Experience in developing secure financial applications.
• Skills in the chosen technology stack.
Result
A fully operational platform that provides users with an interface for trading and managing assets through integration with the Coinbase API, taking into account all security and usability requirements.