Swagger

What UGTP is

Move tokens on several chains without making your users hold the chain's own coin to pay for it.

Introduction

What UGTP is

UGTP is one API for moving tokens on several chains without making your users hold the chain's own coin to pay for it.

Normally a wallet cannot send a token until it also holds ETH, AVAX, BNB or whatever that chain charges gas in. Users who hold only a stablecoin are stuck: the balance is there, the transaction is impossible, and the fix — go buy the native coin first — is where most people give up.

UGTP pays that gas for the transaction and takes its cost out of the token being moved. To the user it looks like sending a stablecoin with a stablecoin fee. To you it is three calls: prepare, sign, submit.

Vocabulary

The words this documentation uses

Nine words this documentation leans on. Each one is plain enough to read before your first call.

Gasless

The account pays no native coin. Someone else puts the transaction on chain and recovers the cost from the token being moved. It does not mean free — the fee is real, it is just charged in the asset the user actually holds.

Account

The user's ordinary wallet address. UGTP does not create a second address, a contract wallet or a deposit address: the account IS the address they already have, which is why balances and block-explorer history stay where the user expects.

Operation

One thing the user asked for — a transfer, a swap, a deposit. You prepare it, the user's wallet signs it, you submit it, and it gets an operation id you poll until it is on chain. That id is the only handle you need to keep.

User operation

The standard envelope most chains use for a gasless transaction. It carries what to execute, who authorized it, and who is paying the gas. On the networks that support it, that envelope is what your user signs — you never assemble it yourself, UGTP returns it ready to sign.

Paymaster

The on-chain contract that agrees to pay a user operation's gas and takes its fee from the transferred token in the same transaction. It is why the user needs no native coin, and its address is published so you can verify it.

Rail

How a particular operation reaches the chain. Not every network supports the same mechanism, so UGTP picks one and tells you which — that is the single thing your client has to branch on, and it is why the same integration works everywhere.

Fee token

The token the fee is taken in. Usually the token being moved, so a USDT transfer costs USDT. Each network publishes which tokens it accepts.

Swap

Exchanging one token for another. UGTP quotes a route from LI.FI, which aggregates decentralised exchanges and bridges, then prepares that route as one gasless operation — so a user can swap without holding the native coin either. A swap can stay on one chain or end on another.

Private token

A supported public token wrapped 1:1 into an encrypted form, where the balance and the transferred amount are ciphertext on chain rather than public numbers. The encryption is AvaCloud's Encrypted ERC-20 (eERC), which UGTP runs on Avalanche C-Chain. The user deposits the public token, moves the private one with the amount hidden, and withdraws back whenever they want.

Next

Start here

Three steps, in order, from understanding the model to moving a real token.

  1. 01

    Understand the model

    The account is the user's own address, and the rail decides what they sign. Those two ideas explain every endpoint here.

    Read it →
  2. 02

    Make three read-only calls

    Prove the host, prove your key, and price an operation — without creating or spending anything.

    Read it →
  3. 03

    Move a token

    Prepare, sign, submit, poll. The same four steps carry a transfer, a swap and a private-token operation.

    Read it →