Skip to content

Smart Wallet

Overview

The Smart Contract Wallet Backend (Smart Wallet for short) is a blockchain-agnostic programmable crypto wallet with an extensible feature set packed in a TypeScript library. The library provides a set of APIs to be used by wallet apps.

The key features of the Smart Wallet are:

  • Web2 Login
  • Babel Fees
  • Sponsored Transactions
  • Batch Transactions

Features

Web2 Login

The Smart Contract Wallet Backend enables spending of the wallet's UTxOs using Web2 authentification tokens. This feature enables cryptocurrency wallets without a seed phrase which simplify the user experience for new Web3 users.

First, the wallet backend creates an address that is associated with the user's Web2 account. Then, the user can spend funds from that address by logging in with their Web2 account and proving that they know an active Web2 token that is associated with the account.

Babel Fees

Babel fees are a way to pay for the transaction fees in a different token than the native token of the blockchain.

The aggregation server can accept transaction requests where fees are paid in different tokens. The server can then match it with the known set of Babel fees instructions. This adds extra inputs and outputs to the transaction to balance it out so that the resulting fee is paid in ada

Sponsored transactions are a way for a third party to pay for the transaction fees of a user. The third party can be, for example, a wallet provider, a dApp, or a recipient of a payment.

By submitting instructions to the aggregation server, the third party can sponsor the transaction fees of the user from their own funds. It is possible to set up various conditions for the sponsorship, such as the maximum amount of sponsored fees per transaction, the maximum number of transactions per day, etc.

Batch Transactions

Users of wallets based on the Smart Contract Wallet Backend can create multi-user transactions in a convenient asynchronous way where every user can sign their part of the transaction independently.

The aggregation server can collect the signed parts of the transaction from the users and submit the full transaction to the blockchain once all parts are collected. This feature is useful for atomic swaps, escrow transactions, and other multi-user transactions. It also helps in reducing the transaction fees for the users.