interface Account {
callbackEndpoints: [CallbackEndpoint!]!
csvTransactions(walletIds: [WalletId!]!): String!
defaultWallet: PublicWallet!
defaultWalletId: WalletId!
@deprecated(reason: "Shifting property to 'defaultWallet.id'")
displayCurrency: DisplayCurrency!
id: ID!
invoices(
"""
Returns the items in the list that come after the specified cursor.
"""
after: String
"""
Returns the items in the list that come before the specified cursor.
"""
before: String
"""
Returns the first n items from the list.
"""
first: Int
"""
Returns the last n items from the list.
"""
last: Int
walletIds: [WalletId]
): InvoiceConnection
level: AccountLevel!
limits: AccountLimits!
notificationSettings: NotificationSettings!
pendingIncomingTransactions(walletIds: [WalletId]): [Transaction!]!
realtimePrice: RealtimePrice!
transactions(
"""
Returns the items in the list that come after the specified cursor.
"""
after: String
"""
Returns the items in the list that come before the specified cursor.
"""
before: String
"""
Returns the first n items from the list.
"""
first: Int
"""
Returns the last n items from the list.
"""
last: Int
walletIds: [WalletId]
): TransactionConnection
walletById(walletId: WalletId!): Wallet!
wallets: [Wallet!]!
}
type AccountDeletePayload {
errors: [Error!]!
success: Boolean!
}
input AccountDisableNotificationCategoryInput {
category: NotificationCategory!
channel: NotificationChannel
}
input AccountDisableNotificationChannelInput {
channel: NotificationChannel!
}
input AccountEnableNotificationCategoryInput {
category: NotificationCategory!
channel: NotificationChannel
}
input AccountEnableNotificationChannelInput {
channel: NotificationChannel!
}
enum AccountLevel {
ONE
TWO
ZERO
}
interface AccountLimit {
"""
The rolling time interval in seconds that the limits would apply for.
"""
interval: Seconds
"""
The amount of cents remaining below the limit for the current 24 hour period.
"""
remainingLimit: CentAmount
"""
The current maximum limit for a given 24 hour period.
"""
totalLimit: CentAmount!
}
type AccountLimits {
"""
Limits for converting between currencies among a account's own wallets.
"""
convert: [AccountLimit!]!
"""
Limits for sending to other internal accounts.
"""
internalSend: [AccountLimit!]!
"""
Limits for withdrawing to external onchain or lightning destinations.
"""
withdrawal: [AccountLimit!]!
}
input AccountUpdateDefaultWalletIdInput {
walletId: WalletId!
}
type AccountUpdateDefaultWalletIdPayload {
account: ConsumerAccount
errors: [Error!]!
}
input AccountUpdateDisplayCurrencyInput {
currency: DisplayCurrency!
}
type AccountUpdateDisplayCurrencyPayload {
account: ConsumerAccount
errors: [Error!]!
}
type AccountUpdateNotificationSettingsPayload {
account: ConsumerAccount
errors: [Error!]!
}
"""
An Opaque Bearer token
"""
scalar AuthToken
type AuthTokenPayload {
authToken: AuthToken
errors: [Error!]!
totpRequired: Boolean
}
"""
A wallet belonging to an account which contains a BTC balance and a list of transactions.
"""
type BTCWallet implements Wallet {
accountId: ID!
"""
A balance stored in BTC.
"""
balance: SignedAmount!
id: ID!
invoiceByPaymentHash(paymentHash: PaymentHash!): Invoice!
"""
A list of all invoices associated with walletIds optionally passed.
"""
invoices(
"""
Returns the items in the list that come after the specified cursor.
"""
after: String
"""
Returns the items in the list that come before the specified cursor.
"""
before: String
"""
Returns the first n items from the list.
"""
first: Int
"""
Returns the last n items from the list.
"""
last: Int
): InvoiceConnection
"""
An unconfirmed incoming onchain balance.
"""
pendingIncomingBalance: SignedAmount!
pendingIncomingTransactions: [Transaction!]!
pendingIncomingTransactionsByAddress(
"""
Returns the items that include this address.
"""
address: OnChainAddress!
): [Transaction!]!
transactionById(transactionId: ID!): Transaction!
"""
A list of BTC transactions associated with this wallet.
"""
transactions(
"""
Returns the items in the list that come after the specified cursor.
"""
after: String
"""
Returns the items in the list that come before the specified cursor.
"""
before: String
"""
Returns the first n items from the list.
"""
first: Int
"""
Returns the last n items from the list.
"""
last: Int
): TransactionConnection
transactionsByAddress(
"""
Returns the items that include this address.
"""
address: OnChainAddress!
"""
Returns the items in the list that come after the specified cursor.
"""
after: String
"""
Returns the items in the list that come before the specified cursor.
"""
before: String
"""
Returns the first n items from the list.
"""
first: Int
"""
Returns the last n items from the list.
"""
last: Int
): TransactionConnection
transactionsByPaymentHash(paymentHash: PaymentHash!): [Transaction!]!
walletCurrency: WalletCurrency!
}
type BuildInformation {
commitHash: String
helmRevision: Int
}
type CallbackEndpoint {
id: EndpointId!
url: EndpointUrl!
}
input CallbackEndpointAddInput {
"""
callback endpoint to be called
"""
url: EndpointUrl!
}
type CallbackEndpointAddPayload {
errors: [Error!]!
id: EndpointId
}
input CallbackEndpointDeleteInput {
id: EndpointId!
}
type CaptchaCreateChallengePayload {
errors: [Error!]!
result: CaptchaCreateChallengeResult
}
type CaptchaCreateChallengeResult {
challengeCode: String!
failbackMode: Boolean!
id: String!
newCaptcha: Boolean!
}
input CaptchaRequestAuthCodeInput {
challengeCode: String!
channel: PhoneCodeChannelType
phone: Phone!
secCode: String!
validationCode: String!
}
"""
(Positive) Cent amount (1/100 of a dollar)
"""
scalar CentAmount
type CentAmountPayload {
amount: CentAmount
errors: [Error!]!
}
type ConsumerAccount implements Account {
callbackEndpoints: [CallbackEndpoint!]!
"""
return CSV stream, base64 encoded, of the list of transactions in the wallet
"""
csvTransactions(walletIds: [WalletId!]!): String!
defaultWallet: PublicWallet!
defaultWalletId: WalletId!
displayCurrency: DisplayCurrency!
id: ID!
"""
A list of all invoices associated with walletIds optionally passed.
"""
invoices(
"""
Returns the items in the list that come after the specified cursor.
"""
after: String
"""
Returns the items in the list that come before the specified cursor.
"""
before: String
"""
Returns the first n items from the list.
"""
first: Int
"""
Returns the last n items from the list.
"""
last: Int
walletIds: [WalletId]
): InvoiceConnection
level: AccountLevel!
limits: AccountLimits!
notificationSettings: NotificationSettings!
pendingIncomingTransactions(walletIds: [WalletId]): [Transaction!]!
"""
List the quiz questions of the consumer account
"""
quiz: [Quiz!]!
realtimePrice: RealtimePrice!
"""
A list of all transactions associated with walletIds optionally passed.
"""
transactions(
"""
Returns the items in the list that come after the specified cursor.
"""
after: String
"""
Returns the items in the list that come before the specified cursor.
"""
before: String
"""
Returns the first n items from the list.
"""
first: Int
"""
Returns the last n items from the list.
"""
last: Int
walletIds: [WalletId]
): TransactionConnection
walletById(walletId: WalletId!): Wallet!
wallets: [Wallet!]!
}
"""
An alias name that a user can set for a wallet (with which they have transactions)
"""
scalar ContactAlias
type Coordinates {
latitude: Float!
longitude: Float!
}
type Country {
id: CountryCode!
supportedAuthChannels: [PhoneCodeChannelType!]!
}
"""
A CCA2 country code (ex US, FR, etc)
"""
scalar CountryCode
type Currency {
flag: String!
fractionDigits: Int!
id: ID!
name: String!
symbol: String!
}
type DepositFeesInformation {
minBankFee: String!
"""
below this amount minBankFee will be charged
"""
minBankFeeThreshold: String!
"""
ratio to charge as basis points above minBankFeeThreshold amount
"""
ratio: String!
}
input DeviceNotificationTokenCreateInput {
deviceToken: String!
}
"""
Display currency of an account
"""
scalar DisplayCurrency
type Email {
address: EmailAddress
verified: Boolean
}
"""
Email address
"""
scalar EmailAddress
"""
An id to be passed between registrationInitiate and registrationValidate for confirming email
"""
scalar EmailRegistrationId
scalar EndpointId
"""
Url that will be fetched on events for the account
"""
scalar EndpointUrl
interface Error {
code: String
message: String!
path: [String]
}
enum ExchangeCurrencyUnit {
BTCSAT
USDCENT
}
"""
Feedback shared with our user
"""
scalar Feedback
input FeedbackSubmitInput {
feedback: Feedback!
}
type FeesInformation {
deposit: DepositFeesInformation!
}
"""
Provides global settings for the application which might have an impact for the user.
"""
type Globals {
buildInformation: BuildInformation!
feesInformation: FeesInformation!
"""
The domain name for lightning addresses accepted by this Galoy instance
"""
lightningAddressDomain: String!
lightningAddressDomainAliases: [String!]!
"""
Which network (mainnet, testnet, regtest, signet) this instance is running on.
"""
network: Network!
"""
A list of public keys for the running lightning nodes.
This can be used to know if an invoice belongs to one of our nodes.
"""
nodesIds: [String!]!
"""
A list of countries and their supported auth channels
"""
supportedCountries: [Country!]!
}
type GraphQLApplicationError implements Error {
code: String
message: String!
path: [String]
}
"""
Hex-encoded string of 32 bytes
"""
scalar Hex32Bytes
union InitiationVia =
InitiationViaIntraLedger
| InitiationViaLn
| InitiationViaOnChain
type InitiationViaIntraLedger {
counterPartyUsername: Username
counterPartyWalletId: WalletId
}
type InitiationViaLn {
paymentHash: PaymentHash!
"""
Bolt11 invoice
"""
paymentRequest: LnPaymentRequest!
}
type InitiationViaOnChain {
address: OnChainAddress!
}
input IntraLedgerPaymentSendInput {
"""
Amount in satoshis.
"""
amount: SatAmount!
"""
Optional memo to be attached to the payment.
"""
memo: Memo
recipientWalletId: WalletId!
"""
The wallet ID of the sender.
"""
walletId: WalletId!
}
type IntraLedgerUpdate {
amount: SatAmount! @deprecated(reason: "Deprecated in favor of transaction")
displayCurrencyPerSat: Float!
@deprecated(reason: "Deprecated in favor of transaction")
transaction: Transaction!
txNotificationType: TxNotificationType!
usdPerSat: Float! @deprecated(reason: "updated over displayCurrencyPerSat")
walletId: WalletId! @deprecated(reason: "Deprecated in favor of transaction")
}
input IntraLedgerUsdPaymentSendInput {
"""
Amount in cents.
"""
amount: CentAmount!
"""
Optional memo to be attached to the payment.
"""
memo: Memo
recipientWalletId: WalletId!
"""
The wallet ID of the sender.
"""
walletId: WalletId!
}
"""
A lightning invoice.
"""
interface Invoice {
createdAt: Timestamp!
"""
The payment hash of the lightning invoice.
"""
paymentHash: PaymentHash!
"""
The bolt11 invoice to be paid.
"""
paymentRequest: LnPaymentRequest!
"""
The payment secret of the lightning invoice. This is not the preimage of the payment hash.
"""
paymentSecret: LnPaymentSecret!
"""
The payment status of the invoice.
"""
paymentStatus: InvoicePaymentStatus!
}
"""
A connection to a list of items.
"""
type InvoiceConnection {
"""
A list of edges.
"""
edges: [InvoiceEdge!]
"""
Information to aid in pagination.
"""
pageInfo: PageInfo!
}
"""
An edge in a connection.
"""
type InvoiceEdge {
"""
A cursor for use in pagination
"""
cursor: String!
"""
The item at the end of the edge
"""
node: Invoice!
}
enum InvoicePaymentStatus {
EXPIRED
PAID
PENDING
}
scalar Language
input LnAddressPaymentSendInput {
"""
Amount in satoshis.
"""
amount: SatAmount!
"""
Lightning address to send to.
"""
lnAddress: String!
"""
Wallet ID to send bitcoin from.
"""
walletId: WalletId!
}
type LnInvoice implements Invoice {
createdAt: Timestamp!
paymentHash: PaymentHash!
paymentRequest: LnPaymentRequest!
paymentSecret: LnPaymentSecret!
paymentStatus: InvoicePaymentStatus!
satoshis: SatAmount!
}
input LnInvoiceCreateInput {
"""
Amount in satoshis.
"""
amount: SatAmount!
"""
Optional invoice expiration time in minutes.
"""
expiresIn: Minutes
"""
Optional memo for the lightning invoice.
"""
memo: Memo
"""
Wallet ID for a BTC wallet belonging to the current account.
"""
walletId: WalletId!
}
input LnInvoiceCreateOnBehalfOfRecipientInput {
"""
Amount in satoshis.
"""
amount: SatAmount!
descriptionHash: Hex32Bytes
"""
Optional invoice expiration time in minutes.
"""
expiresIn: Minutes
"""
Optional memo for the lightning invoice.
"""
memo: Memo
"""
Wallet ID for a BTC wallet which belongs to any account.
"""
recipientWalletId: WalletId!
}
input LnInvoiceFeeProbeInput {
paymentRequest: LnPaymentRequest!
walletId: WalletId!
}
type LnInvoicePayload {
errors: [Error!]!
invoice: LnInvoice
}
input LnInvoicePaymentInput {
"""
Optional memo to associate with the lightning invoice.
"""
memo: Memo
"""
Payment request representing the invoice which is being paid.
"""
paymentRequest: LnPaymentRequest!
"""
Wallet ID with sufficient balance to cover amount of invoice. Must belong to the account of the current user.
"""
walletId: WalletId!
}
input LnInvoicePaymentStatusInput {
paymentRequest: LnPaymentRequest!
}
type LnInvoicePaymentStatusPayload {
errors: [Error!]!
status: InvoicePaymentStatus
}
type LnNoAmountInvoice implements Invoice {
createdAt: Timestamp!
paymentHash: PaymentHash!
paymentRequest: LnPaymentRequest!
paymentSecret: LnPaymentSecret!
paymentStatus: InvoicePaymentStatus!
}
input LnNoAmountInvoiceCreateInput {
"""
Optional invoice expiration time in minutes.
"""
expiresIn: Minutes
"""
Optional memo for the lightning invoice.
"""
memo: Memo
"""
ID for either a USD or BTC wallet belonging to the account of the current user.
"""
walletId: WalletId!
}
input LnNoAmountInvoiceCreateOnBehalfOfRecipientInput {
"""
Optional invoice expiration time in minutes.
"""
expiresIn: Minutes
"""
Optional memo for the lightning invoice.
"""
memo: Memo
"""
ID for either a USD or BTC wallet which belongs to the account of any user.
"""
recipientWalletId: WalletId!
}
input LnNoAmountInvoiceFeeProbeInput {
amount: SatAmount!
paymentRequest: LnPaymentRequest!
walletId: WalletId!
}
type LnNoAmountInvoicePayload {
errors: [Error!]!
invoice: LnNoAmountInvoice
}
input LnNoAmountInvoicePaymentInput {
"""
Amount to pay in satoshis.
"""
amount: SatAmount!
"""
Optional memo to associate with the lightning invoice.
"""
memo: Memo
"""
Payment request representing the invoice which is being paid.
"""
paymentRequest: LnPaymentRequest!
"""
Wallet ID with sufficient balance to cover amount defined in mutation request. Must belong to the account of the current user.
"""
walletId: WalletId!
}
input LnNoAmountUsdInvoiceFeeProbeInput {
amount: CentAmount!
paymentRequest: LnPaymentRequest!
walletId: WalletId!
}
input LnNoAmountUsdInvoicePaymentInput {
"""
Amount to pay in USD cents.
"""
amount: CentAmount!
"""
Optional memo to associate with the lightning invoice.
"""
memo: Memo
"""
Payment request representing the invoice which is being paid.
"""
paymentRequest: LnPaymentRequest!
"""
Wallet ID with sufficient balance to cover amount defined in mutation request. Must belong to the account of the current user.
"""
walletId: WalletId!
}
scalar LnPaymentPreImage
"""
BOLT11 lightning invoice payment request with the amount included
"""
scalar LnPaymentRequest
scalar LnPaymentSecret
type LnUpdate {
paymentHash: PaymentHash!
@deprecated(reason: "Deprecated in favor of transaction")
status: InvoicePaymentStatus!
transaction: Transaction!
walletId: WalletId! @deprecated(reason: "Deprecated in favor of transaction")
}
input LnUsdInvoiceBtcDenominatedCreateOnBehalfOfRecipientInput {
"""
Amount in satoshis.
"""
amount: SatAmount!
descriptionHash: Hex32Bytes
"""
Optional invoice expiration time in minutes.
"""
expiresIn: Minutes
"""
Optional memo for the lightning invoice. Acts as a note to the recipient.
"""
memo: Memo
"""
Wallet ID for a USD wallet which belongs to the account of any user.
"""
recipientWalletId: WalletId!
}
input LnUsdInvoiceCreateInput {
"""
Amount in USD cents.
"""
amount: CentAmount!
"""
Optional invoice expiration time in minutes.
"""
expiresIn: Minutes
"""
Optional memo for the lightning invoice.
"""
memo: Memo
"""
Wallet ID for a USD wallet belonging to the current user.
"""
walletId: WalletId!
}
input LnUsdInvoiceCreateOnBehalfOfRecipientInput {
"""
Amount in USD cents.
"""
amount: CentAmount!
descriptionHash: Hex32Bytes
"""
Optional invoice expiration time in minutes.
"""
expiresIn: Minutes
"""
Optional memo for the lightning invoice. Acts as a note to the recipient.
"""
memo: Memo
"""
Wallet ID for a USD wallet which belongs to the account of any user.
"""
recipientWalletId: WalletId!
}
input LnUsdInvoiceFeeProbeInput {
paymentRequest: LnPaymentRequest!
walletId: WalletId!
}
input LnurlPaymentSendInput {
"""
Amount in satoshis.
"""
amount: SatAmount!
"""
Lnurl string to send to.
"""
lnurl: String!
"""
Wallet ID to send bitcoin from.
"""
walletId: WalletId!
}
type MapInfo {
coordinates: Coordinates!
title: String!
}
type MapMarker {
mapInfo: MapInfo!
username: Username
}
"""
Text field in a lightning payment transaction
"""
scalar Memo
"""
(Positive) amount of minutes
"""
scalar Minutes
type MobileVersions {
currentSupported: Int!
minSupported: Int!
platform: String!
}
type Mutation {
accountDelete: AccountDeletePayload!
accountDisableNotificationCategory(
input: AccountDisableNotificationCategoryInput!
): AccountUpdateNotificationSettingsPayload!
accountDisableNotificationChannel(
input: AccountDisableNotificationChannelInput!
): AccountUpdateNotificationSettingsPayload!
accountEnableNotificationCategory(
input: AccountEnableNotificationCategoryInput!
): AccountUpdateNotificationSettingsPayload!
accountEnableNotificationChannel(
input: AccountEnableNotificationChannelInput!
): AccountUpdateNotificationSettingsPayload!
accountUpdateDefaultWalletId(
input: AccountUpdateDefaultWalletIdInput!
): AccountUpdateDefaultWalletIdPayload!
accountUpdateDisplayCurrency(
input: AccountUpdateDisplayCurrencyInput!
): AccountUpdateDisplayCurrencyPayload!
callbackEndpointAdd(
input: CallbackEndpointAddInput!
): CallbackEndpointAddPayload!
callbackEndpointDelete(input: CallbackEndpointDeleteInput!): SuccessPayload!
captchaCreateChallenge: CaptchaCreateChallengePayload!
captchaRequestAuthCode(input: CaptchaRequestAuthCodeInput!): SuccessPayload!
deviceNotificationTokenCreate(
input: DeviceNotificationTokenCreateInput!
): SuccessPayload!
feedbackSubmit(input: FeedbackSubmitInput!): SuccessPayload!
"""
Actions a payment which is internal to the ledger e.g. it does
not use onchain/lightning. Returns payment status (success,
failed, pending, already_paid).
"""
intraLedgerPaymentSend(
input: IntraLedgerPaymentSendInput!
): PaymentSendPayload!
"""
Actions a payment which is internal to the ledger e.g. it does
not use onchain/lightning. Returns payment status (success,
failed, pending, already_paid).
"""
intraLedgerUsdPaymentSend(
input: IntraLedgerUsdPaymentSendInput!
): PaymentSendPayload!
"""
Sends a payment to a lightning address.
"""
lnAddressPaymentSend(input: LnAddressPaymentSendInput!): PaymentSendPayload!
"""
Returns a lightning invoice for an associated wallet.
When invoice is paid the value will be credited to a BTC wallet.
Expires after 'expiresIn' or 24 hours.
"""
lnInvoiceCreate(input: LnInvoiceCreateInput!): LnInvoicePayload!
"""
Returns a lightning invoice for an associated wallet.
When invoice is paid the value will be credited to a BTC wallet.
Expires after 'expiresIn' or 24 hours.
"""
lnInvoiceCreateOnBehalfOfRecipient(
input: LnInvoiceCreateOnBehalfOfRecipientInput!
): LnInvoicePayload!
lnInvoiceFeeProbe(input: LnInvoiceFeeProbeInput!): SatAmountPayload!
"""
Pay a lightning invoice using a balance from a wallet which is owned by the account of the current user.
Provided wallet can be USD or BTC and must have sufficient balance to cover amount in lightning invoice.
Returns payment status (success, failed, pending, already_paid).
"""
lnInvoicePaymentSend(input: LnInvoicePaymentInput!): PaymentSendPayload!
"""
Returns a lightning invoice for an associated wallet.
Can be used to receive any supported currency value (currently USD or BTC).
Expires after 'expiresIn' or 24 hours for BTC invoices or 5 minutes for USD invoices.
"""
lnNoAmountInvoiceCreate(
input: LnNoAmountInvoiceCreateInput!
): LnNoAmountInvoicePayload!
"""
Returns a lightning invoice for an associated wallet.
Can be used to receive any supported currency value (currently USD or BTC).
Expires after 'expiresIn' or 24 hours for BTC invoices or 5 minutes for USD invoices.
"""
lnNoAmountInvoiceCreateOnBehalfOfRecipient(
input: LnNoAmountInvoiceCreateOnBehalfOfRecipientInput!
): LnNoAmountInvoicePayload!
lnNoAmountInvoiceFeeProbe(
input: LnNoAmountInvoiceFeeProbeInput!
): SatAmountPayload!
"""
Pay a lightning invoice using a balance from a wallet which is owned by the account of the current user.
Provided wallet must be BTC and must have sufficient balance to cover amount specified in mutation request.
Returns payment status (success, failed, pending, already_paid).
"""
lnNoAmountInvoicePaymentSend(
input: LnNoAmountInvoicePaymentInput!
): PaymentSendPayload!
lnNoAmountUsdInvoiceFeeProbe(
input: LnNoAmountUsdInvoiceFeeProbeInput!
): CentAmountPayload!
"""
Pay a lightning invoice using a balance from a wallet which is owned by the account of the current user.
Provided wallet must be USD and have sufficient balance to cover amount specified in mutation request.
Returns payment status (success, failed, pending, already_paid).
"""
lnNoAmountUsdInvoicePaymentSend(
input: LnNoAmountUsdInvoicePaymentInput!
): PaymentSendPayload!
"""
Returns a lightning invoice denominated in satoshis for an associated wallet.
When invoice is paid the equivalent value at invoice creation will be credited to a USD wallet.
Expires after 'expiresIn' or 5 minutes (short expiry time because there is a USD/BTC exchange rate
associated with the amount).
"""
lnUsdInvoiceBtcDenominatedCreateOnBehalfOfRecipient(
input: LnUsdInvoiceBtcDenominatedCreateOnBehalfOfRecipientInput!
): LnInvoicePayload!
"""
Returns a lightning invoice denominated in satoshis for an associated wallet.
When invoice is paid the equivalent value at invoice creation will be credited to a USD wallet.
Expires after 'expiresIn' or 5 minutes (short expiry time because there is a USD/BTC exchange rate
associated with the amount).
"""
lnUsdInvoiceCreate(input: LnUsdInvoiceCreateInput!): LnInvoicePayload!
"""
Returns a lightning invoice denominated in satoshis for an associated wallet.
When invoice is paid the equivalent value at invoice creation will be credited to a USD wallet.
Expires after 'expiresIn' or 5 minutes (short expiry time because there is a USD/BTC exchange rate
associated with the amount).
"""
lnUsdInvoiceCreateOnBehalfOfRecipient(
input: LnUsdInvoiceCreateOnBehalfOfRecipientInput!
): LnInvoicePayload!
lnUsdInvoiceFeeProbe(input: LnUsdInvoiceFeeProbeInput!): SatAmountPayload!
"""
Sends a payment to a lightning address.
"""
lnurlPaymentSend(input: LnurlPaymentSendInput!): PaymentSendPayload!
onChainAddressCreate(
input: OnChainAddressCreateInput!
): OnChainAddressPayload!
onChainAddressCurrent(
input: OnChainAddressCurrentInput!
): OnChainAddressPayload!
onChainPaymentSend(input: OnChainPaymentSendInput!): PaymentSendPayload!
onChainPaymentSendAll(input: OnChainPaymentSendAllInput!): PaymentSendPayload!
onChainUsdPaymentSend(input: OnChainUsdPaymentSendInput!): PaymentSendPayload!
onChainUsdPaymentSendAsBtcDenominated(
input: OnChainUsdPaymentSendAsBtcDenominatedInput!
): PaymentSendPayload!
quizClaim(input: QuizClaimInput!): QuizClaimPayload!
quizCompleted(input: QuizCompletedInput!): QuizCompletedPayload!
@deprecated(reason: "Use quizClaim instead")
userContactUpdateAlias(
input: UserContactUpdateAliasInput!
): UserContactUpdateAliasPayload!
@deprecated(reason: "will be moved to AccountContact")
userEmailDelete: UserEmailDeletePayload!
userEmailRegistrationInitiate(
input: UserEmailRegistrationInitiateInput!
): UserEmailRegistrationInitiatePayload!
userEmailRegistrationValidate(
input: UserEmailRegistrationValidateInput!
): UserEmailRegistrationValidatePayload!
userLogin(input: UserLoginInput!): AuthTokenPayload!
userLoginUpgrade(input: UserLoginUpgradeInput!): UpgradePayload!
userLogout(input: UserLogoutInput): SuccessPayload!
userPhoneDelete: UserPhoneDeletePayload!
userPhoneRegistrationInitiate(
input: UserPhoneRegistrationInitiateInput!
): SuccessPayload!
userPhoneRegistrationValidate(
input: UserPhoneRegistrationValidateInput!
): UserPhoneRegistrationValidatePayload!
userTotpDelete: UserTotpDeletePayload!
userTotpRegistrationInitiate: UserTotpRegistrationInitiatePayload!
userTotpRegistrationValidate(
input: UserTotpRegistrationValidateInput!
): UserTotpRegistrationValidatePayload!
userUpdateLanguage(
input: UserUpdateLanguageInput!
): UserUpdateLanguagePayload!
userUpdateUsername(
input: UserUpdateUsernameInput!
): UserUpdateUsernamePayload!
@deprecated(
reason: "Username will be moved to @Handle in Accounts. Also SetUsername naming should be used instead of UpdateUsername to reflect the idempotency of Handles"
)
}
type MyUpdatesPayload {
errors: [Error!]!
me: User
update: UserUpdate
}
enum Network {
mainnet
regtest
signet
testnet
}
scalar NotificationCategory
enum NotificationChannel {
PUSH
}
type NotificationChannelSettings {
disabledCategories: [NotificationCategory!]!
enabled: Boolean!
}
type NotificationSettings {
push: NotificationChannelSettings!
}
"""
An address for an on-chain bitcoin destination
"""
scalar OnChainAddress
input OnChainAddressCreateInput {
walletId: WalletId!
}
input OnChainAddressCurrentInput {
walletId: WalletId!
}
type OnChainAddressPayload {
address: OnChainAddress
errors: [Error!]!
}
input OnChainPaymentSendAllInput {
address: OnChainAddress!
memo: Memo
speed: PayoutSpeed! = FAST
walletId: WalletId!
}
input OnChainPaymentSendInput {
address: OnChainAddress!
amount: SatAmount!
memo: Memo
speed: PayoutSpeed! = FAST
walletId: WalletId!
}
type OnChainTxFee {
amount: SatAmount!
}
scalar OnChainTxHash
type OnChainUpdate {
amount: SatAmount! @deprecated(reason: "Deprecated in favor of transaction")
displayCurrencyPerSat: Float!
@deprecated(reason: "Deprecated in favor of transaction")
transaction: Transaction!
txHash: OnChainTxHash!
@deprecated(reason: "Deprecated in favor of transaction")
txNotificationType: TxNotificationType!
usdPerSat: Float! @deprecated(reason: "updated over displayCurrencyPerSat")
walletId: WalletId! @deprecated(reason: "Deprecated in favor of transaction")
}
input OnChainUsdPaymentSendAsBtcDenominatedInput {
address: OnChainAddress!
amount: SatAmount!
memo: Memo
speed: PayoutSpeed! = FAST
walletId: WalletId!
}
input OnChainUsdPaymentSendInput {
address: OnChainAddress!
amount: CentAmount!
memo: Memo
speed: PayoutSpeed! = FAST
walletId: WalletId!
}
type OnChainUsdTxFee {
amount: CentAmount!
}
type OneDayAccountLimit implements AccountLimit {
"""
The rolling time interval value in seconds for the current 24 hour period.
"""
interval: Seconds
"""
The amount of cents remaining below the limit for the current 24 hour period.
"""
remainingLimit: CentAmount
"""
The current maximum limit for a given 24 hour period.
"""
totalLimit: CentAmount!
}
"""
An authentication code valid for a single use
"""
scalar OneTimeAuthCode
"""
Information about pagination in a connection.
"""
type PageInfo {
"""
When paginating forwards, the cursor to continue.
"""
endCursor: String
"""
When paginating forwards, are there more items?
"""
hasNextPage: Boolean!
"""
When paginating backwards, are there more items?
"""
hasPreviousPage: Boolean!
"""
When paginating backwards, the cursor to continue.
"""
startCursor: String
}
scalar PaymentHash
type PaymentSendPayload {
errors: [Error!]!
status: PaymentSendResult
transaction: Transaction
}
enum PaymentSendResult {
ALREADY_PAID
FAILURE
PENDING
SUCCESS
}
enum PayoutSpeed {
FAST
}
"""
Phone number which includes country code
"""
scalar Phone
enum PhoneCodeChannelType {
SMS
WHATSAPP
}
"""
Price amount expressed in base/offset. To calculate, use: `base / 10^offset`
"""
type Price {
base: SafeInt!
currencyUnit: String!
formattedAmount: String!
offset: Int!
}
"""
The range for the X axis in the BTC price graph
"""
enum PriceGraphRange {
FIVE_YEARS
ONE_DAY
ONE_MONTH
ONE_WEEK
ONE_YEAR
}
input PriceInput {
amount: SatAmount!
amountCurrencyUnit: ExchangeCurrencyUnit!
priceCurrencyUnit: ExchangeCurrencyUnit!
}
interface PriceInterface {
base: SafeInt!
currencyUnit: String! @deprecated(reason: "Deprecated due to type renaming")
offset: Int!
}
"""
Price of 1 sat in base/offset. To calculate, use: `base / 10^offset`
"""
type PriceOfOneSatInMinorUnit implements PriceInterface {
base: SafeInt!
currencyUnit: String! @deprecated(reason: "Deprecated due to type renaming")
offset: Int!
}
"""
Price of 1 sat or 1 usd cent in base/offset. To calculate, use: `base / 10^offset`
"""
type PriceOfOneSettlementMinorUnitInDisplayMinorUnit implements PriceInterface {
base: SafeInt!
currencyUnit: String! @deprecated(reason: "Deprecated due to type renaming")
formattedAmount: String!
@deprecated(reason: "Deprecated please use `base / 10^offset`")
offset: Int!
}
"""
Price of 1 usd cent in base/offset. To calculate, use: `base / 10^offset`
"""
type PriceOfOneUsdCentInMinorUnit implements PriceInterface {
base: SafeInt!
currencyUnit: String! @deprecated(reason: "Deprecated due to type renaming")
offset: Int!
}
type PricePayload {
errors: [Error!]!
price: Price
}
type PricePoint {
price: Price!
"""
Unix timestamp (number of seconds elapsed since January 1, 1970 00:00:00 UTC)
"""
timestamp: Timestamp!
}
"""
A public view of a generic wallet which stores value in one of our supported currencies.
"""
type PublicWallet {
currency: WalletCurrency!
id: ID!
walletCurrency: WalletCurrency!
@deprecated(reason: "Shifting property to 'currency'")
}
type Query {
accountDefaultWallet(
username: Username!
walletCurrency: WalletCurrency
): PublicWallet!
btcPriceList(range: PriceGraphRange!): [PricePoint]
businessMapMarkers: [MapMarker]
currencyList: [Currency!]!
globals: Globals
lnInvoicePaymentStatus(
input: LnInvoicePaymentStatusInput!
): LnInvoicePaymentStatusPayload!
me: User
mobileVersions: [MobileVersions]
onChainTxFee(
address: OnChainAddress!
amount: SatAmount!
speed: PayoutSpeed! = FAST
walletId: WalletId!
): OnChainTxFee!
onChainUsdTxFee(
address: OnChainAddress!
amount: CentAmount!
speed: PayoutSpeed! = FAST
walletId: WalletId!
): OnChainUsdTxFee!
onChainUsdTxFeeAsBtcDenominated(
address: OnChainAddress!
amount: SatAmount!
speed: PayoutSpeed! = FAST
walletId: WalletId!
): OnChainUsdTxFee!
"""
Returns 1 Sat and 1 Usd Cent price for the given currency
"""
realtimePrice(currency: DisplayCurrency = "USD"): RealtimePrice!
userDefaultWalletId(username: Username!): WalletId!
@deprecated(reason: "will be migrated to AccountDefaultWalletId")
usernameAvailable(username: Username!): Boolean
}
type Quiz {
"""
The reward in Satoshis for the quiz question
"""
amount: SatAmount!
completed: Boolean!
id: ID!
notBefore: Timestamp
}
input QuizClaimInput {
id: ID!
}
type QuizClaimPayload {
errors: [Error!]!
quizzes: [Quiz!]!
}
input QuizCompletedInput {
id: ID!
}
type QuizCompletedPayload {
errors: [Error!]!
quiz: Quiz
}
type RealtimePrice {
btcSatPrice: PriceOfOneSatInMinorUnit!
denominatorCurrency: DisplayCurrency!
id: ID!
"""
Unix timestamp (number of seconds elapsed since January 1, 1970 00:00:00 UTC)
"""
timestamp: Timestamp!
usdCentPrice: PriceOfOneUsdCentInMinorUnit!
}
input RealtimePriceInput {
currency: DisplayCurrency = "USD"
}
type RealtimePricePayload {
errors: [Error!]!
realtimePrice: RealtimePrice
}
"""
Non-fractional signed whole numeric value between -(2^53) + 1 and 2^53 - 1
"""
scalar SafeInt
"""
(Positive) Satoshi amount
"""
scalar SatAmount
type SatAmountPayload {
amount: SatAmount
errors: [Error!]!
}
"""
(Positive) amount of seconds
"""
scalar Seconds
union SettlementVia =
SettlementViaIntraLedger
| SettlementViaLn
| SettlementViaOnChain
type SettlementViaIntraLedger {
"""
Settlement destination: Could be null if the payee does not have a username
"""
counterPartyUsername: Username
counterPartyWalletId: WalletId
preImage: LnPaymentPreImage
}
type SettlementViaLn {
paymentSecret: LnPaymentSecret
@deprecated(
reason: "Shifting property to 'preImage' to improve granularity of the LnPaymentSecret type"
)
preImage: LnPaymentPreImage
}
type SettlementViaOnChain {
arrivalInMempoolEstimatedAt: Timestamp
transactionHash: OnChainTxHash
vout: Int
}
"""
An amount (of a currency) that can be negative (e.g. in a transaction)
"""
scalar SignedAmount
"""
A string amount (of a currency) that can be negative (e.g. in a transaction)
"""
scalar SignedDisplayMajorAmount
type Subscription {
lnInvoicePaymentStatus(
input: LnInvoicePaymentStatusInput!
): LnInvoicePaymentStatusPayload!
myUpdates: MyUpdatesPayload!
price(input: PriceInput!): PricePayload!
"""
Returns the price of 1 satoshi
"""
realtimePrice(input: RealtimePriceInput!): RealtimePricePayload!
}
type SuccessPayload {
errors: [Error!]!
success: Boolean
}
"""
Timestamp field, serialized as Unix time (the number of seconds since the Unix epoch)
"""
scalar Timestamp
"""
A time-based one-time password
"""
scalar TotpCode
"""
An id to be passed between set and verify for confirming totp
"""
scalar TotpRegistrationId
"""
A secret to generate time-based one-time password
"""
scalar TotpSecret
"""
Give details about an individual transaction.
Galoy have a smart routing system which is automatically
settling intraledger when both the payer and payee use the same wallet
therefore it's possible the transactions is being initiated onchain
or with lightning but settled intraledger.
"""
type Transaction {
createdAt: Timestamp!
direction: TxDirection!
id: ID!
"""
From which protocol the payment has been initiated.
"""
initiationVia: InitiationVia!
memo: Memo
"""
Amount of the settlement currency sent or received.
"""
settlementAmount: SignedAmount!
"""
Wallet currency for transaction.
"""
settlementCurrency: WalletCurrency!
settlementDisplayAmount: SignedDisplayMajorAmount!
settlementDisplayCurrency: DisplayCurrency!
settlementDisplayFee: SignedDisplayMajorAmount!
settlementFee: SignedAmount!
"""
Price in WALLETCURRENCY/SETTLEMENTUNIT at time of settlement.
"""
settlementPrice: PriceOfOneSettlementMinorUnitInDisplayMinorUnit!
"""
To which protocol the payment has settled on.
"""
settlementVia: SettlementVia!
status: TxStatus!
}
"""
A connection to a list of items.
"""
type TransactionConnection {
"""
A list of edges.
"""
edges: [TransactionEdge!]
"""
Information to aid in pagination.
"""
pageInfo: PageInfo!
}
"""
An edge in a connection.
"""
type TransactionEdge {
"""
A cursor for use in pagination
"""
cursor: String!
"""
The item at the end of the edge
"""
node: Transaction!
}
enum TxDirection {
RECEIVE
SEND
}
enum TxNotificationType {
IntraLedgerPayment
IntraLedgerReceipt
LigtningReceipt
OnchainPayment
OnchainReceipt
OnchainReceiptPending
}
enum TxStatus {
FAILURE
PENDING
SUCCESS
}
type UpgradePayload {
authToken: AuthToken
errors: [Error!]!
success: Boolean!
}
"""
A wallet belonging to an account which contains a USD balance and a list of transactions.
"""
type UsdWallet implements Wallet {
accountId: ID!
balance: SignedAmount!
id: ID!
invoiceByPaymentHash(paymentHash: PaymentHash!): Invoice!
"""
A list of all invoices associated with walletIds optionally passed.
"""
invoices(
"""
Returns the items in the list that come after the specified cursor.
"""
after: String
"""
Returns the items in the list that come before the specified cursor.
"""
before: String
"""
Returns the first n items from the list.
"""
first: Int
"""
Returns the last n items from the list.
"""
last: Int
): InvoiceConnection
"""
An unconfirmed incoming onchain balance.
"""
pendingIncomingBalance: SignedAmount!
pendingIncomingTransactions: [Transaction!]!
pendingIncomingTransactionsByAddress(
"""
Returns the items that include this address.
"""
address: OnChainAddress!
): [Transaction!]!
transactionById(transactionId: ID!): Transaction!
transactions(
"""
Returns the items in the list that come after the specified cursor.
"""
after: String
"""
Returns the items in the list that come before the specified cursor.
"""
before: String
"""
Returns the first n items from the list.
"""
first: Int
"""
Returns the last n items from the list.
"""
last: Int
): TransactionConnection
transactionsByAddress(
"""
Returns the items that include this address.
"""
address: OnChainAddress!
"""
Returns the items in the list that come after the specified cursor.
"""
after: String
"""
Returns the items in the list that come before the specified cursor.
"""
before: String
"""
Returns the first n items from the list.
"""
first: Int
"""
Returns the last n items from the list.
"""
last: Int
): TransactionConnection
transactionsByPaymentHash(paymentHash: PaymentHash!): [Transaction!]!
walletCurrency: WalletCurrency!
}
type User {
"""
Get single contact details.
Can include the transactions associated with the contact.
"""
contactByUsername(username: Username!): UserContact!
@deprecated(reason: "will be moved to Accounts")
"""
Get full list of contacts.
Can include the transactions associated with each contact.
"""
contacts: [UserContact!]! @deprecated(reason: "will be moved to account")
createdAt: Timestamp!
defaultAccount: Account!
"""
Email address
"""
email: Email
id: ID!
"""
Preferred language for user.
When value is 'default' the intent is to use preferred language from OS settings.
"""
language: Language!
"""
Phone number with international calling code.
"""
phone: Phone
"""
Whether TOTP is enabled for this user.
"""
totpEnabled: Boolean!
"""
Optional immutable user friendly identifier.
"""
username: Username
@deprecated(reason: "will be moved to @Handle in Account and Wallet")
}
type UserContact {
"""
Alias the user can set for this contact.
Only the user can see the alias attached to their contact.
"""
alias: ContactAlias
id: Username!
"""
Paginated list of transactions sent to/from this contact.
"""
transactions(
"""
Returns the items in the list that come after the specified cursor.
"""
after: String
"""
Returns the items in the list that come before the specified cursor.
"""
before: String
"""
Returns the first n items from the list.
"""
first: Int
"""
Returns the last n items from the list.
"""
last: Int
): TransactionConnection
transactionsCount: Int!
"""
Actual identifier of the contact.
"""
username: Username!
}
input UserContactUpdateAliasInput {
alias: ContactAlias!
username: Username!
}
type UserContactUpdateAliasPayload {
contact: UserContact
errors: [Error!]!
}
type UserEmailDeletePayload {
errors: [Error!]!
me: User
}
input UserEmailRegistrationInitiateInput {
email: EmailAddress!
}
type UserEmailRegistrationInitiatePayload {
emailRegistrationId: EmailRegistrationId
errors: [Error!]!
me: User
}
input UserEmailRegistrationValidateInput {
code: OneTimeAuthCode!
emailRegistrationId: EmailRegistrationId!
}
type UserEmailRegistrationValidatePayload {
errors: [Error!]!
me: User
}
input UserLoginInput {
code: OneTimeAuthCode!
phone: Phone!
}
input UserLoginUpgradeInput {
code: OneTimeAuthCode!
phone: Phone!
}
input UserLogoutInput {
deviceToken: String!
}
type UserPhoneDeletePayload {
errors: [Error!]!
me: User
}
input UserPhoneRegistrationInitiateInput {
channel: PhoneCodeChannelType
phone: Phone!
}
input UserPhoneRegistrationValidateInput {
code: OneTimeAuthCode!
phone: Phone!
}
type UserPhoneRegistrationValidatePayload {
errors: [Error!]!
me: User
}
type UserTotpDeletePayload {
errors: [Error!]!
me: User
}
type UserTotpRegistrationInitiatePayload {
errors: [Error!]!
totpRegistrationId: TotpRegistrationId
totpSecret: TotpSecret
}
input UserTotpRegistrationValidateInput {
authToken: AuthToken
totpCode: TotpCode!
totpRegistrationId: TotpRegistrationId!
}
type UserTotpRegistrationValidatePayload {
errors: [Error!]!
me: User
}
union UserUpdate =
IntraLedgerUpdate
| LnUpdate
| OnChainUpdate
| Price
| RealtimePrice
input UserUpdateLanguageInput {
language: Language!
}
type UserUpdateLanguagePayload {
errors: [Error!]!
user: User
}
input UserUpdateUsernameInput {
username: Username!
}
type UserUpdateUsernamePayload {
errors: [Error!]!
user: User
}
"""
Unique identifier of a user
"""
scalar Username
"""
A generic wallet which stores value in one of our supported currencies.
"""
interface Wallet {
accountId: ID!
balance: SignedAmount!
id: ID!
invoiceByPaymentHash(
"""
The lightning invoice with the matching paymentHash belonging to this wallet.
"""
paymentHash: PaymentHash!
): Invoice!
invoices(
"""
Returns the items in the list that come after the specified cursor.
"""
after: String
"""
Returns the items in the list that come before the specified cursor.
"""
before: String
"""
Returns the first n items from the list.
"""
first: Int
"""
Returns the last n items from the list.
"""
last: Int
): InvoiceConnection
pendingIncomingBalance: SignedAmount!
"""
Pending incoming OnChain transactions. When transactions
are confirmed they will receive a new id and be found in the transactions
list. Transactions are ordered anti-chronologically,
ie: the newest transaction will be first
"""
pendingIncomingTransactions: [Transaction!]!
"""
Pending incoming OnChain transactions. When transactions
are confirmed they will receive a new id and be found in the transactions
list. Transactions are ordered anti-chronologically,
ie: the newest transaction will be first
"""
pendingIncomingTransactionsByAddress(
"""
Returns the items that include this address.
"""
address: OnChainAddress!
): [Transaction!]!
transactionById(transactionId: ID!): Transaction!
"""
Transactions are ordered anti-chronologically,
ie: the newest transaction will be first
"""
transactions(
"""
Returns the items in the list that come after the specified cursor.
"""
after: String
"""
Returns the items in the list that come before the specified cursor.
"""
before: String
"""
Returns the first n items from the list.
"""
first: Int
"""
Returns the last n items from the list.
"""
last: Int
): TransactionConnection
"""
Transactions are ordered anti-chronologically,
ie: the newest transaction will be first
"""
transactionsByAddress(
"""
Returns the items that include this address.
"""
address: OnChainAddress!
"""
Returns the items in the list that come after the specified cursor.
"""
after: String
"""
Returns the items in the list that come before the specified cursor.
"""
before: String
"""
Returns the first n items from the list.
"""
first: Int
"""
Returns the last n items from the list.
"""
last: Int
): TransactionConnection
"""
Returns the transactions that include this paymentHash. This should be a list of size one for a received lightning payment. This can be more that one transaction for a sent lightning payment.
"""
transactionsByPaymentHash(
"""
The payment hash of the lightning invoice paid in this transaction.
"""
paymentHash: PaymentHash!
): [Transaction!]!
walletCurrency: WalletCurrency!
}
enum WalletCurrency {
BTC
USD
}
"""
Unique identifier of a wallet
"""
scalar WalletId