Fix missing cost basis

Find missing acquisition history, choose the safest repair, and verify basis coverage after recalculation.

Find transactions with missing basis

Missing basis usually means Awaken cannot find the original acquisition or an owned-wallet transfer was not linked. Start by locating every affected transaction.

graphql
query MissingBasis($clientId: ID!) {
getClientTransactions(
clientId: $clientId
isMissingBasis: true
includeSummary: true
limit: 100
page: 0
) {
total
costBasisPercent
transactions { id title createdAt provider sourceAccountId }
}
}

Choose the right fix

1. Import the source

If the asset came from another wallet or exchange you own, connect that account so Awaken can use the real acquisition.

2. Link the transfer

If both sides already exist, link them with markInternalTransfer or bridgeTransactions so basis carries across.

3. Set the receive price

When the source cannot be imported, enter the defensible fair-market value for the receipt.

4. Accept zero basis

Use this only when zero basis is intentional; it removes the warning but preserves a $0 acquisition cost.

Set a receive price

fiatValue is a dollar amount, not cents. The example below records $1,250.00 for each selected receipt.

graphql
mutation SetReceivePrice($clientId: ID!, $transactionIds: [ID!]!) {
saveReceivePriceForTransactions(
clientId: $clientId
transactionIds: $transactionIds
fiatValue: 1250.00
) { id }
}

Explicitly accept zero basis

Finish with recalculation

After repairs, run rerunGraph, wait for the active job to clear, and repeat the missing-basis query to confirm coverage improved.

graphql
mutation AcceptZeroBasis($clientId: ID!, $transactionIds: [ID!]!) {
updateMultiTransactionsCostBasis(
clientId: $clientId
transactionIds: $transactionIds
isMissingBasis: false
overrideIsMissingBasis: true
) { id isMissingBasis }
}