diff --git a/.changeset/legal-pots-boil.md b/.changeset/legal-pots-boil.md new file mode 100644 index 00000000000..6762f9f311f --- /dev/null +++ b/.changeset/legal-pots-boil.md @@ -0,0 +1,5 @@ +--- +"thirdweb": patch +--- + +expose setServiceKey diff --git a/packages/thirdweb/src/exports/utils.ts b/packages/thirdweb/src/exports/utils.ts index 4a72043ff30..2bcdd6527c4 100644 --- a/packages/thirdweb/src/exports/utils.ts +++ b/packages/thirdweb/src/exports/utils.ts @@ -151,7 +151,7 @@ export { } from "viem"; // Useful helpers -export { setThirdwebDomains } from "../utils/domains.js"; +export { setThirdwebDomains, setServiceKey } from "../utils/domains.js"; export { resolvePromisedValue } from "../utils/promise/resolve-promised-value.js"; export { setTransactionDecorator, diff --git a/packages/thirdweb/src/utils/domains.ts b/packages/thirdweb/src/utils/domains.ts index 374b7ebb783..2a94c2ee7f9 100644 --- a/packages/thirdweb/src/utils/domains.ts +++ b/packages/thirdweb/src/utils/domains.ts @@ -90,3 +90,13 @@ export const getThirdwebBaseUrl = (service: keyof DomainOverrides) => { } return `https://${origin}`; }; + +let serviceKey: string | null = null; + +export const setServiceKey = (key: string | null) => { + serviceKey = key; +}; + +export const getServiceKey = () => { + return serviceKey; +}; diff --git a/packages/thirdweb/src/utils/fetch.ts b/packages/thirdweb/src/utils/fetch.ts index a52b104d9ad..f3f7474e939 100644 --- a/packages/thirdweb/src/utils/fetch.ts +++ b/packages/thirdweb/src/utils/fetch.ts @@ -7,6 +7,7 @@ import { detectOS, detectPlatform, } from "./detect-platform.js"; +import { getServiceKey } from "./domains.js"; import { isJWT } from "./jwt/is-jwt.js"; import { IS_DEV } from "./process.js"; @@ -75,6 +76,11 @@ export function getClientFetch(client: ThirdwebClient, ecosystem?: Ecosystem) { for (const [key, value] of getPlatformHeaders()) { (headers as Headers).set(key, value); } + + const serviceKey = getServiceKey(); + if (serviceKey) { + headers.set("x-service-api-key", serviceKey); + } } let controller: AbortController | undefined;