Skip to main content

TypeAlias.Application

type Application = {
createdAt: string;
domains: string[];
dppSettings: {
actions: {
enabled: boolean;
icon?: string;
id: string;
label?: Partial<Record<"en-US" | "fr-FR", string>>;
url?: string;
}[];
tokens: {
address: string;
name: string;
network: | "EthereumAnvil"
| "BaseSepolia"
| "StarknetDevnet"
| "StarknetSepolia"
| "StarknetMainnet"
| "StellarQuickstart"
| "StellarTestnet"
| "StellarMainnet";
symbol: string;
}[];
};
features: ("loyalty" | "dpp" | "invest" | "agent-wallet")[];
id: string;
loyaltySettings: {
app: {
onboarding: {
bgImageUrl?: string | null;
carousel?: {
images: {
description?: string;
title?: string;
url: string;
}[];
interval: number;
};
fontColor?: string;
qrCodeText?: string;
showTexts?: boolean;
subtitle?: string;
title?: string;
};
pointName?: string | null;
pointSymbol?: string | null;
};
appleWallet?: | {
bgColor?: string;
bgImageUrl?: string | null;
fgColor?: string;
iconUrl: string;
labelColor?: string;
logoUrl: string;
title: string;
}
| null;
currency?: "EUR" | "USD";
currencyToPointRatio?: number;
googleWallet?: | {
bgColor?: string;
bgImageUrl?: string | null;
detailsBody?: string;
detailsHeader?: string;
header: string;
logoUrl: string;
title: string;
}
| null;
pointsConversionThreshold?: number;
pointsConversionThresholdValue?: number;
tokens: {
address: string;
name: string;
network: | "EthereumAnvil"
| "BaseSepolia"
| "StarknetDevnet"
| "StarknetSepolia"
| "StarknetMainnet"
| "StellarQuickstart"
| "StellarTestnet"
| "StellarMainnet";
symbol: string;
}[];
visitsWindowDays?: number;
welcomeBonus?: number;
};
name: string;
organization: {
createdAt: string;
defaultLocale?: "en-US" | "fr-FR" | "es-ES" | "it-IT" | null;
id: string;
logo: string | null;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
quotas: {
activeUsersMonthlyLimit?: number | null;
activeUsersMonthlyUsage: number;
allowedFeatures: ("loyalty" | "dpp" | "invest" | "agent-wallet")[];
allowedNetworks: (
| "EthereumAnvil"
| "BaseSepolia"
| "StarknetDevnet"
| "StarknetSepolia"
| "StarknetMainnet"
| "StellarQuickstart"
| "StellarTestnet"
| "StellarMainnet")[];
allowOverage: boolean;
applicationLimit?: number | null;
applicationUsage: number;
chargebee: {
customerId: string | null;
subscriptionId: string | null;
};
createdAt: string;
dppMonthlyLimit?: number | null;
dppMonthlyUsage: number;
id: string;
updatedAt: string;
};
settings: {
authConfig: {
auth0: | {
enabled: false;
}
| {
clientId: string;
domain: string;
enabled: true;
};
email-otp: | {
enabled: true;
}
| {
enabled: false;
};
google: | {
enabled: true;
}
| {
enabled: false;
};
phone-otp: | {
enabled: true;
}
| {
enabled: false;
};
};
};
slug: string;
};
shopifyShop?: {
createdAt: string;
domain: string;
id: string;
name: string;
network: | "EthereumAnvil"
| "BaseSepolia"
| "StarknetDevnet"
| "StarknetSepolia"
| "StarknetMainnet"
| "StellarQuickstart"
| "StellarTestnet"
| "StellarMainnet";
session?: {
id: string;
};
updatedAt: string;
};
slug: string;
theme: {
bgImageUrl?: string;
customFontUrl?: string;
googleFont?: string;
logoUrl?: string;
mode?: "light" | "dark";
primaryColor?: string;
secondaryColor?: string;
title?: string;
};
updatedAt: string;
websiteUrl?: string;
};

Application configuration and metadata.

Defines an application (tenant) in the Keyban platform, including branding, enabled features, authorized domains, and settings for DPP and loyalty programs.

Type Declaration

