Homearrow-rightCasesarrow-rightICBRICS+

ICBRICS+ Case Study: Crowdinvesting Platform for BRICS Countries

Brief description

Crowdinvesting platform where investments are made in crypto and fiat

Task

Build an investment marketplace with the ability to invest and raise investments within one system

About the project

Launch of a platform where users can both invest in various projects and list their own projects to raise investments under the client’s regulation. The first platform among BRICS countries that allows investments in both crypto and fiat.

Business benefits

VOLUME OF SUCCESSFUL DEALS INCREASED BY 300%
INTERNATIONAL EXPANSION — ATTRACTING INVESTORS VIA FIAT AND CRYPTOCURRENCY
SUCCESSFUL FUNDRAISING INTO A DIRECTION / PROJECT INCREASED BY 40% THANKS TO INTERNATIONAL INVESTORS AND CLEAR PRESENTATION OF REQUIREMENTS
AVERAGE INVESTOR CONTRIBUTION GROWTH DYNAMICS STAYED AT +29% EACH YEAR THANKS TO PROJECT ONBOARDING AND KYB COMPLETION
ICBRICS+

Features

Login with username and password
Secure storage of credentials
Access recovery mechanism
Google Authenticator integration
Generation and binding of one-time codes (TOTP)
Login confirmation with a second factor
Ability to enable 2FA as a mandatory layer at the project level
Ability to activate 2FA on the user’s initiative
2FA status management in the personal account
Minimal data set to create an account
No redundant fields at the primary entry stage
Conditional information request system (date of birth, full name, address, etc.)
Data request when limits are reached or certain products are activated
Use of data for compliance, verification, and access regulation
Ability to configure field mandatory status
Management of data request scenarios depending on user type or product
Default languages: Russian and English
Language switching by the user in the interface
Interface logic separated from the text layer
Adding new languages by extending the translation dictionary
No need to change business logic when connecting a new locale
Logging of all sessions and authorizations: IP address, geolocation, device type, User-Agent, login method
Client type detection: browser (desktop / mobile), mobile app, API client
Device fingerprint — binding a device to the user profile
Automatic detection of new devices and atypical geolocation
Security triggers: login from a new device after password change, atypical IP, multiple failed login attempts, email or phone change
User notification when triggers fire (email / push)
Forced session confirmation or blocking on anomalous patterns
Ability for the user to view active sessions and terminate them
IP and device blacklist — manual and automatic addition
Logging of all API requests bound to user, device, and method
Audit tools for user and administrator actions
Multi-level KYC/AML verification
Checks against sanctions lists and AML risks
Restriction of access to investment functions until verification is complete
Risk profiling — investor questionnaire, knowledge and risk-tolerance testing
Status determination: qualified / unqualified
Source of Funds check — form + upload of supporting documents
Limit increases after SoF check completion
Document upload inside the investor risk consent form
Recording of submitted forms and uploaded documents in the system
Separate verification form for legal entities and project teams
Upload of corporate documents
Check of beneficiaries and company structure
Verification that declared data matches documents
Ability for moderation to request additional data
Status of admission to project listing
Display of balance and available assets
User PNL
Balance movement chart
Statuses of requests and operations
Quick access to all key actions from one interface
Overview of active investment products and current participation
Asset list with detail per asset
Balance in the source currency with automatic conversion to any required currency at the current rate
Total portfolio value
Generation of an individual deposit address
Automatic top-up system
Recording of incoming funds and balance update after confirmation
System for working with own wallets on the platform
Integration of fiat top-up methods
Payment gateway integration
Integration with partner banks, direct fiat inflow channels
Verification of incoming transfers, matching IBAN, sender name, amount
Automatic conversion of fiat to the platform currency on receipt
Support for multiple fiat currencies
Logging of all payment events bound to the user and documents
Creating a withdrawal request
Error control for user typos when entering details
Withdrawal parameter control
Hot wallet system for automatic withdrawal
Duplicate manual withdrawal system on suspicious activity
Suspicious operation control system
Real-time reflection of request status
Asset conversion inside the platform
Rate retrieval from an external source
Liquidity provider integration
Platform fee application, ability to edit the fee
Slippage configuration
Managed model for calculating the final amount
Exchange reflected in transaction history, balances recalculated after the operation
Unified journal: deposits, withdrawals, exchanges, accruals, charges, investment product operations
Filtering by operation type and period
Detail of each transaction
Showcase of investment offers
Sorting by directions, yield, tags
Primary information in the card, including dynamic yield
Ability to interact with a project directly from the marketplace (invest / withdraw)
Standardized listing template: name, description, investment model, target round amount, fundraising parameters
Upload of project, legal, and supporting documentation
Document storage in the project profile, investor access to view
Adding a link to a video hosted on a video platform
Moderation: project is created as a draft and published after admin review
Ability to reject with a comment and return for revision
Number of users, registrations for the period
Deposits and inflow for day / week / month / year
Total system balance
Balance distribution chart
Clickable user table with search and filtering
Viewing profile, KYC/KYB statuses, transactions
User actions: balance change, yield accrual, risk profile change
Logging of each user’s sessions and authorizations
Report on fund movement and balance changes
Table of all projects with statuses, search and filtering
Viewing the project card and all creator documents
Approval or rejection with a comment
Processing withdrawal requests
History of all withdrawals and deposits
Control of incoming transactions, AML checks
Yield accrual by investment directions
Yield accrual for specific users, repayment of investment principal
Hot / cold wallet system
Duplicate manual system after suspicious activity
Setting fees for operations
Managing the list of currencies
Configuring rate sources
Managing asset availability
Table of high-risk users
Display of document review status, search and filtering
Viewing the investor questionnaire and uploaded files
Approval or rejection of documents with a comment, saving decision history
Automatic risk level assignment by built-in triggers
Manual risk profile change in the user card
Restricting user actions at the highest risk status
Automatic enforcement of regulatory requirements when the risk profile changes: document request, function blocking
KYB user checks
AML risk control
Moderation and financial decision journal
Logging of all user and administrator actions on the platform
Automatic generation of accounting reports for platform operations over a period
Structured reports on deposits, withdrawals, accruals, fees
Report export in CSV, XLSX, PDF formats
Automatic sending of regulatory reports to supervisory authorities on a schedule
Manual initiation of export for any arbitrary period
AML reports: list of suspicious transactions, STR forms (Suspicious Transaction Report)
Reports on KYC/KYB statuses of the user base
Audit trail — full change log with timestamps for external audit
Report template configuration for a specific regulator’s requirements

