REST API layer over the Fuego network & wallet RPCs with multi-language client SDKs for easy integration.
- REST API Gateway - Node.js gateway translates REST calls to Fuego RPC endpoints
 - Multi-Language Support - Client SDKs for 10+ programming languages
 - OpenAPI Specification - API documentation with Swagger/OpenAPI 3.0
 - Production Ready - Privacy-focused server with comprehensive security analysis
 
| Language | Client Directory | Description | 
|---|---|---|
| JavaScript/Node.js | clients/javascript/ | 
Browser and Node.js compatible client | 
| Python | clients/python/ | 
Python client with requests library | 
| Go | clients/go/ | 
Go client with full type safety | 
| Java | clients/java/ | 
Java client with Maven/Gradle support | 
| C# (.NET) | clients/csharp/ | 
.NET client with NuGet package | 
| PHP | clients/php/ | 
PHP client with Composer support | 
| Ruby | clients/ruby/ | 
Ruby client with Gem support | 
| Kotlin | clients/kotlin/ | 
Kotlin client for Android/JVM | 
| Swift 5 | clients/swift5/ | 
Swift client for iOS/macOS | 
| Rust | clients/rust/ | 
Rust client with Cargo support | 
- Gateway REST base: 
http://localhost:8787/v1 - Underlying services:
- Core RPC: 
CORE_RPC_URL(defaulthttp://127.0.0.1:8181) - Wallet RPC: 
WALLET_RPC_URL(defaulthttp://127.0.0.1:8070) - Wallet auth (optional): 
WALLET_RPC_USER,WALLET_RPC_PASSWORD 
 - Core RPC: 
 
The gateway server is located in gateway/ directory.
cd gateway
npm install
CORE_RPC_URL=http://127.0.0.1:8181 \
WALLET_RPC_URL=http://127.0.0.1:8070 \
WALLET_RPC_USER=rpcuser \
WALLET_RPC_PASSWORD=rpcpass \
PORT=8787 \
node server.jsPrerequisites: Start fuegod and xfgwalletd servers locally.
Test the gateway with these example requests:
Node Information
curl http://localhost:8787/v1/node/infoNode Height
curl http://localhost:8787/v1/node/heightWallet Balance
curl http://localhost:8787/v1/wallet/balanceWallet Transfer
curl -X POST http://localhost:8787/v1/wallet/transfer \
  -H 'Content-Type: application/json' \
  -d '{
    "destinations": [{"address": "fire...", "amount": 1000000}],
    "payment_id": "",
    "mixin": 0,
    "unlock_time": 0,
    "messages": [],
    "ttl": 0
  }'Navigate to clients/javascript/ and follow the README:
cd clients/javascript
npm installNavigate to clients/python/ and follow the README:
pip install requestsEach client SDK has its own directory with specific installation and usage instructions:
- Go: 
clients/go/-go mod tidy && go run main.go - Java: 
clients/java/-mvn installor./gradlew build - C#: 
clients/csharp/-dotnet buildornuget restore - PHP: 
clients/php/-composer install - Ruby: 
clients/ruby/-bundle install - Kotlin: 
clients/kotlin/-./gradlew build - Swift: 
clients/swift5/-swift build - Rust: 
clients/rust/-cargo build 
The complete API specification is available at openapi/fuego-openapi.yaml.
Import into your favorite API client:
- Postman: Import the OpenAPI YAML file
 - Insomnia: Import the OpenAPI YAML file
 - Swagger UI: Use the YAML file with Swagger UI
 - VS Code: Use the REST Client extension
 
Use the SDK generation script to create clients for additional languages:
cd openapi
./generate_sdks.shA privacy-enhanced version of the gateway server is available at gateway/server-privacy.js.
Comprehensive privacy and security analysis is documented in privacy-security/privacy-analysis.md.
Integration tools for blockchain explorers are available in explorer-integration/:
- Migration scripts for existing explorers
 - Integration documentation
 - Setup guides
 
For production deployment on Ubuntu servers, we provide comprehensive guides and automated setup:
# Download and run the automated setup script
curl -fsSL https://raw.githubusercontent.com/ColinRitman/xfgapi/main/scripts/ubuntu-setup.sh | bashFor detailed manual setup instructions, see docs/UBUNTU-DEPLOYMENT.md.
- Nginx reverse proxy with SSL/TLS termination
 - PM2 process management for automatic restarts
 - Let's Encrypt SSL certificates with auto-renewal
 - UFW firewall configuration
 - Rate limiting and security headers
 - Health monitoring and logging
 - Fail2ban protection against brute force attacks
 
For containerized deployments, use the provided Docker configuration:
# Build and run with Docker Compose
docker-compose up -d| Variable | Description | Default | 
|---|---|---|
CORE_RPC_URL | 
Core RPC server URL | http://127.0.0.1:8181 | 
WALLET_RPC_URL | 
Wallet RPC server URL | http://127.0.0.1:8070 | 
WALLET_RPC_USER | 
Wallet RPC username | (optional) | 
WALLET_RPC_PASSWORD | 
Wallet RPC password | (optional) | 
PORT | 
Gateway server port | 8787 | 
NODE_ENV | 
Node.js environment | production | 
CORS_ORIGIN | 
CORS allowed origins | * | 
- β SSL/TLS encryption configured
 - β Reverse proxy (Nginx) setup
 - β Process management (PM2) configured
 - β Firewall rules applied
 - β Rate limiting enabled
 - β Security headers configured
 - β Monitoring and logging setup
 - β Backup strategy implemented
 - β Health checks automated
 
This project is licensed under the terms specified in the LICENSE file.
Contributions are welcome! Please see the contributing guidelines for more information.
Repository: https://github.com/ColinRitman/xfgapi