Hosted Portal

Send users into a branded tax experience with a launch URL or one server-side create call.

Option 1: Open a launch URL

Build a URL with your stable user ID, the user's wallets, and optional email, then redirect the browser to it. Awaken creates or reuses the user, starts imports and calculations, and opens the portal automatically.

Use a launch-safe key

A launch URL contains its credential. Use only the key Awaken issued for this browser flow. Never put your server-side partner secret in a URL.

Build the launch URL
export interface Wallet {
address: string;
provider?: string;
}
export interface BuildUrlParams {
userId: string;
wallets?: Wallet[];
apiKey: string;
email?: string;
}
export function buildLaunchUrl(
params: BuildUrlParams,
baseUrl = "https://embed.awaken.tax",
) {
const searchParams = new URLSearchParams({
userId: params.userId,
apiKey: params.apiKey,
});
if (params.wallets?.length) {
searchParams.set("wallets", JSON.stringify(params.wallets));
}
if (params.email) searchParams.set("email", params.email);
return baseUrl + "/launch?" + searchParams.toString();
}

Option 2: Create first, then open the portal

Create the user and attach up to four wallets from your server. When the request succeeds, open https://embed.awaken.tax/portal?code=YOUR_USER_ID. The portal reads the imported data and lets the user request tax forms.

Create the hosted user
curl https://api.awaken.tax/api/crunch \
-H "content-type: application/json" \
-H "x-api-key: $AWAKEN_PARTNER_KEY" \
--data '{"userId":"user-42","email":"user@example.com","wallets":[{"address":"0xabc…","provider":"ethereum"},{"address":"SolanaAddress…","provider":"solana"}]}'

Link wallets with the npm package

For a related signup flow that adds wallets to a new or existing full Awaken account, install @awakentax/crypto-tax. The SDK creates a URL; opening it guides new users through signup and lets existing users add the supplied wallets.

Install
npm install @awakentax/crypto-tax

Create an Awaken wallet link

Initialize the SDK on your server with an issued API key, create the link, and send the returned URL to the user.

typescript
import { CryptoTaxSDK } from "@awakentax/crypto-tax";
import type { CreateLinkRequest } from "@awakentax/crypto-tax";
const cryptoTax = new CryptoTaxSDK({
apiKey: process.env.AWAKEN_API_KEY!,
});
const request: CreateLinkRequest = {
wallets: [
{ address: "0x1234…", name: "Primary wallet" },
{ address: "0xabcd…" },
],
};
const { url, code } = await cryptoTax.createLink(request);
console.log({ url, code });

What users see

The portal can use your partner name, logo, and branding. Users see import and calculation progress, review their tax preview, select a tax year, and request reports without your team building those screens.

United States reports

The embedded report flow is currently intended for US tax reporting. Confirm country eligibility during onboarding.