Whitepaper — Version 1.0
Network: TRON mainnet (chain ID 728126428)
Token: unitUSD (UNIT), TRC-20, 6 decimals
Site: https://unitdefi.com
Editorial note. Items marked ⟨TBD⟩ are facts this document cannot assert on its own — legal entity, jurisdiction, governing terms, and reserve attestation arrangements. They must be filled in by the issuer before this paper is published. Everything else in this document is drawn from the deployed contracts, the application, and the three published security reviews, and can be verified on-chain.
Abstract
UNIT is a US-dollar-denominated token issued on TRON and redeemable one-for-one for USDT. It exists to solve a problem that ordinary stablecoin transfers create and do not solve: a holder of USDT inherits the history of every wallet that touched their balance, and a freeze applied upstream can reach them without warning or recourse.
UNIT addresses this at the only point where it can be addressed cheaply — the moment of issuance. Every deposit is screened before any UNIT is minted. A deposit that fails screening does not enter the protocol; the transaction never happens and the depositor's USDT never leaves their wallet. What circulates as UNIT has therefore passed a check that USDT itself does not apply.
Backing is held one-for-one and deployed into flexible-term positions selected for short-notice recall, so redemption does not depend on unwinding an illiquid book. Holders who wish to may stake UNIT into an ERC-4626 vault and receive a share of protocol proceeds; holders who do not wish to are unaffected. UNIT is self-custodial throughout: it is a TRC-20 balance in the holder's own wallet, transferable on TRON like any other token.
This paper describes the issuance and redemption mechanics, the reserve route, the staking vault, the compliance model, the privileged roles that exist and what they can and cannot do, and the risks a holder takes.
1. Introduction
1.1 The problem UNIT is built for
Dollar stablecoins solved denomination. They did not solve provenance.
When a holder receives USDT, they receive a balance whose history they did not choose and cannot inspect in any practical way. Issuers of major stablecoins freeze addresses at the request of law enforcement, and those freezes are applied to addresses, not to the tainted portion of a balance. A holder who received funds two hops from a sanctioned counterparty may find their entire position immobilised. The remedy is a legal process, not a transaction.
This is a structural property, not an operational failure. The screening that would prevent it has to happen before value enters a wallet, and a general transfer network cannot perform it: by the time a transfer settles, the holder already owns the history.
A second, smaller problem sits alongside it. Stablecoin balances are idle by construction. The reserves backing them earn a return that accrues to the issuer, not the holder. Protocols that pass that return back to holders usually do so by making the token itself rebasing or yield-bearing, which breaks its usefulness as a unit of account and complicates every integration downstream.
1.2 What UNIT is
UNIT is a TRC-20 token on TRON, denominated in US dollars and backed one-for-one by USDT deposits. It has three properties that define it:
- Screened at issuance. Every deposit is checked against sanctions and illicit-finance screening before the mint transaction is authorised. A deposit that does not clear is not minted — there is no partial acceptance and no quarantine.
- Redeemable one-for-one. Each UNIT is redeemable for one USDT under the governing terms ⟨TBD⟩. Issuance and redemption are matched to USDT flows. UNIT is not algorithmic and holds no volatile collateral.
- Self-custodial. UNIT lives in the holder's own TRON wallet. The protocol never takes custody of a user's UNIT, and holding it requires no account, no deposit with an intermediary, and no ongoing permission.
Yield is strictly optional and strictly separate. A holder who wants a share of protocol proceeds stakes UNIT into a vault and receives vault shares; a holder who wants a plain dollar token holds UNIT and nothing changes for them. The UNIT token itself does not rebase, does not accrue interest, and always represents one dollar of claim.
1.3 What UNIT is not
Stating this plainly is more useful than any feature list.
- UNIT is not a bank deposit and carries no deposit insurance.
- UNIT is not unconditionally redeemable. The token contract cannot freeze an address or confiscate a balance, but minting and redemption go through a Minter that an admin role can pause and that will not act without the protocol's signature. Section 8 describes exactly who holds those powers and why they exist.
- UNIT is not permissionless to acquire. Minting requires passing screening and requires access from a supported region. Holding and transferring UNIT, once minted, requires neither.
- UNIT is not a guarantee against loss. The buffer reserve described in §5.4 is a risk-management measure, not an insurance fund.
2. System overview
2.1 Components
UNIT is four contracts and three off-chain services.
On-chain:
| Component | Standard | Responsibility |
|---|---|---|
unitUSD (UNIT) | TRC-20 | The dollar token. Mintable and burnable only by the Minter. No freeze, blacklist or confiscation. |
Minter | Custom, EIP-712 | The only contract that can issue or redeem UNIT. Holds the reserve route and enforces signed authorisation. |
stakedUnit (sUNIT) | ERC-4626 | The staking vault. Accepts UNIT, issues shares, accrues protocol proceeds. |
CumulativeMerkleDrop | Merkle claim | Distributes reward payouts to eligible holders. |
Off-chain:
| Service | Responsibility |
|---|---|
| Screening service | Runs sanctions and illicit-finance screening on a depositing address, returns a decision and a risk score. |
| Signer service | Holds the key with SIGNER_ROLE. Issues an EIP-712 authorisation only for an operation that has cleared screening. |
| Availability check | Determines whether the app may be served to a given request, by IP. Fails closed. |
The separation between the screening decision and the signing key is deliberate: the signer produces an authorisation for a specific account, amount, nonce and deadline, and holds no ability to move funds. The reserve is moved by a separate operator key. Neither key alone can both authorise and extract.
2.2 Contract addresses (TRON mainnet)
Every address below is public and can be inspected on Tronscan. The application also publishes them on its transparency page.
| Name | Address |
|---|---|
unitUSD (UNIT token) | TRfLrnvVey1iMmYxynissaRjzK6KfeRoKE |
Minter | TYQuJSyBrExVtzaXBz3WvoTJ2N154DKAyt |
stakedUnit (staking vault) | TMsYapPhrro2DPdMs4GVppBaQikcggkBRU |
CumulativeMerkleDrop (rewards) | TBF1oRyhUjoN2xGkSNyiu2X1NVT3sdfCTQ |
| USDT (collateral) | TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t |
| USDD (reserve route) | TXDk8mbtRbXeYuMNS83CfKPaYYT8XWv9Hz |
| jUSDD (JustLend market) | TKFRELGGoRgiayhwJTNNLqCNjFoLBh3Mnf |
| USDT PSM (reserve route) | TBXW4hS5KYjjbJXDpnrPf4zhkLwrpUjbyz |
| Signer wallet | TLtt2dSKqeUDnrB13d3KPdPGnCD7LyJM5o |
| Admin wallet | TXogJukTBnhs29x49JsBgP5TdbKwu9qJQT |
The Minter's EIP-712 domain is { name: "Unit Minter", version: "3", chainId: 728126428, verifyingContract: 0xf62ece8fe87928b8b183242bf92b8fc6474e3f6d }.
The verifying contract is the Minter's own address in hexadecimal form. A wallet
that signs for a different verifying contract produces a signature the Minter
rejects — this is what binds an authorisation to one specific deployment.
2.3 Units and precision
USDT, UNIT and the vault share all use 6 decimals. One UNIT is 1000000 in
base units. All three are fixed by deployment; the application does not read
decimals() per transaction, because a failed read that silently returns zero
would scale an amount by a factor of one million.
3. Issuance
A mint is one on-chain transaction preceded by one off-chain authorisation. It settles in seconds and cannot be executed without both.
3.1 Authorisation
Before a mint can be submitted, the depositor's address is screened. The screening service returns one of three outcomes:
- Cleared. The signer produces an EIP-712 signature over the mint struct.
- Rejected on screening. No signature is produced. The response carries a
reason of
AMLand, when available, a risk score on a 0–100 scale. The user is told plainly; no transaction is attempted. - Unavailable. The service could not reach a decision. No signature is produced and the cause is not disclosed to the client.
The signed struct is:
Mint(
address account,
uint256 assets,
bool stake,
uint256 nonce,
uint256 deadline
)
Four properties follow from what is inside it:
accountbinds the authorisation to one wallet. It cannot be replayed by another address.assetsbinds it to one amount. It cannot be reused for a larger mint.nonceis read from the Minter's ownnonces(account)counter and binds it to one use. A replay reverts withInvalidAccountNonce.deadlinebinds it to a window. A late submission reverts withPermitExpired.
The stake flag is signed rather than passed freely, so the user cannot alter
the destination of the freshly minted UNIT after the authorisation was granted.
3.2 The mint transaction
The depositor approves USDT to the Minter, then calls:
mint(
uint256 assets,
bool stake,
uint256 minUnitOut,
uint256 deadline,
bytes signature
)
The Minter recovers the signer from the signature, checks it holds
SIGNER_ROLE, consumes the nonce, pulls assets of USDT from the caller,
routes it into the reserve (§5.2), and mints UNIT to the caller — or, if
stake is true, into the vault on the caller's behalf.
If the recovered signer does not hold SIGNER_ROLE, the transaction reverts.
This is the property that makes screening enforceable rather than advisory: the
check is not a front-end convention that a determined user can route around by
calling the contract directly. The contract itself will not mint without a
signature from a key the protocol controls.
3.3 The output floor
Both legs carry an output floor. mint reverts with InsufficientOutput if it
would deliver less than minUnitOut; redeem reverts if it would deliver less
than minUsdtOut.
Both legs are one-for-one, so the signed assets is the natural floor. In
practice the application allows the mint leg 50 basis points of slack
(0.5%) and holds the redeem leg exact. The asymmetry is deliberate and
worth stating rather than hiding: the mint leg routes through an external
reserve market between the moment the signature is issued and the moment the
transaction lands, and that route can return a hair under par. The redemption
leg is not permitted any slack at all — a redemption that would pay less than
one USDT per UNIT reverts rather than settling at a worse rate.
Slack is a silent acceptance of a worse price. It is a parameter, it is small, and it is disclosed here because a floor a user cannot see is not a protection.
3.4 Mint and stake as one transaction
When stake is set, minting and staking happen inside a single transaction.
The user does not mint, then approve UNIT to the vault, then deposit — a
three-transaction sequence that costs three fees and can be abandoned halfway,
leaving a user with an intent they did not complete. The flag is part of the
signed struct, so the atomic path is authorised as one operation.
4. Redemption
Redemption reverses issuance and is subject to the same authorisation. Critically, screening runs before any reserve movement. A redemption that fails screening does not cause a withdrawal from the reserve; nothing is unwound on behalf of an operation that will not complete.
The signed struct is:
Redeem(
address account,
uint256 assets,
bool unstake,
uint256 nonce,
uint256 deadline
)
The holder approves UNIT to the Minter (or vault shares, when unwinding a staked position) and calls:
redeem(
uint256 assets,
bool unstake,
uint256 minUsdtOut,
uint256 deadline,
bytes signature
)
The Minter verifies the signature and nonce, burns the UNIT, recalls the
matching USDT from the reserve, and transfers it to the holder. When unstake
is set, the vault position is unwound and redeemed in the same transaction.
Redemption is one-for-one. There is no redemption fee taken by the contract and no minimum holding period. Settlement is prompt in the ordinary case; §12 describes the conditions under which it may not be.
5. Reserves
5.1 Backing
Every UNIT in circulation is issued against one USDT received. The token has no
other issuance path: unitUSD grants MINTER_ROLE and the Minter is the
holder of it. Supply cannot be created by an admin transfer, a governance vote,
or an off-chain instruction — only by a mint transaction that moved USDT in the
same call.
This makes the invariant checkable by anyone: the UNIT total supply and the reserve position are both public on TRON, and the transparency page publishes the ratio between them continuously.
5.2 The reserve route
Deposited USDT does not sit idle, and it does not go into a discretionary trading book. The Minter routes it along a fixed, contract-encoded path:
USDT → PSM → USDD → jUSDD (JustLend)
The route is set at deployment as immutable references on the Minter (USDT,
PSM, USDD, jUSDD). It is not a parameter an operator selects per deposit.
A reader can verify where a given deposit went by following the transaction.
jUSDD is a JustLend money-market position. It was selected for the property that matters most to a redeemable token: a position that can be exited on short notice at par, rather than one that maximises return and settles slowly.
5.3 Recall, separation, and why term matters
Three commitments govern the treasury:
- Short-notice recall. Positions are selected for the ability to recall funds promptly. Long lock-ups are avoided, because a lock-up is a promise to holders that redemption may be delayed.
- Separation from operating funds. Treasury assets are held separately from the project's operating funds. The money backing UNIT is not the money that pays the project's bills.
- A dedicated buffer. A portion of treasury proceeds is routed into a buffer reserve, maintained to absorb losses from venue incidents or counterparty failure.
The buffer is a risk-management measure. It is sized to absorb ordinary adverse events, not systemic ones, and it is not a guarantee against loss. Presenting it as insurance would be dishonest, so it is not presented that way.
5.4 Collateral ratio
The collateral ratio — reserves held against UNIT outstanding — is published continuously on the transparency page and derived from public on-chain balances. It is not a periodic attestation produced by the issuer; it is a figure any reader can recompute from the addresses in §2.2.
Arrangements for independent reserve attestation: ⟨TBD⟩.
6. Staking
6.1 The vault
stakedUnit is an ERC-4626 vault whose underlying asset is UNIT. A holder
deposits UNIT and receives shares; the shares represent a proportional claim on
the vault's total assets, which grow as protocol proceeds are distributed into
it. Unwinding burns shares and returns UNIT — principal plus the accrued share.
The vault is not a lock. There is no minimum term, no unbonding period, and no withdrawal queue in the ordinary case.
6.2 Share accounting
Share accounting is standard ERC-4626. convertToAssets and convertToShares
express the current exchange rate; previewDeposit, previewMint,
previewRedeem and previewWithdraw give the exact result of an operation
before it is submitted. Because proceeds accrue to the vault rather than to
individual balances, a staker's share count stays constant and the UNIT it
converts to increases.
The vault exposes a VaultInsolvent error. It exists so that a vault whose
assets have fallen below its obligations refuses to settle at a rate it cannot
honour, rather than paying early redeemers in full and leaving later ones
short.
6.3 Reward cycle
Reward periods close Saturday at 12:00 UTC, and payouts are executed on Tuesday. Distribution is by cumulative Merkle claim: a root covering the period is published, and each eligible holder claims against it. Cumulative roots mean a holder who misses one period does not forfeit it — a later claim settles the full outstanding amount.
Total rewards distributed are published on the transparency page, cumulatively and by period.
6.4 Shares are not a second token
Vault shares are deliberately not presented to users as a tradable asset, and
the vault restricts their transfer — it exposes a NonTransferable error for
transfers it does not permit. The application surfaces a staked position simply
as "staked UNIT" rather than as a separate ticker.
This is a design choice with a reason. A freely tradable, yield-bearing derivative of a dollar token invites secondary markets that price it away from par, and a holder who acquired it there has none of the screening guarantees that issuance provides. Keeping the share bound to the position that created it keeps the dollar claim and the yield claim from drifting apart.
7. Compliance model
7.1 Screening happens before issuance
The single most important property of the compliance model is its position in the sequence. Screening is not applied to UNIT after it circulates; it is applied to the depositor before UNIT exists. Funds that fail never enter the protocol, so there is nothing to freeze afterwards and no other holder's balance is contaminated by a decision made later.
This is why the check is enforced by the contract's signature requirement rather than by the interface. An interface check is a suggestion. A contract that will not mint without a signature from a key held by the protocol is a rule.
7.2 Regional availability
The application checks regional availability before offering minting or redemption, and fails closed: if the check cannot be completed, access is denied rather than granted. The country determination is made server-side and is never sent to the client. Public, read-only surfaces — the landing page and the transparency dashboard — are deliberately not gated: reading published figures is not a transaction.
7.3 No freeze, no confiscation
Neither the token nor the vault has any administrative power over a holder's
balance. unitUSD and stakedUnit expose no freeze, blacklist or confiscation
function: no address can be blocked from transferring, and no balance can be
moved out of a wallet without its holder's signature.
Compliance acts at the edges instead. Screening decides who may mint (§7.1),
and the signature requirement decides who may redeem. The one administrative
lever over the flow itself is the Minter's pause: while the Minter is
paused, the calls it guards revert with EnforcedPause, and minting and
redemption stop. Pausing does not touch UNIT already held — it keeps
transferring as an ordinary TRC-20 token.
Two things constrain the pause:
- Every use is a public on-chain event. Pausing and unpausing emit
PausedandUnpausedon a public ledger and cannot be performed quietly. - The power is held under a privileged role, not by the signer or operator keys that run day-to-day issuance and reserve movement.
8. Roles and trust assumptions
8.1 On-chain roles
| Role | Held by | Can do | Cannot do |
|---|---|---|---|
SIGNER_ROLE (Minter) | Signer service | Authorise a specific mint or redeem for a specific account, amount, nonce and deadline | Move funds; mint to itself; alter an authorisation after signing |
KEEPER_ROLE (Minter) | Operations | Keeper operations ⟨TBD: exact capability to be stated⟩ | Issue UNIT; authorise a redemption |
DISTRIBUTOR_ROLE (Minter) | Distribution service | Claim and distribute reward proceeds | Issue UNIT; move reserves out of the route |
MINTER_ROLE (token) | The Minter contract | Mint and burn UNIT | — held by a contract, not a key |
DEFAULT_ADMIN_ROLE | Administrator | Grant and revoke roles; pause the Minter; withdraw; executeCall | Freeze an address or confiscate a balance — no such function exists |
8.2 Key separation
The signing key and the operating key are separate by design. A signature authorises an operation but cannot execute a transfer of reserves; the operator can move reserves but cannot produce a valid authorisation. Compromise of either key alone is materially less damaging than compromise of a single key holding both powers.
The signer address in §2.2 is the configured one, and the application reads the live value from a health endpoint at runtime — roles can be re-granted on a redeploy, and the transparency page shows what is actually in force rather than what was true at build time.
8.3 The powers a holder must trust
Stated without softening, so that a reader can price them:
- The administrator cannot freeze an address or confiscate UNIT or vault shares — the contracts have no such functions.
- The Minter can be paused, which stops minting and redemption until it is unpaused.
- The Minter exposes
withdraw(token, to, amount)andexecuteCall(target, data, value)under the admin role.executeCallis a general-purpose escape hatch: it can make the Minter perform an arbitrary call. It exists so that an integration failure in an external venue can be unwound without redeploying, and it is the single most powerful function in the system. - The signer service is a liveness dependency. If it is unavailable, no new UNIT can be minted and no redemption can be authorised. Existing UNIT continues to transfer normally — it is a TRC-20 token and needs no permission to move — but the redemption path depends on a service being up.
⟨TBD⟩ Whether the admin role is held by a multisig or a timelock, and its signer composition, should be stated here. This is the single disclosure that most changes how the above should be read, and it should not be left implicit.
9. Fees and network costs
The Minter charges no protocol fee on mint or redeem. Both legs are one-for-one, subject to the output floors in §3.3.
What a user does pay is the TRON network cost. TRON prices computation in energy and transfers in bandwidth; an account without staked TRX pays for energy by burning TRX. A mint is an approval plus a contract call, and the combined energy cost can exceed what a wallet holding only USDT has budgeted for. This is the most common reason a first transaction fails, and it is a network fee, not a platform charge.
Because of this, the protocol operates an energy rental facility. Energy is rented on TRON's open market and delegated directly to the user's address — no custody, no approval, one TRX transfer. It can be used ahead of an operation automatically, or bought directly from the energy page. Rentals are currently one hour, from 32 000 to 5 000 000 energy. Pricing is market-driven and fixed at the moment an order is created.
10. Transparency
The protocol publishes a continuously updated transparency page covering:
- Supply — UNIT outstanding.
- UNIT staked — the vault's total assets.
- Collateral ratio — reserves against outstanding supply.
- Rewards distributed — cumulative and by period.
- Interaction volume — every UNIT movement (mints, redemptions, wallet-to-wallet transfers) accumulated over time. Turnover only grows: a mint and its later redemption each count their own size.
- Unique wallets.
- The address book of §2.2, each linking to Tronscan.
The figures are derived from public on-chain balances and transfers. Publishing the addresses alongside the numbers is the point: a reader who does not trust the dashboard can recompute every figure on it from the chain.
11. Security review
The contracts have been reviewed three times by parties independent of the development team. All three reports are published in full.
Zenith — UNIT Smart Contract Security Assessment, version 1.1.
Audit conducted 24–25 August 2026, report published 27 August 2026. Auditors:
Dravee and Mario Poneder. Scope: github.com/AltitudeDP/unit-core, commit
4a5a3b53c79b9bcf76350604d431838d9baaebcc, src/**/*.sol, with a separate
mitigation review at commit fcbbc1e88ca3a57e8606e5fd426b12018f32ff99.
Findings:
| Severity | Count |
|---|---|
| Critical | 0 |
| High | 1 |
| Medium | 3 |
| Low | 7 |
| Informational | 6 |
| Total | 17 |
The high-severity finding concerned two-token JustLend reward claims reverting because the Minter could not receive a native-TRX vault callback. It was resolved. The medium findings covered confiscation being bypassable through transfers and staking, missing minimum-output protection on mint and redemption, and unlimited approvals to external dependencies — all three resolved. Several low-severity findings were acknowledged rather than changed, including the dependence of immediate USDT redemption on shared external liquidity, which is an inherent property of the reserve route rather than a defect (§12).
The output floors described in §3.3 are a direct result of this review. The confiscation functions that the review examined were later removed from the contracts altogether (§7.3).
T1MOH — independent review of unit-core: the minter, the staking vault and
the custody adapter. Version 1.0, August 2026.
Hashlock — review of the Unit Technologies contracts, published on the auditor's own site.
An audit is a review of a specific commit at a specific time. It is not a guarantee, and each report states its own scope and the version it covers.
12. Risk factors
A reader should weigh all of the following.
Reserve venue risk. Backing is deployed to an external money market (JustLend, via USDD). A failure, exploit, or freeze at that venue impairs the reserve. The buffer reserve exists to absorb such an event but is not sized for an unbounded one.
Redemption liquidity risk. Immediate USDT redemption depends on shared external liquidity in the reserve route. Under stressed conditions, redemption may be slower than the ordinary case. This was raised in the Zenith review and acknowledged rather than engineered away, because it follows from the choice to deploy reserves at all.
Peg-transmission risk. UNIT is backed by USDT and routed through USDD. It inherits the risk of both. A loss of peg in either propagates to UNIT's backing.
Administrative risk. Pause, withdraw and executeCall exist and are held
under privileged roles (§8.3). A compromised or malicious administrator cannot
touch balances in holders' wallets, but can halt minting and redemption and can
move what the Minter holds on the reserve route.
Service liveness risk. Minting and redemption require the signer service. Its unavailability suspends both, though it does not affect the ability to transfer UNIT already held.
Screening risk. Screening is automated and can produce false positives. A legitimate user may be declined. A support path exists ⟨TBD: escalation and appeal process⟩.
Regulatory risk. The regulatory treatment of dollar-denominated tokens is unsettled and varies by jurisdiction. Availability may change. ⟨TBD: issuing entity, jurisdiction, and licensing status.⟩
Smart-contract risk. Three audits reduce this risk. They do not eliminate it.
Vault solvency risk. If vault assets fall below obligations, the
VaultInsolvent guard halts settlement rather than paying some stakers in full
at others' expense. This protects fairness, not principal.
13. Glossary
Base units — the integer representation of an amount. All three tokens use 6
decimals, so one token is 1000000 base units.
EIP-712 — a standard for signing structured data. Used here so an authorisation is bound to a specific account, amount, nonce, deadline and deployment, and is unreadable as anything else.
Energy / bandwidth — TRON's resource model. Energy pays for computation, bandwidth for transfers. Both can be obtained by staking TRX or, in energy's case, rented.
ERC-4626 — the tokenised vault standard. Defines deposit, redeem, and the conversion between assets and shares.
Nonce — a per-account counter on the Minter, consumed by each authorised operation, making replay impossible.
Output floor — minUnitOut / minUsdtOut. The minimum a leg must deliver
or revert.
PSM — peg stability module. The venue converting USDT into USDD along the reserve route.
Screening — automated sanctions and illicit-finance checks run against a depositing address before issuance is authorised.
Appendix A — Verifying this document
Every factual claim about the system can be checked without trusting the issuer:
- Supply and backing. Read
totalSupply()onunitUSDand the reserve position at the jUSDD address. Both are public. - Issuance authority. Read
hasRole(MINTER_ROLE, …)onunitUSD. Only the Minter should hold it. - The reserve route. Read
USDT(),PSM(),USDD()andjUSDD()on the Minter. They are immutable and must match §2.2. - The signing domain. Call
eip712Domain()on the Minter. It must returnUnit Minter, version3, chain728126428, and the Minter's own address. - Any individual mint or redemption.
MintedandRedeemedevents carry the account and amounts. Every issuance in existence is enumerable.
Appendix B — Interface reference
Minter
function mint(
uint256 assets,
bool stake,
uint256 minUnitOut,
uint256 deadline,
bytes signature
);
function redeem(
uint256 assets,
bool unstake,
uint256 minUsdtOut,
uint256 deadline,
bytes signature
);
function nonces(address account) view returns (uint256);
function eip712Domain() view returns (...);
// admin
function withdraw(address token, address to, uint256 amount);
function executeCall(address target, uint256 value, bytes data);
function claimAndDistributeRewards(...);
function pause();
function unpause();
function paused() view returns (bool);
// errors
error InsufficientOutput();
error PermitExpired();
error InvalidAccountNonce();
error InvalidIntegration();
error OperationFailed();
error EnforcedPause();
error TransferFeeActive();
error ZeroAddress();
unitUSD
function mint(address to, uint256 value); // MINTER_ROLE
function burn(uint256 value);
function burnFrom(address from, uint256 value);
stakedUnit
function deposit(uint256 amount, address receiver);
function withdraw(uint256 amount, address receiver, address owner);
function depositFor(address account, uint256 value);
function withdrawTo(address account, uint256 value);
function asset() view returns (address);
function underlying() view returns (address);
Open items before publication
| § | Item |
|---|---|
| Header, §1.2, §12 | Issuing legal entity, jurisdiction, licensing status |
| §1.2, §4 | Link to the governing Terms of Use |
| §5.4 | Independent reserve attestation arrangements and cadence |
| §8.3 | Whether the admin role is a multisig or timelock, and its composition |
| §12 | Screening appeal and escalation process |
This document describes a software protocol. It is not an offer to sell, a solicitation to buy, investment advice, or a prospectus. UNIT is not a deposit and is not insured. Nothing here is a guarantee of redeemability, price stability, or return. Read §12 before acquiring UNIT.