Ethereum
Quick Start
- Sign up at ethereum.org and obtain API credentials
- Create a terminal in the Admin Console with the parameters below
- Start processing — the adapter is pre-built and ready to use
Overview
Ethereum payment integration
| Provider ID | ethereum |
| Category | Crypto & Blockchain |
| Website | ethereum.org |
Configuration
Required Parameters
| Parameter | Description |
|---|---|
api_key | key for access to Ethereum RPC (for example: Infura API key) |
Example Configuration
{
"env": "prod",
"api_key": "infura-api-key",
"need_auth": true
}
Payment Flow
Payments (one-phase with need_auth=true):
-
get_additional_params_for_auth - generation parameters for authentication:
- Retrieval destination wallet_address for acceptance payment
- AML check source_addr (sender cold wallet)
- Generation signing: sign("tx_id:wallet_address")
- Refund wallet_address and signature
-
process_operation (need_auth=true) - processing with verification blockchain:
- Retrieval tx_hash from additional_params_for_auth
- Uniqueness check tx_hash (not used previously)
- Retrieval receipt from blockchain via Ethers.get_transaction_receipt
- Extraction from, to, amount from logs transactions
- Validation: from == source, to == destination, amount matches
- Refund charged immediately after validation
Payouts (one-phase with need_auth=false):
-
process_operation (need_auth=false) - creation blockchain transactions:
- Determination token standard (ERC20) and currency (USDT/ZOLT)
- Retrieval source wallet (sender) with sufficient balance
- Retrieval destination wallet_address
- AML check destination wallet_address for payouts
- Exchange currency via Fx.find_fx_rate_value
- Call contract.transfer(destination, amount)
- Sending via Ethers.send with signer_opts
- Refund tx_hash as outertxid/merchanttxid
-
status - status check blockchain transactions:
- Retrieval receipt via Ethers.get_transaction_receipt
- Parsing status from receipt: "1" → charged, "0x1" → charged, the rest → rejected
- With charged: update wallet balance and gas
- Refund merchant_meta.status or provider status