Cryptocurrency gifts and rewards program process


Bakkt clients may provide cryptocurrency gifts or "rewards" to their investors. These programs allow investors to either get real-time cryptocurrency directly from clients through spending and sign-on bonuses or convert client rewards into cryptocurrency. In order to give real-time cryptocurrency gifts to investors, clients must purchase inventory for any planned gifts using the following process.

Core Concepts and Functionality

Clients purchase cryptocurrency inventory for gifting and rewards. The purchased cryptocurrency inventory goes into the client's dedicated Gifting Account at Bakkt. When the client wants to give a gift to an investor, the client posts a request to the Request For Gift endpoint with the relevant gift details. Bakkt allocates the appropriate amount of cryptocurrency to the investor's account from the client's Gift Account. Bakkt manages the gift details for bookkeeping and tax reporting. After sending the gift, Bakkt sends customized email notifications to investors notifying them of the gift. The following workflow describes the process in more detail.


Create Gifting Account and Purchase Inventory

  1. Prior to offering cryptocurrency gifts to investors, clients must inform Bakkt Support of their intentions to provide gifts. Bakkt then creates the client's Gifting Account and provides the account number to the client. Clients can purchase cryptocurrency inventory and electronically transfer it into this account via their platforms.

NOTE: The cryptocurrency in the Gift Account carries market risk. Clients should manage this inventory appropriately and only use the account for cryptocurrency gifts.


Order Entry

Clients can alternatively purchase cryptocurrency for the Gift Account using the Bakkt Orders API or FIX. Clients should contact Bakkt for more information on using the Orders API/FIX to purchase cryptocurrency gift inventory.

Give Real-Time Gifts

  1. In order to give cryptocurrency gifts to investors, clients request the gift using the Request For Gift endpoint and provide the required information. In most cases, clients provide the gifts as notional values. Real-time gifts use the current market "ask" price to determine the amount of cryptocurrency to move from the client's Gift Account to the investor's account.

A real-time gift request begins with validating the request data. If the data validations are successful, the gift request processes, and the response object contains the details of the gifted cryptocurrency along with a COMPLETE status.

NOTE: The price of the cryptocurrency at the time of the gift is likely different than the price of the original cryptocurrency purchase.

If any data validations fail, the request gets a response with a REJECTED status along with a text string explaining the reject reason. The following table provides the most common reasons for gift request rejections.

Error ScenarioRejection/Error Message
Account does not existInvalid account Id
Inventory Account does not existThe Gift Account does not exist for this client
Client submits the same clientTransactionId more than onceDuplicate clientTransactionId; the allocation request already exists
Currency does not existInvalid currency
Inventory unavailable for requested currencyInsufficient inventory to allocate the requested currency
The clientTransactionId does not exists (when retrieving allocation details)Invalid clientTransactionId

Submit Gift Information for Tax Reporting

  1. When an investor receives a gift, Bakkt considers the gift as "deemed income" for tax purposes (e.g., five dollars worth of gifted crypto is taxed as five dollars of income), and the cost basis is zero. Bakkt records the gift details in its bookkeeping processes and includes the gift transactions in the investor's year-end profit/loss statement.

Send Email Notification for the Gift

  1. With Bakkt, clients can brand and customize gifting emails to send to investors upon cryptocurrency gifting. The Bakkt Support team helps clients configure their email notices.

Clients can provide:

  • A logo (or Bakkt can use the logo clients provide for trade confirmation notices)
  • A “call-to-action” link that points investors to clients' platforms for trading
  • An email address to contact if the investor has any questions (or Bakkt can use the email address clients provide for trade confirmation notices)