Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,14 @@ _To configure via env, the following parameters must be provided:_

See [Phoenixd](scripts/linux-x86_64/phoenixd/README.md)

### Ark

Currently Ark can only be configured via env.

_To configure via env, the following parameters must be provided:_

- `LN_BACKEND_TYPE`: ARK

### Alby OAuth

Create an OAuth client at the [Alby Developer Portal](https://getalby.com/developer) and set your `ALBY_OAUTH_CLIENT_ID` and `ALBY_OAUTH_CLIENT_SECRET` in your .env. If not running locally, you'll also need to change your `BASE_URL`.
Expand Down
1 change: 1 addition & 0 deletions config/models.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ const (
LDKBackendType = "LDK"
PhoenixBackendType = "PHOENIX"
CashuBackendType = "CASHU"
ArkBackendType = "ARK"
)

const (
Expand Down
5 changes: 5 additions & 0 deletions frontend/src/lib/backendType.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,9 @@ export const backendTypeConfigs: Record<BackendType, BackendTypeConfig> = {
hasChannelManagement: false,
hasNodeBackup: false,
},
ARK: {
hasMnemonic: true,
hasChannelManagement: false,
hasNodeBackup: false,
},
};
5 changes: 5 additions & 0 deletions frontend/src/routes.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ import { SetupFinish } from "src/screens/setup/SetupFinish";
import { SetupNode } from "src/screens/setup/SetupNode";
import { SetupPassword } from "src/screens/setup/SetupPassword";
import { SetupSecurity } from "src/screens/setup/SetupSecurity";
import { ArkForm } from "src/screens/setup/node/ArkForm";
import { CashuForm } from "src/screens/setup/node/CashuForm";
import { LDKForm } from "src/screens/setup/node/LDKForm";
import { LNDForm } from "src/screens/setup/node/LNDForm";
Expand Down Expand Up @@ -536,6 +537,10 @@ const routes: RouteObject[] = [
path: "ldk",
element: <LDKForm />,
},
{
path: "ark",
element: <ArkForm />,
},
{
path: "preset",
element: <PresetNodeForm />,
Expand Down
28 changes: 28 additions & 0 deletions frontend/src/screens/setup/node/ArkForm.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import { wordlist } from "@scure/bip39/wordlists/english.js";
import { useEffect } from "react";
import { useNavigate, useSearchParams } from "react-router-dom";
import useSetupStore from "src/state/SetupStore";

import * as bip39 from "@scure/bip39";
import Loading from "src/components/Loading";

export function ArkForm() {
const navigate = useNavigate();
const [searchParams] = useSearchParams();

// No configuration needed, automatically proceed with the next step
useEffect(() => {
// only generate a mnemonic if one is not already imported
if (!useSetupStore.getState().nodeInfo.mnemonic) {
useSetupStore.getState().updateNodeInfo({
mnemonic: bip39.generateMnemonic(wordlist, 128),
});
}
useSetupStore.getState().updateNodeInfo({
backendType: "ARK",
});
navigate("/setup/security");
}, [navigate, searchParams]);

return <Loading />;
}
2 changes: 1 addition & 1 deletion frontend/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {
WalletMinimalIcon,
} from "lucide-react";

export type BackendType = "LND" | "LDK" | "PHOENIX" | "CASHU";
export type BackendType = "LND" | "LDK" | "PHOENIX" | "CASHU" | "ARK";

export type Nip47RequestMethod =
| "get_info"
Expand Down
33 changes: 24 additions & 9 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,15 +1,22 @@
module github.com/getAlby/hub

go 1.24.9
go 1.25.3

require (
github.com/ArkLabsHQ/fulmine/pkg/boltz v0.0.0-20251119195708-a00599cd74be
github.com/ArkLabsHQ/fulmine/pkg/vhtlc v0.0.0-20251119195708-a00599cd74be
github.com/adrg/xdg v0.5.3
github.com/arkade-os/arkd/pkg/ark-lib v0.8.1-0.20251119163300-38b7bf6a4010
github.com/arkade-os/go-sdk v0.8.2-0.20251110150555-3fea8eb154d1
github.com/btcsuite/btcd v0.24.3-0.20250318170759-4f4ea81776d6
github.com/btcsuite/btcd/btcutil v1.1.6
github.com/btcsuite/btcd/btcutil/psbt v1.1.9
github.com/ccoveille/go-safecast v1.6.1
github.com/elnosh/gonuts v0.4.2
github.com/getAlby/ldk-node-go v0.0.0-20250903063103-91db97badfc2
github.com/go-gormigrate/gormigrate/v2 v2.1.5
github.com/labstack/echo/v4 v4.13.4
github.com/lightningnetwork/lnd/tlv v1.3.2
github.com/mattn/go-sqlite3 v1.14.32
github.com/nbd-wtf/go-nostr v0.52.3
github.com/nbd-wtf/ln-decodepay v1.13.0
Expand Down Expand Up @@ -41,8 +48,7 @@ require (
github.com/aead/siphash v1.0.1 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/bep/debounce v1.2.1 // indirect
github.com/btcsuite/btcd/btcutil/psbt v1.1.9 // indirect
github.com/btcsuite/btclog v0.0.0-20241003133417-09c4e92e319c // indirect
github.com/btcsuite/btclog v0.0.0-20241017175713-3428138b75c7 // indirect
github.com/btcsuite/btclog/v2 v2.0.1-0.20250728225537-6090e87c6c5b // indirect
github.com/btcsuite/btcwallet v0.16.17 // indirect
github.com/btcsuite/btcwallet/wallet/txauthor v1.3.5 // indirect
Expand All @@ -64,6 +70,8 @@ require (
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/decred/dcrd/lru v1.1.3 // indirect
github.com/dgraph-io/badger/v4 v4.5.0 // indirect
github.com/dgraph-io/ristretto/v2 v2.1.0 // indirect
github.com/docker/cli v28.1.1+incompatible // indirect
github.com/docker/docker v28.1.1+incompatible // indirect
github.com/docker/go-connections v0.5.0 // indirect
Expand All @@ -78,15 +86,17 @@ require (
github.com/go-macaroon-bakery/macaroonpb v1.0.0 // indirect
github.com/go-ole/go-ole v1.3.0 // indirect
github.com/go-sql-driver/mysql v1.8.1 // indirect
github.com/go-viper/mapstructure/v2 v2.3.0 // indirect
github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
github.com/godbus/dbus/v5 v5.1.0 // indirect
github.com/gofrs/uuid v4.4.0+incompatible // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang-jwt/jwt/v4 v4.5.2 // indirect
github.com/golang-migrate/migrate/v4 v4.18.1 // indirect
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/golang/snappy v0.0.4 // indirect
github.com/google/btree v1.1.3 // indirect
github.com/google/flatbuffers v24.12.23+incompatible // indirect
github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
github.com/google/uuid v1.6.0 // indirect
Expand Down Expand Up @@ -137,17 +147,18 @@ require (
github.com/lightningnetwork/lnd/queue v1.1.1 // indirect
github.com/lightningnetwork/lnd/sqldb v1.0.11 // indirect
github.com/lightningnetwork/lnd/ticker v1.1.1 // indirect
github.com/lightningnetwork/lnd/tlv v1.3.2 // indirect
github.com/lightningnetwork/lnd/tor v1.1.6 // indirect
github.com/ltcsuite/ltcd v0.23.5 // indirect
github.com/ltcsuite/ltcd/chaincfg/chainhash v1.0.2 // indirect
github.com/mailru/easyjson v0.9.0 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/meshapi/grpc-api-gateway v0.1.0 // indirect
github.com/miekg/dns v1.1.62 // indirect
github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect
github.com/moby/docker-image-spec v1.3.1 // indirect
github.com/moby/go-archive v0.1.0 // indirect
github.com/moby/sys/user v0.4.0 // indirect
github.com/moby/term v0.5.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
Expand All @@ -156,7 +167,7 @@ require (
github.com/onsi/gomega v1.36.2 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.1.1 // indirect
github.com/opencontainers/runc v1.1.14 // indirect
github.com/opencontainers/runc v1.2.4 // indirect
github.com/ory/dockertest/v3 v3.11.0 // indirect
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
github.com/pkg/errors v0.9.1 // indirect
Expand All @@ -179,12 +190,14 @@ require (
github.com/tidwall/gjson v1.18.0 // indirect
github.com/tidwall/match v1.1.1 // indirect
github.com/tidwall/pretty v1.2.1 // indirect
github.com/timshannon/badgerhold/v4 v4.0.3 // indirect
github.com/tkrajina/go-reflector v0.5.8 // indirect
github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/valyala/fasttemplate v1.2.2 // indirect
github.com/vulpemventures/fastsha256 v0.0.0-20160815193821-637e65642941 // indirect
github.com/vulpemventures/go-bip32 v0.0.0-20200624192635-867c159da4d7 // indirect
github.com/vulpemventures/go-elements v0.5.5 // indirect
github.com/vulpemventures/go-secp256k1-zkp v1.1.6 // indirect
github.com/wailsapp/go-webview2 v1.0.22 // indirect
Expand All @@ -203,15 +216,16 @@ require (
go.etcd.io/etcd/pkg/v3 v3.5.16 // indirect
go.etcd.io/etcd/raft/v3 v3.5.16 // indirect
go.etcd.io/etcd/server/v3 v3.5.16 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.55.0 // indirect
go.opentelemetry.io/otel v1.37.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.30.0 // indirect
go.opentelemetry.io/otel/metric v1.37.0 // indirect
go.opentelemetry.io/otel/sdk v1.37.0 // indirect
go.opentelemetry.io/otel/trace v1.37.0 // indirect
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
go.opentelemetry.io/proto/otlp v1.5.0 // indirect
go.uber.org/atomic v1.11.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
Expand Down Expand Up @@ -243,6 +257,7 @@ require (
modernc.org/strutil v1.2.0 // indirect
modernc.org/token v1.1.0 // indirect
pgregory.net/rapid v1.2.0 // indirect
resty.dev/v3 v3.0.0-beta.3 // indirect
sigs.k8s.io/yaml v1.4.0 // indirect
)

Expand All @@ -251,7 +266,7 @@ require (
github.com/btcsuite/btcd/btcec/v2 v2.3.6
github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0
github.com/decred/dcrd/crypto/blake256 v1.1.0 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0
github.com/golang-jwt/jwt/v5 v5.3.0
github.com/gorilla/websocket v1.5.3 // indirect
github.com/joho/godotenv v1.5.1
Expand Down
Loading
Loading