FTEM Wallet - это консольное приложение для управления Ethereum кошельком, написанное на Go. Приложение поддерживает создание кошельков с использованием мнемонических фраз BIP-39, проверку баланса и отправку ETH транзакций.
- 🆕 Создание нового кошелька с генерацией мнемонической фразы (12 слов)
- 🔑 Импорт кошелька из существующей мнемонической фразы
- 👁️ Просмотр адресов кошелька (поддержка до 5 адресов)
- 💰 Проверка баланса всех адресов кошелька
- 📤 Отправка ETH между адресами
- 🔒 Безопасное хранение с поддержкой паролей
- 🌐 Поддержка тестовых сетей (Sepolia)
Проект следует принципам чистой архитектуры:
ftem_wallet/
├── cmd/ # Точки входа приложения
│ ├── dev/ # Версия для разработки
│ └── prod/ # Продакшн версия
├── internal/ # Внутренняя логика приложения
│ ├── cli/ # CLI интерфейс
│ └── service/ # Бизнес-логика
├── pkg/ # Публичные пакеты
│ ├── config/ # Конфигурация
│ ├── entities/ # Сущности
│ └── lib/ # Библиотеки
│ ├── algorithm/ # Криптографические алгоритмы
│ └── clients/ # Клиенты для внешних API
├── configs/ # Файлы конфигурации
└── releases/ # Скомпилированные бинарные файлы
- Go 1.25.5 - основной язык программирования
- go-ethereum - взаимодействие с Ethereum блокчейном
- BIP-32/BIP-39 - стандарты для генерации кошельков
- Viper - управление конфигурацией
- Infura - провайдер для подключения к Ethereum сети
- Go 1.25.5 или выше
- Git
git clone https://github.com/Murolando/ftem_wallet.git
cd ftem_wallet# Запуск с конфигурацией для разработки
go run cmd/dev/main.go --app-cfg configs/dev/config.yaml
# Или с переменной окружения
export APP_CFG_PATH=configs/dev/config.yaml
go run cmd/dev/main.go
# С мнемонической фразой
go run cmd/dev/main.go --app-cfg configs/dev/config.yaml --mnemonic "your twelve word mnemonic phrase here goes like this example phrase" --password "your_password"# Запуск prod версии с конфигурацией
go run cmd/prod/main.go --app-cfg configs/prod/config.yaml
# Или с переменной окружения
export APP_CFG_PATH=configs/prod/config.yaml
go run cmd/prod/main.go
# С мнемонической фразой
go run cmd/prod/main.go --app-cfg configs/prod/config.yaml --mnemonic "your mnemonic phrase" --password "your_password"# Сборка prod версии
go build -o releases/ftem_wallet_prod cmd/prod/main.go
# Запуск с конфигурацией
./releases/ftem_wallet_prod --app-cfg configs/prod/config.yaml
# Или с переменной окружения
export APP_CFG_PATH=configs/prod/config.yaml
./releases/ftem_wallet_prod
# С мнемонической фразой
./releases/ftem_wallet_prod --app-cfg configs/prod/config.yaml --mnemonic "your mnemonic phrase" --password "your_password"- Обязательно замените
YOUR_PROJECT_IDвconfigs/prod/config.yamlна ваш реальный Infura Project ID - Используйте реальные ETH - prod версия работает с Ethereum Mainnet
- Сохраните мнемоническую фразу в безопасном месте
- Проверьте баланс перед отправкой транзакций
Приложение использует YAML файлы конфигурации:
env: dev
service_config:
host: https://sepolia.infura.io/v3/YOUR_INFURA_PROJECT_ID
cli_config:
mnemonic: ""
password: ""env: prod
service_config:
host: https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID
cli_config:
mnemonic: ""
password: ""- Запустите приложение
- Выберите опцию "1. 🆕 Создать новый кошелек"
- Введите пароль (опционально)
- ВАЖНО: Сохраните сгенерированную мнемоническую фразу в безопасном месте
Запустите приложение с флагами:
go run cmd/dev/main.go --mnemonic "your mnemonic phrase" --password "your_password"После авторизации доступны следующие операции:
- 👁️ Показать адреса кошелька - отображает все адреса (до 5)
- 💰 Показать баланс - проверяет баланс всех адресов
- 📤 Отправить ETH - отправка ETH между адресами
- ❌ Выход - завершение работы
- Мнемонические фразы генерируются с использованием криптографически стойкого генератора случайных чисел
- Поддержка паролей для дополнительной защиты
- Приватные ключи не сохраняются в открытом виде
- Все операции требуют подтверждения пользователя
- Sepolia Testnet (режим разработки)
- Ethereum Mainnet (продакшн режим)
FTEM Wallet is a command-line application for managing Ethereum wallets, written in Go. The application supports wallet creation using BIP-39 mnemonic phrases, balance checking, and sending ETH transactions.
- 🆕 Create new wallet with mnemonic phrase generation (12 words)
- 🔑 Import wallet from existing mnemonic phrase
- 👁️ View wallet addresses (supports up to 5 addresses)
- 💰 Check balance of all wallet addresses
- 📤 Send ETH between addresses
- 🔒 Secure storage with password support
- 🌐 Testnet support (Sepolia)
The project follows clean architecture principles:
ftem_wallet/
├── cmd/ # Application entry points
│ ├── dev/ # Development version
│ └── prod/ # Production version
├── internal/ # Internal application logic
│ ├── cli/ # CLI interface
│ └── service/ # Business logic
├── pkg/ # Public packages
│ ├── config/ # Configuration
│ ├── entities/ # Entities
│ └── lib/ # Libraries
│ ├── algorithm/ # Cryptographic algorithms
│ └── clients/ # External API clients
├── configs/ # Configuration files
└── releases/ # Compiled binaries
- Go 1.25.5 or higher
- Git
git clone https://github.com/Murolando/ftem_wallet.git
cd ftem_wallet# Run with development configuration
go run cmd/dev/main.go --app-cfg configs/dev/config.yaml
# Or with environment variable
export APP_CFG_PATH=configs/dev/config.yaml
go run cmd/dev/main.go
# With mnemonic phrase
go run cmd/dev/main.go --app-cfg configs/dev/config.yaml --mnemonic "your twelve word mnemonic phrase here goes like this example phrase" --password "your_password"# Run prod version with configuration
go run cmd/prod/main.go --app-cfg configs/prod/config.yaml
# Or with environment variable
export APP_CFG_PATH=configs/prod/config.yaml
go run cmd/prod/main.go
# With mnemonic phrase
go run cmd/prod/main.go --app-cfg configs/prod/config.yaml --mnemonic "your mnemonic phrase" --password "your_password"# Build prod version
go build -o releases/ftem_wallet_prod cmd/prod/main.go
# Run with configuration
./releases/ftem_wallet_prod --app-cfg configs/prod/config.yaml
# Or with environment variable
export APP_CFG_PATH=configs/prod/config.yaml
./releases/ftem_wallet_prod
# With mnemonic phrase
./releases/ftem_wallet_prod --app-cfg configs/prod/config.yaml --mnemonic "your mnemonic phrase" --password "your_password"- Must replace
YOUR_PROJECT_IDinconfigs/prod/config.yamlwith your real Infura Project ID - Uses real ETH - prod version works with Ethereum Mainnet
- Save mnemonic phrase in a secure place
- Check balance before sending transactions
The application uses YAML configuration files:
env: dev
service_config:
host: https://sepolia.infura.io/v3/YOUR_INFURA_PROJECT_ID
cli_config:
mnemonic: ""
password: ""env: prod
service_config:
host: https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID
cli_config:
mnemonic: ""
password: ""- Run the application
- Select option "1. 🆕 Create new wallet"
- Enter password (optional)
- IMPORTANT: Save the generated mnemonic phrase in a secure place
Run the application with flags:
go run cmd/dev/main.go --mnemonic "your mnemonic phrase" --password "your_password"After authorization, the following operations are available:
- 👁️ Show wallet addresses - displays all addresses (up to 5)
- 💰 Show balance - checks balance of all addresses
- 📤 Send ETH - send ETH between addresses
- ❌ Exit - terminate the application
- Mnemonic phrases are generated using cryptographically secure random number generator
- Password support for additional protection
- Private keys are not stored in plain text
- All operations require user confirmation
- Sepolia Testnet (development mode)
- Ethereum Mainnet (production mode)