Crypto transfers Introduction Crypto Transfers is a solution provided by Verestro that enables comprehensive management of FIAT funds originating from cryptocurrencies for both  Partners  and  endusers . The system allows for the generation of crypto addresses in the context of specified symbols and networks. Crypto Transfers also supports incoming transfers in FIAT to the valid balance of the Partner and enduser, ensuring flexible and transparent management of financial resources. As part of the integration, it is also possible to create an  Admin Panel instance for you which allows you to track transfers made using the Crypto Transfers service. Important! The service is still under development. Functionalities will be made available and added to the documentation on an ongoing basis. Note: The solution is available to Partners integrated with Antaca. For more information about Antaca service, please open  this link Note:  Verestro itself does not support cryptocurrencies. Cryptocurrency operations are orchestrated by our partner  Financial Institution , which is responsible for converting cryptocurrencies into FIAT currencies. Key Capabilities: Crypto address generation - create a crypto address that allows funds to be deposited into the balance associated with the created crypto address; Multi-currency support - process transfers in EUR ( with corresponding cryptocurrency EURC ) and USD ( with corresponding cryptocurrencies USDT and USDC ).  Top up processing - handle incoming transfers in FIAT funds originating from cryptocurrencies; Real-time management - monitor all operations through Admin Panel Important! Please remember that if you want to initiate a top-up using a cryptocurrency such as USDT or USDC, the top-up must be sent to the crypto address associated with a USD balance. Otherwise, the transfer will not be successful. The same applies to EURC: it must be sent to the crypto address associated with an EUR balance. How to connect with us? Verestro provides access to the solution through REST API implementation model. The REST API integration model involves connecting directly via a server to server path. In this case we do not provide any application view - each process is performed using the API methods according with the REST protocol. In this integration model, authorization is performed using x509 certificate authentication . More detailed information about integration with Crypto Transfers service is provided in the technical documentation . Verestro actively supports the Partner throughout the integration process. Overview This chapter provides description of the terminology and components used in the functionalities offered by the  Crypto Transfers service . The service enables top upping your (and your endusers including corporations) balanaces with the FIAT funds originated from cryptocurrencies. Within the service, it is possible to generate crypto addresses with a context of a balance, a network and a symbol. Important! The service is still under development. New functionalities will be made available and added to the documentation on an ongoing basis. Abbreviations This section shortly describes abbreviations and acronyms used in the document. Abbreviation Description SDK Software Development Kit API Application Programming Interface OS Operative System Terminology This section explains a meaning of key terms and concepts used in this document. Name Description Network Network is a specific blockchain infrastructure (e.g., Ethereum, Tron) through which cryptocurrencies are transferred. It dictates the transaction standards, required network fees (gas), and processing speeds for incoming deposits. Selecting the correct network is essential for the user to ensure funds arrive at the intended destination address and are properly processed. Selecting network is required to create a new crypto address. Symbol Symbol is a 3-5 letters code used to identify a specific cryptocurrency (e.g., USDT, EURC, ETH). It designates the digital asset within the system and defines its corresponding conversion rate to FIAT currency. Selecting symbol is required to create a new crypto address. Crypto address Crypto address is a unique alphanumeric identifier that functions like a digital account number for receiving funds on a blockchain. It is associated with a specific network and ensures user deposits are directed to the correct destination wallet. Providing an incorrect address or using an unsupported network may result in a permanent loss of funds. To create a crypto address you need to specify network and symbol which should be assigned to it. Our service allow you and your endusers to get details of your crypto address and to create new crypto address in the context of an existing balance, after selecting network and symbol. Blockchain Blockchain is a decentralized, digital ledger that records all transactions on the network without intermediaries. Transaction data is grouped into cryptographically secured blocks, forming an unbreakable chain protected from modification. Balance The current amount in the Antaca that is available for use in the current currency. For example to handle top up originated from EURC the balance has to be in EUR currency. Each debit reduces the balance amount, and each top-up increases the balance amount. A balance can be created in a single currency (one balance per currency). If multiple currencies need to be supported, several dedicated balances must be created. Master balance Also referred to as the partner balance - it is shared with the Partner and the Financial Institution. Master balance can be created in a single currency (one balance per currency). If multiple currencies need to be supported, several dedicated balances must be created. Both credit and deposit types are available. Partner credit and  deposit  balances are used to process transactions of Partner especially in cases where User Balance is hold by Verestro. Partner Customer using Verestro products. Essentially, a Partner can be referred to as a Tenant. They are assigned to one or more financial institutions within the Verestro system. In turn, entities such as endusers are assigned to the Partner. A Partner can request to issue crypto addresses and manage transfers using the Crypto Transfers service. Enduser This is an individual end-user utilizing the Crypto Transfers solution through the Partner's application. They are registered in the Verestro system and hold one or more balances in a specific currency. Financial Institution The institution to which a given partner is assigned. It creates master balances per partner, per currency within its own system. It is responsible for converting cryptocurrencies into FIAT currency, ensuring that requested transfers are properly processed, and maintaining reconciliation so that the partner's master balance remains identical across both their and Verestro's side. Application components This chapter describes Crypto Transfers service as a complete solution, divided into all the components that support and are required for managing the crypto transfer's domain. The individual functionalities for which these services are responsible reduce the additional work on your part as a Partner. Processes such as transaction validation, debiting and topping up balances, and saving transaction history per enduser are handled on our side. Crypton API A backend component that, by communicating with internal and external services, enables the crypto address creation and management, assigns crypto address to the provided balance and handles ordered top-ups in FIAT. Crypton API endpoints are exposed and described in Technical documentation . Note: The blockchain networks supported by our partner Financial Institution are Ethereum and Tron . Supporting services The following services are not a direct part of the Crypton API implementation. However, they are involved in the processes of creating and crypto addresses and balances. Additionally, they enable the balances (including master balance) management and the storage of transaction history. Component Description Antaca API A backend component responsible for creating and managing balances. Each crypto address must be assigned to a balance in order to receive transfers. Crypton API communicates with Antaca API to get details of a specific balance or top up it. Transaction History Core API A backend component responsible for storing the history of performed transactions using Crypton API . All changes on the balance's state are reported by Antaca API . The history is available in the Admin Panel as well as directly through the  API . AML A tool that helps to detect and prevent suspicious or fraudulent transactions while maintaining full AML compliance. The system provides real-time transaction monitoring based on configurable rulesets and can use KYC data, end user transaction history, and transaction details to support effective risk management. Admin Panel A tool for Partners to work with Verestro services. The main purpose of Admin Panel is to provide a web-based environment with the ability to manage Partner service actions.  Use cases This chapter provides information about use cases available in the Crypto Transfers service. Crypto Transfers service enables a range of processes related to transferring funds using cryptocurrencies. In order to use the processes provided by the Crypto Transfers service, the Partner must have a master balance  set up in the Verestro system. Important! The service is still under development. Functionalities will be made available and added to the documentation on an ongoing basis. Note: The blockchain networks supported by our partner Financial Institution are Ethereum and Tron . Account management This chapter provides information on creating and managing crypto addresses , as well as retrieving the information required to initiate transfers of funds originating from cryptocurrencies. Note: Verestro itself does not support cryptocurrencies. Cryptocurrency operations are orchestrated by our partner Financial Institution , which is responsible for converting cryptocurrencies into FIAT currencies. Our partner Financial Institution currently supports three cryptocurrency symbols , which are listed in the table below. Crypto currency supported by Financial Institution (symbol) Corresponding FIAT currency USDT USD USDC USD EURC EUR Crypto address creation This section describes the process of creating a  crypto deposit address. To create a crypto deposit address referencing an end user’s balance, the end user must be registered in the Verestro system and have a balance in the corresponding FIAT currency . For example, to create a crypto deposit address for USDC or USDT , the end user must have a balance in USD . A user with multiple balances will have a separate crypto deposit address for each balance, even when the same cryptocurrency symbol and blockchain network are used. The diagram below describes the crypto address creation process step by step. Important! Please remember that if you want to initiate a top-up using a cryptocurrency such as USDT or USDC, the top-up must be sent to the crypto address associated with a USD balance. Otherwise, the transfer will not be successful. The same applies to EURC: it must be sent to the crypto address associated with an EUR balance. Expand to see sequence diagram describing crypto address creation process step by step @startuml skinparam ParticipantPadding 30 skinparam BoxPadding 30 skinparam noteFontColor #FFFFFF skinparam noteBackgroundColor #1C1E3F skinparam noteBorderColor #1C1E3F skinparam noteBorderThickness 1 skinparam sequence { ArrowColor #1C1E3F ArrowFontColor #1C1E3F ActorBorderColor #1C1E3F ActorBackgroundColor #FFFFFF ActorFontStyle bold ParticipantBorderColor #1C1E3F ParticipantBackgroundColor #1C1E3F ParticipantFontColor #FFFFFF ParticipantFontStyle bold LifeLineBackgroundColor #1C1E3F LifeLineBorderColor #1C1E3F } actor "End user" as user participant "Customer application" as issuer participant "Verestro Crypton" as cry participant "Verestro Antaca" as ant note right of user: End user wants to create\nnew balance (KYC success) user->issuer: Create new balance issuer->ant: Create new balance (userId) note left of ant: Create balance for user issuer<-ant: Return created balance data user<-issuer: Display balance note right of user: End user wants\nto see all their balances user->issuer: Show balances issuer->ant: Get end user balances (userId) ant->issuer: Return list of balances of end user user<-issuer: Show end user balances note right of user: End user chooses to top up\nselected balance with crypto user->issuer: Top up my balance issuer->cry: Get symbols for selected balance (balanceId) cry->issuer: Return list of supported symbols (e.g. EURC) issuer->user: Show the list of supported symbols note right of user: End user selects in which symbol\nbalance should be top upped user->issuer: Select symbol issuer->cry: Get supported networks for the selected symbol (symbol) issuer<-cry: Return supported networks (e.g. Ethereum) user<-issuer: Show supported networks for the selected symbol note right of user: End user chooses to create crypto address\nin selected network user->issuer: Create new crypto address issuer->cry: Create crypto address in the context\nof the selected network (balanceId, symbol, network) note left of cry: Create crypto address cry->issuer: Return created crypto address user<-issuer: Display crypto address @enduml Technical documentation This chapter provides technical information about the integration with Crypto Transfers service. Description of the each API methods provided by the  Crypto Transfers is listed below. The service supports a server-to-server integration model. Tip: This API requires Mutual TLS authentication. You can use the same certificate for all mTLS-secured APIs exposed by Verestro. If you don't have one, follow this instruction: Connecting to server-to-server APIs Note: In a server-to-server connection, the authentication of the end user is your responsibility. Our system exclusively authenticates the Partner Instance (tenant). @swagger="https://crypton.verestro.dev/doc/server.yaml" Onboarding This chapter is intended to present you the requirements that will allow you to use the Crypto Transfers solution in your application. We have presented here all actions necessary to be done so that you can join the Crypto Transfers program and so that we can properly create the required Partner account for you in our system. Tip: Crypto Transfers service offers two environments:  TEST and PROD . For more information about application environments please visit Technical documentation . To start using Crypto Transfers service you need to go through a few on-boarding steps: 1. Please contact our sales - sales@verestro.com   2. Please respond to some introduction question that will let us prepare proposal for you. 3. You will receive offer for transaction in FIAT originating from cryptocurrencies. 4. If you accept the offer you will be asked to provide some company documents required for the AML verification process. 5. After succesful AML process you will receive contract with Verestro along with our Financial Institution partner. 6.  You will be asked to provide account numbers for settlements. 7.  And finally you will enable Crypto Transfers service within your application.