options
The options prop groups behavior switches that don't affect visual styling. Every field is optional.
interface TaxKitOptions {
apiBaseUrl?: string;
mode?: 'production' | 'alpha' | 'mock';
flow?: 'one-way' | 'continuous';
overlayMode?: 'drawer' | 'dialog' | 'responsive';
defaultOpen?: boolean;
hideNavigationBar?: boolean;
hideBackButton?: boolean;
helpLinkUrl?: string;
hostPageUrl?: string;
}
Fields
options.mode'production' | 'alpha' | 'mock'default 'production'Environment selector.
'production'— live CoinTracker backend. Use this in your prod build.'alpha'— pre-release environment for early integration testing. Coordinate with your CoinTracker contact before pointing here.'mock'— skip the backend entirely; the iframe runs with simulated data. Useful for local development without a token-minting flow. See Local development.
options.flow'one-way' | 'continuous'default 'one-way'Which in-app flow the iframe should render.
'one-way'(default) — Coinbase-style one-shot onboarding ending in a final import.'continuous'— Kraken-style flow that keeps the kit available for ongoing sync after the initial onboarding.
Most partners use 'one-way'.
options.overlayMode'drawer' | 'dialog' | 'responsive'default 'drawer'How the kit styles its own internal pop-ups (e.g. the add-connection sheet). This is independent of where the iframe sits — full-screen overlay vs. embedded inline via the container prop.
'drawer'— bottom sheet (mobile-style). Default.'dialog'— centered modal (desktop-style).'responsive'— drawer on mobile viewports, dialog on desktop.
When embedding inline in a small container, 'dialog' usually looks better than a bottom 'drawer'.
options.defaultOpenbooleandefault falseRender the SDK already open on first paint. Use this on dedicated tax pages so users land with the kit open instead of having to click a button first.
This avoids password-manager "Save password?" prompts triggered by the click-then-form-appeared pattern.
options.hideNavigationBarbooleandefault falseHide the iframe's top navigation bar. Useful when your partner shell already provides global navigation and you want the iframe to feel embedded rather than full-screen.
options.hideBackButtonbooleandefault falseHide the back button inside the iframe's navigation bar. The iframe's internal routing also declares per-route hide-back behavior — the provider-level switch is an override on top of that.
options.helpLinkUrlstringURL surfaced as the "Help" link from inside the iframe. Use your partner help-center URL so users get partner-branded support rather than CoinTracker's generic one.
options.hostPageUrlstringParent page URL — only required when the iframe cannot read window.parent.location.href due to cross-origin restrictions. The iframe uses this for OAuth redirect bookkeeping. Most partners don't need to set this.
options.apiBaseUrlstringdefault 'https://embedded.cointracker.com'Origin where the iframe is hosted. Partners almost never need to override the default. Use this only when CoinTracker tells you to (e.g. for region-pinned deployments).
Example
<TaxKitProvider
fetchAccessToken={fetchAccessToken}
options={{
mode: 'production',
flow: 'one-way',
overlayMode: 'responsive',
defaultOpen: false,
helpLinkUrl: 'https://help.your-partner.com/tax',
}}
>
<YourApp />
</TaxKitProvider>