USDF and trust
The USDF token.
1 USDF = $1 of compute, redeemable 1:1 for USDG at any time.
On this page
1 USDF = $1 of compute, redeemable 1:1 for USDG at any time. The contract is a stock OpenZeppelin ERC20Wrapper over USDG, with no owner, roles, fee, pause or upgrade path.
The token, read live from the chain:
| Item | Value |
|---|---|
| Contract | |
| Chain | – |
| Wraps | |
| Decimals | 6 decimals |
| Supply | |
| Reserve | |
| Backing ratio | |
| Read at block |
Redemption depends on USDG transfers succeeding: USDG is issued by a regulated issuer that retains pause and freeze powers over its own token.
Buying wraps USDG into the same amount of USDF, in two calls. There is no fee.
| Step | Call | Selector |
|---|---|---|
| 1. Approve | USDG.approve(USDF, amount) | 0x095ea7b3 |
| 2. Wrap | USDF.depositFor(account, amount) | 0x2f4f21e2 |
Or buy on the Buy page.
USDF.withdrawTo(account, amount), selector 0x205c2878, burns USDF and sends the same amount of USDG to account. Redemption is permissionless, and the contract cannot pause it.
Redemption depends on USDG transfers succeeding: USDG is issued by a regulated issuer that retains pause and freeze powers over its own token.
GET /v1/zap/quote prices a swap of ETH or another token into USDF through the USDF/USDG pool. It returns the transactions to sign. No key is needed.
Quote a swap
curl "https://api.usdf.fi/v1/zap/quote?token=eth&amount=<wei>&recipient=<your wallet>"
Its limits, read live:
| Applies to | Scope | Limit |
|---|---|---|
- Pay for one request at a time, with no account. See Pay per request.
- Fund an API balance with it. See Fund the balance.
- Withdraw unspent balance back to your wallet, as USDF. The minimum is 0.10 USDF.
Set part of your balance aside behind a claim link. The first signed-in account to open it is credited. Unclaimed funds return to you at expiry. With no code, send one on Send USDF.
Create a link
curl -X POST https://api.usdf.fi/v1/links \
-H "Authorization: Bearer $SESSION" \
-H "Content-Type: application/json" \
-d '{"units": "5000000", "memo": "For the hackathon", "expires_in_days": 7}'Response, 201
{
"token": "<token, shown once>",
"claim_path": "/claim/<token>",
"claim_url": "…",
"link": { … },
"balance": { … },
"held": { … }
}units is at least 0.01 USDF. memo is up to 140 characters. expires_in_days is 1 to 30 days. The token is shown once; only its hash is kept.
| Endpoint | What it does |
|---|---|
GET /v1/links | The links you sent or claimed. |
GET /v1/links/{token} | A link's amount, memo and status. Public. |
POST /v1/links/{token}/claim | Claims it into your balance. Session. |
POST /v1/links/{id}/cancel | Cancels an unclaimed link you sent. |
GET /v1/links/stats | How many links were created, claimed and returned. Public. |
USDF Rewards: holding USDF earns 100% of the Paxos reserve rewards on the USDG backing USDF (Foundry keeps none) plus 50% of network revenue, paid to holders weekly in USDF, by balance and time held, with no staking or lock; pools, exchanges and contracts are excluded. See Earning. sUSDF, below, is the optional higher-rate version and is coming.
sUSDF is the USDF vault: it earns a share of what the gateway makes on every request. sUSDF is a standard ERC-4626 vault over USDF: you deposit USDF, receive sUSDF shares, and each share redeems for more USDF as revenue comes in.
- After each settlement batch is confirmed onchain, a share of that batch's spread goes into the vault as USDF. The spread is what customers paid, less what the upstream providers charged and the referral credits.
- Nothing is minted. The yield is USDF the gateway earned, added to the vault's assets, so the USDF each share redeems for goes up with every deposit.
- Withdraw at any time by redeeming your shares for USDF. There is no fee.
- USDF in an API balance does not earn: it is held for compute. To earn, hold sUSDF in your own wallet.
The vault, read live from GET /v1/susdf:
| Item | Value |
|---|---|
| Step | Call |
|---|---|
| 1. Approve | USDF.approve(sUSDF, amount) |
| 2. Deposit | sUSDF.deposit(amount, receiver) |
| 3. Withdraw | sUSDF.redeem(shares, receiver, owner) |
Every revenue deposit into the vault, with its settlement batch and transaction, is listed on Earn.
Holder windows
Every USDF holder earns USDF Rewards each week: a share of the week's network revenue and the reserve rewards' share for holders, split by each holder's USDF balance over the week, exact from every balance change. A wallet's reward is sent to it in USDF and a Foundry account's is credited to its balance; nothing is claimed. Every week's pool is on Earn.
Every USDF is backed by USDG held in the token contract. The figures, read live from GET /v1/reserve:
| Item | Value |
|---|---|
| Endpoint | Returns |
|---|---|
GET /v1/reserve | The reserve, the supply and custody, from the chain. |
GET /v1/reserve/history | Supply and reserve over time, from the token's own logs. |
GET /v1/reserve/attestations/latest, /{YYYY-MM-DD} | One signed attestation per day. |
/tokenlist.json | A token list with USDF. |
/usdf.png | The USDF logo. |
Check it yourself on Transparency and Verify. Every address is on Addresses.
| Compute credits today | USDF | |
|---|---|---|
| Backed by | Nothing | Dollar stablecoins, 1:1 |
| Minted by | Staking another token | Depositing 1 dollar |
| Redeem for dollars | No, burned one way | Yes, at par, any time |
| Reserve | None to check | Public, onchain |
| Earns while you hold | No | Yes, weekly, straight to your wallet, no staking |
| Fees in and out | Charged to buy and to cash out | Zero in, zero out |
| Model prices | Marked up | List price |
| Pays for | Models only | Every model, tool and service |
| Expires | Often, unused credit is lost | Never, unused balance stays yours |
| Account needed | Yes | No, any wallet or agent can pay per request |
Foundry issues USDF, the dollar of the machine economy. Every USDF is backed 1:1 by dollar stablecoins held in the token contract, buys 1 dollar of compute on every listed model and tool at list price, earns weekly while held, and can be redeemed for 1 dollar at any time. No owner, no admin keys, reserve public at usdf.fi/transparency.
- Redemption depends on USDG transfers succeeding: USDG is issued by a regulated issuer that retains pause and freeze powers over its own token.
- Account balances are custodial: USDF that funds an API balance is held in the gateway's wallets until it is spent or withdrawn. Custody is published at
GET /v1/reserve. - The token contract is unmodified OpenZeppelin code. The gateway and this deployment have not had a third-party audit.
- sUSDF's yield is a share of gateway revenue, so it rises and falls with usage and can be zero. The vault has not had a third-party audit.