arkd is the backbone of an Arkade instance, built on top of the Ark protocol. It facilitates offchain transaction execution, coordinates onchain settlement and manages VTXOs through the Intent System.
This section outlines how to integrate with Arkade via arkd and its APIs.
Main API Layer Services
The arkd server is an always-on server and exposes two public gRPC services for Arkade clients:
- ArkService - Handles batch processing, intent registration, and multi-party signing
- IndexerService - Provides data queries for VTXOs, transaction history, and real-time subscriptions
arkd consists of two main executable processes:
arkd- The primary server process that hosts all core services, manages the Virtual Mempool and the coordination for onchain settlementsarkd-wallet- A separate wallet service process that provides Bitcoin wallet functionality and liquidity
Design Principles
The codebase follows a layered architecture with clear separation of concerns:- Application Layer
internal/core/application/: Implements core business logic and service operations - Domain Layer
internal/core/domain/: Contains models, events, and domain rules - Ports Layer
internal/core/ports/: Defines interfaces for external dependencies - Infrastructure Layer
internal/infrastructure/: Provides concrete implementations of port interfaces
Get Started
Arkade Workflows
Understand Arkade Workflows from initial boarding, to offchain execution, onchain settlement and exiting Arkade
API Layer
Learn about the Arkade API Layer, powered by two services, the ArkService and the IndexerService
Intent System
Learn how the Intent System powers Arkade Workflows
Server Security
Understand the server security measures against potential attack scenarios