Technology stack

React
MobX
ASP.NET Core 8.0
Entity Framework Core 8.0.3
Hangfire
MailKit and MimeKit
MediatR
Swashbuckle
AWS SDK
Bybit
Coingecko
PostgreSQL
Docker
Serilog

Work with the client

*Important: this is not project work — it is work with the client specifically, and it is not in the estimate or commercial proposal. This is what we do to increase the probability of product success.Antifragility as a service: a client who is not afraid of turbulenceThe fintech market storms constantly: regulations change, channels fall, rates spike. We see our job as not just building a resilient product, but transferring to the client a way of thinking in which chaos becomes fuel for growth. Together we decomposed the business model into elements and showed how each part behaves under external shocks. We taught the client to ask the right questions about their business so that the answers lengthen the project’s lifecycle and resilience.A separate track is the founder’s personal resilience: how to keep team energy in a crisis, how to manage reputation when panic is everywhere. This was trained so densely that the client admits: “Now I look at risks not as a threat, but as a chess problem.”Our goal is not just development — it is our client’s success.

Design goals:

INCREASE THE NUMBER OF INVESTORS WHO REACH A CONTRIBUTION BY 40% THROUGH A DIRECT AND SIMPLE FLOW
INCREASE PROJECT SELECTION SPEED FOR THE INVESTOR BY 30% THROUGH CLEAR CARDS, FILTERS, AND COMPARISON
INCREASE INVESTOR TRUST THROUGH PLATFORM TRANSPARENCY

Design results:

GLOBAL REACH: THE DESIGN EMPHASIZES ACCESS TO PROJECTS FROM DIFFERENT COUNTRIES, EXPANDING THE BASE OF INVESTORS AND PROJECTS
REGIONAL ADAPTATION: USERS CAN EASILY FIND AND UNDERSTAND CONDITIONS FOR THEIR COUNTRY OR REGION, SIMPLIFYING INVESTING
SIMPLICITY AND CLARITY: TEXT AND CHARTS EXPLAIN CROWDINVESTING WITHOUT COMPLEX TERMS, SHOWING THE BUSINESS BENEFIT (ACCESS TO CAPITAL)