NameTypeDefault value
createdAtstring-
domainsstring[]-
dppSettings{ actions: { enabled: boolean; icon?: string; id: string; label?: Partial<Record<"en-US""fr-FR", string>>; url?: string; }[]; tokens: { address: string; name: string; network:
dppSettings.actions{ enabled: boolean; icon?: string; id: string; label?: Partial<Record<"en-US""fr-FR", string>>; url?: string; }[]
dppSettings.tokens{ address: string; name: string; network:"EthereumAnvil"
features("loyalty""dpp"
idstring-
loyaltySettings{ app: { onboarding: { bgImageUrl?: stringnull; carousel?: { images: { description?: string; title?: string; url: string; }[]; interval: number; }; fontColor?: string; qrCodeText?: string; showTexts?: boolean; subtitle?: string; title?: string; }; pointName?: string
loyaltySettings.app{ onboarding: { bgImageUrl?: stringnull; carousel?: { images: { description?: string; title?: string; url: string; }[]; interval: number; }; fontColor?: string; qrCodeText?: string; showTexts?: boolean; subtitle?: string; title?: string; }; pointName?: string
loyaltySettings.app.onboarding{ bgImageUrl?: stringnull; carousel?: { images: { description?: string; title?: string; url: string; }[]; interval: number; }; fontColor?: string; qrCodeText?: string; showTexts?: boolean; subtitle?: string; title?: string; }
loyaltySettings.app.onboarding.bgImageUrl?stringnull
loyaltySettings.app.onboarding.carousel?{ images: { description?: string; title?: string; url: string; }[]; interval: number; }-
loyaltySettings.app.onboarding.carousel.images{ description?: string; title?: string; url: string; }[]-
loyaltySettings.app.onboarding.carousel.intervalnumber-
loyaltySettings.app.onboarding.fontColor?string-
loyaltySettings.app.onboarding.qrCodeText?string-
loyaltySettings.app.onboarding.showTexts?boolean-
loyaltySettings.app.onboarding.subtitle?string-
loyaltySettings.app.onboarding.title?string-
loyaltySettings.app.pointName?stringnull
loyaltySettings.app.pointSymbol?stringnull
loyaltySettings.appleWallet?{ bgColor?: string; bgImageUrl?: string
loyaltySettings.currency?"EUR""USD"
loyaltySettings.currencyToPointRatio?number-
loyaltySettings.googleWallet?{ bgColor?: string; bgImageUrl?: string
loyaltySettings.pointsConversionThreshold?number-
loyaltySettings.pointsConversionThresholdValue?number-
loyaltySettings.tokens{ address: string; name: string; network:"EthereumAnvil"
loyaltySettings.visitsWindowDays?number-
loyaltySettings.welcomeBonus?number-
namestring-
organization{ createdAt: string; defaultLocale?: "en-US""fr-FR"
organization.createdAtstring-
organization.defaultLocale?"en-US""fr-FR"
organization.idstring-
organization.logostringnull
organization.metadata{ [key: string]: unknown; }
organization.namestring-
organization.quotas{ activeUsersMonthlyLimit?: numbernull; activeUsersMonthlyUsage: number; allowedFeatures: ("loyalty"
organization.quotas.activeUsersMonthlyLimit?numbernull
organization.quotas.activeUsersMonthlyUsagenumber-
organization.quotas.allowedFeatures("loyalty""dpp"
organization.quotas.allowedNetworks("EthereumAnvil"
organization.quotas.allowOverageboolean-
organization.quotas.applicationLimit?numbernull
organization.quotas.applicationUsagenumber-
organization.quotas.chargebee{ customerId: stringnull; subscriptionId: string
organization.quotas.chargebee.customerIdstringnull
organization.quotas.chargebee.subscriptionIdstringnull
organization.quotas.createdAtstring-
organization.quotas.dppMonthlyLimit?numbernull
organization.quotas.dppMonthlyUsagenumber-
organization.quotas.idstring-
organization.quotas.updatedAtstring-
organization.settings{ authConfig: { auth0:{ enabled: false; }
organization.settings.authConfig{ auth0:{ enabled: false; }
organization.settings.authConfig.auth0{ enabled: false; }
organization.settings.authConfig.email-otp{ enabled: true; }
organization.settings.authConfig.google{ enabled: true; }
organization.settings.authConfig.phone-otp{ enabled: true; }
organization.slugstring-
shopifyShop?{ createdAt: string; domain: string; id: string; name: string; network:"EthereumAnvil"
shopifyShop.createdAtstring-
shopifyShop.domainstring-
shopifyShop.idstring-
shopifyShop.namestring-
shopifyShop.network"EthereumAnvil"
shopifyShop.session?{ id: string; }-
shopifyShop.session.idstring-
shopifyShop.updatedAtstring-
slugstring-
theme{ bgImageUrl?: string; customFontUrl?: string; googleFont?: string; logoUrl?: string; mode?: "light""dark"; primaryColor?: string; secondaryColor?: string; title?: string; }
theme.bgImageUrl?string-
theme.customFontUrl?string-
theme.googleFont?string-
theme.logoUrl?string-
theme.mode?"light""dark"
theme.primaryColor?string-
theme.secondaryColor?string-
theme.title?string-
updatedAtstring-
websiteUrl?string-