# About Upshift

## Overview of Upshift

**Upshift** is the operating system for institutional onchain asset management.

Upshift lets teams design and launch vaults on 30+ chains with any DeFi and CeFi strategy, underpinned by a robust policy engine. Upshift vaults integrate with prime brokerage **August**, unlocking a $500M+ distribution network of institutional LPs, as well as ancillary services such as margin lending against vault positions.

Broadly, Upshift enables:

* **Custom Earn vault design** - Teams ranging from crypto neobanks to institutional credit issuers can use Upshift to design yield strategies on and off chain e.g. lending, basis trade, RWAs. Upshift vaults can deploy simultaneously to multiple protocols, meaning developers can build vaults customised to their users' risk profile.
* **Seamless SDK integration** - The Upshift SDK makes it simple to white-label any existing Upshift vault on third-party frontends. Functionality includes deposit/withdrawal, alongside metadata such as historical performance and total assets deposited.
* **Institutional ancillary services via August** - By integrating with August, Upshift vault depositors under KYC can take out loans against vault receipt token collateral. Teams can also leverage August’s unique cross-margining architecture to design strategies combining DeFi and CeFi e.g. a basis trade with legs simultaneously on Hyperliquid and Binance.

### Supported chains today

Upshift supports the following chains, and we are looking to add more over time.

<details>

<summary>View supported chains</summary>

* Arbitrum
* Avalanche
* Base
* BNB Chain
* Citrea
* Ethereum
* Flare
* Fluent
* HyperEVM
* Monad
* Solana
* Stellar

</details>

### About August

**August** is the leading on-chain prime brokerage handling $7bn in monthly volume for institutions. Upshift vaults integrate to August by moving vault deposits into August subaccounts for deployment.

August subaccounts are smart contract wallets offering multiple benefits:

* Vault curators execute strategies over the August platform, which offers sophisticated trading algorithms, risk management and capital efficient cross-margining
* Policies are enforced on each subaccount, meaning vault curators must remain within the mandate of the vault strategy e.g. only supply to the WETH market on Aave
* Teams launching vaults benefit from distribution to August's network of institutional LPs, including asset mangers, family offices and hedge funds
* Vault depositors can verify onchain positions in any August subaccount
* Vault depositors may be able to borrow against their positions (requires KYC)<br>


# FAQ

### What is Upshift?

**Upshift** is the operating system for institutional onchain asset management.&#x20;

We enable teams to design, build and integrate vaults for any DeFi and CeFi yield strategy. Our core focus is on giving teams full control over every step of the deployment process: from strategy design to integration.&#x20;

### Why *now*?

We are at a critical inflection point for the crypto industry:

* Stablecoins and tokenized assets have crossed $300B in market cap, widely adopted for payments
* Regulatory clarity has unlocked a wave of innovation across consumer finance, growing overall demand for yield
* Institutional giants like JP Morgan are coming onchain by launching tokenized money market funds and RWAs

As tokenized asset issuance and onchain participation grows, the demand for custom, transparent and risk-managed yield opportunities will scale significantly.&#x20;

We believe vaults are the primary way to bring the next era of non-custodial asset management to DeFi.&#x20;

### What’s the long term vision?

Every wallet, neobank and fintech will offer Earn opportunities to users.&#x20;

In TradFi, yield products like bonds and savings accounts represent a $100 trillion market. Vaults bring this to DeFi.&#x20;

### **How does Upshift differ from other vault providers?**

While other vault providers offer a limited canvas for vault design, Upshift providers a full-stack toolkit to built institutional-grade vaults:&#x20;

* **Broad strategy coverage:** Deploy your vault on 30+ chains and 70+ protocols, combining DeFi and Cefi strategies in a single vault
* **Compliant control:** Vaults mandates are restricted to the scope of onchain policies e.g. supplying to the WETH market on Aave. Partners can also set KYC requirements and wallet screening to ensure compliance with local regulations
* **Onchain transparency:** Vault deployment is traceable onchain and depositors can view new strategy allocations in real-time
* **Prime capabilities through August:** KYC'd particpants can borrow against vault position through August, while vault curators execute strategies using August's sophisticated trading platform

Upshift lets teams integrate existing vaults for stablecoins, ETH and BTC, as well as design completely custom vaults with transparent strategies and controls tailored to your users' risk profiles.&#x20;

### **Where does the yield come from?**

Yield on Upshift comes from:

* **Real yield:** APY from the underlying protocols (e.g. lending, LPing, staking).
* **Protocol rewards:** Points or token incentives from the DeFi protocols used in the strategy.
* **Yield tokenization:** Users can use their tokenized yield-bearing positions to find additional yield opportunities across DeFi.

Each vault on Upshift is actively managed by a Curator. Curators are institutions such as hedge funds and asset managers who curate and execute DeFi yield strategies on your behalf.

Yield may also include rewards and points from protocols included in the vault strategy. For example Ethena may offer points to those who hold PT-USDe.

### Who are the Vault Curators on Upshift?

Each vault on Upshift is actively managed by a Curator.

Curators are institutions such as crypto-native yield funds and asset managers who curate and execute DeFi yield strategies.

Existing vaults are curated by teams such as Sentora, Ultrayield/Edge Capital and M1 Capital.&#x20;

### How does Upshift mitigate risk in vaults?

Built on institutional-grade infrastructure, transparency and risk management are non-negotiable for Upshift. The platform mitigates risk across several axes:

* **Built on August:** Vaults use August’s smart contract infrastructure, trusted by institutions for over $7bn in monthly transaction volume
* **Self-custodial by default:** Your funds stay in your wallet; vaults are non-custodial by design
* **Whitelisted protocols only:** Curators can only deploy capital to vetted DeFi protocols and approved chains. Vaults can be customised to whitelisted specific protocols, depending on risk profile
* **Curator transparency:** Every vault displays exposure by protocol, token, and strategy. All curators are KYC’d institutions with verifiable track records

### Key terms

Vaults

* ERC-4626 standard vaults which accept stablecoins and crypto assets. Vaults deposit into August subaccounts, from where hedge funds can execute DeFi yield strategies using funds.

Curators

* Curators are institutions such as hedge funds who manage vaults and run DeFi yield strategies on your behalf. Existing curators are MEV capital, Tulipa Capital, UltraYield, MNNC Group.

Receipt tokens

* After you deposit into a vault, your position is tokenized into a receipt token e.g. “This token represents my deposited $100 USDC and the yield it is accruing via the vault”

August

* August is the leading DeFi prime brokerage, managing $7bn in monthly transaction volume for instituional clients. August’s battletested smart contracts are the underlying infrastructure for Upshift vaults.


# coreUSDC – The Meta-Vault

coreUSDC is Upshift’s premier yield aggregator. It functions as a "Vault of Vaults," optimizing capital allocation across the Upshift ecosystem.

The coreUSDC vault represents the pinnacle of the Upshift ecosystem, serving as a high-performance liquidity aggregator designed specifically for users seeking the most resilient risk-adjusted yields in the DeFi landscape. Rather than operating as a static lending pool, coreUSDC functions as a sophisticated meta-vault that programmatically distributes capital across a diversified range of underlying Upshift V1 and V2 infrastructure. This "Vault of Vaults" approach abstracts the operational burden of yield farming and risk monitoring, providing a seamless experience for both retail participants and institutional allocators who require a reliable, set-and-forget stablecoin strategy.

* The Strategy: It dynamically deploys capital into various underlying Upshift V1 and V2 vaults based on real-time yield and risk parameters.
* Risk Tranching: High-liquidity buffers are maintained to ensure low-slippage withdrawals even during volatile market conditions.
* Optimization: Daily rebalancing ensures capital is always flowing toward the highest risk-adjusted APR.


# upUSDC – Institutional Lending

Upshift USDC offers access to institutional-grade, on-chain lending opportunities with overcollateralized positions, providing full transparency and control over deployed assets. Unlike traditional DeFi lending protocols, which often fail to deliver attractive risk-adjusted yields,&#x20;

Upshift USDC focuses on sustainable, real yield generation without exposing users to unsustainable point farming schemes or excessive smart contract risk.

What sets Upshift apart is its unique approach to lending: yield is generated by lending to institutional borrowers who have undergone stringent KYC/KYB verification. This significantly reduces the risks of malicious actors and smart contract exploits, as only approved parties can borrow. Additionally, these institutional borrowers require capital efficiency against yield-bearing assets that are less commonly accepted as collateral. As a result, they offer premium borrowing rates, creating higher, sustainable yields for lenders.


# Upshift Lend

## Overview

Upshift Lend offers access to institutional-grade, on-chain lending opportunities with overcollateralized positions, providing full transparency and control over deployed assets. Unlike traditional DeFi lending protocols, which often fail to deliver attractive risk-adjusted yields, Upshift Lend focuses on sustainable, real yield generation without exposing users to unsustainable point farming schemes or excessive smart contract risk.

What sets Upshift apart is its unique approach to lending: yield is generated by lending to institutional borrowers who have undergone stringent KYC/KYB verification. This significantly reduces the risks of malicious actors and smart contract exploits, as only approved parties can borrow. Additionally, these institutional borrowers require capital efficiency against yield-bearing assets that are less commonly accepted as collateral. As a result, they offer premium borrowing rates, creating higher, sustainable yields for lenders.

## Powered by August Digital

Upshift Lend is built on the robust web3 infrastructure of August Digital, leveraging on-chain loans through universal margin accounts. These accounts allow for highly customizable, segregated loans, where the lender controls key parameters such as the borrower’s address, blockchain, collateral type, loan-to-value (LTV) ratio, interest rate, and loan duration.&#x20;

Additionally, lenders can whitelist specific smart contract interactions and designate whether the loan is delta-neutral or faces a market maker. This granular control ensures security and transparency, offering a powerful and flexible lending environment.

### Benefits for Users&#x20;

#### Access to Institutional-Grade Yield

Users of Upshift Lend gain access to secure, overcollateralized lending opportunities that are typically reserved for institutions. This provides more stable, real yield generation compared to many traditional DeFi protocols that rely on unsustainable yield farming.

#### Enhanced Security & Transparency

Upshift Lend operates on a non-custodial, fully transparent infrastructure built by August Digital. Users have complete visibility into how their funds are deployed, with borrowers undergoing rigorous KYC/KYB verification. This reduces the risk of malicious actors and protects user assets through robust smart contract enforcement.

#### Customizable Lending Parameters

Unlike many DeFi lending protocols that offer limited control over how capital is deployed, Upshift Lend gives users the ability to deposit into pools that follow strict whitelisting processes. Funds are only lent to pre-approved, KYC/KYB-verified borrowers, with controlled access to specific protocols and contracts, reducing potential risk.

#### Premium Yield Opportunities

Users benefit from higher yields compared to traditional DeFi markets, as Upshift Lend connects with borrowers seeking capital efficiency against less commonly accepted collateral. These borrowers are willing to offer premium interest rates in exchange for the flexibility provided by Upshift, creating more attractive returns for users.

#### Mitigated Risks of Exploits

By lending only to approved, KYC/KYB-verified borrowers and interacting with whitelisted protocols, Upshift Lend significantly mitigates the risks of price manipulation, smart contract exploits, and malicious actors—ensuring a safer lending environment compared to open DeFi markets.


# Upshift DeFi Yield

### Overview

Users deposit assets into Upshift Defi Yield vaults, where capital is allocated to curated DeFi strategies through secure, non-custodial infrastructure. By focusing on simplicity and reducing liquidity fragmentation, Upshift provides a seamless user experience while delivering transparent and consistent yields.&#x20;

Upshift’s vision is to democratize institutional DeFi yield opportunities, without the need for complex strategy management.

### Benefits for Users

#### Simplified Access to Yield

Upshift’s vaults eliminate the need for users to navigate or manually execute complex DeFi strategies. Users can effortlessly earn yield, beyond simple looping APY, without managing multiple positions or protocols.

#### Secure, Non-Custodial Management

Users retain control over their assets at all times, as funds are deployed through Upshift’s secure, non-custodial infrastructure. Curators can manage yield strategies but cannot withdraw or access user funds, ensuring robust security through smart contract enforcement.

#### Transparent Yield Generation

Every interaction, from capital deployment to yield realization, happens transparently on-chain. Users can track where their funds are allocated and how their yield is generated, fostering trust and clarity throughout the process.

#### Cross-Chain Flexibility

With Upshift’s native multi-chain support, users can benefit from yield opportunities across different blockchain ecosystems without the need for manual bridging or reallocation of funds. This flexibility helps users tap into better yields on various chains seamlessly.


# Upshift Vault-as-a-Service (VaaS)

### Overview

Upshift VaaS gives partner protocols the ability to offer curated DeFi yield strategies. Vaults may offer yield ranging from real APY strategies such as LPing, to one-click rewards farming opportunities allocating deposits across various protocols.

### Benefits for Partner Protocols

#### Seamless Yield Strategy Integration

Upshift streamlines DeFi participation by handling the complexity of yield generation on behalf of protocols. This allows your users to access yield opportunities without needing to navigate intricate DeFi strategies themselves, enhancing engagement and reducing friction in user onboarding.

#### Optimized Yield Performance

Upshift’s robust vault architecture is designed to optimize yield through carefully curated strategies. By leveraging cross-chain capabilities and tapping into diversified DeFi opportunities, protocols can offer attractive yield programs that enhance user satisfaction and retention while reducing the need for costly user incentives.

#### Liquidity Efficiency

Upshift helps protocols optimize their liquidity by allocating capital to whitelisted strategies in a structured manner. This ensures capital is deployed efficiently across different opportunities without overextending liquidity pools, supporting healthier liquidity provision and market stability.

#### Scalable Capital Deployment

Upshift’s infrastructure provides protocols with the flexibility to scale yield strategies seamlessly across multiple chains. By managing capital allocation and strategy deployment across various DeFi ecosystems, Upshift allows protocols to swiftly support new integrations and initiatives, driving expansion without the overhead of managing multiple liquidity sources.

#### Non-Custodial, Secure Yield Management

Upshift’s non-custodial approach ensures that users maintain full control over their assets. Curators managing vault strategies are restricted to interacting with whitelisted tokens and contracts, ensuring that all capital is deployed within predefined, secure parameters. This setup provides peace of mind for protocols users, as funds remain safeguarded at all times.

#### Transparency and Control

Through the use of subaccounts and transparent on-chain activity, protocols gain full visibility into how yield strategies are being executed. This clean separation of strategies ensures protocols can maintain accountability and transparency while tracking yield performance in real time.


# Upshift RWA Clear

To view available instant liquidity for each supported RWA, visit the [Upshift Clear](http://insert.com) page.

Tokenized RWA redemptions have historically been a blocker for full adoption onchain. A holder can burn their token onchain in seconds, but the actual capital return takes 1 to 3 business days: the issuer calculates NAV, instructs the custodian, liquidates the underlying position, and wires settlement through banking rails. Weekends and holidays add more delay.

This creates problems for anything that depends on fast, predictable liquidity: lending protocols that need to liquidate collateral in one block, structured products with tight settlement windows, or treasuries that can't afford capital locked in a redemption queue.

### **How Clear Solves This**

Upshift Clear sits between the RWA holder and the issuer's redemption process. A pool of USDC (funded by LPs) is available for instant payouts. When a holder wants to exit, the contract prices their RWA tokens using a live Chainlink oracle, applies a spread fee, and sends USDC in the same transaction. The RWA tokens then go through the issuer's normal redemption process in the background, and the returned capital refills the pool.

Between redemptions, USDC in the pool doesn't sit idle. It's automatically routed to an ERC-4626 yield vault (e.g., Morpho) for lending yield. If a redemption needs more USDC than the contract holds in reserve, it pulls from the yield layer within the same transaction.

### **The LP Side: `clrRWA`**

LPs deposit USDC and receive `clrRWA`, a composable ERC-20 receipt token. Their capital earns from two sources: a spread fee on every instant redemption, and lending yield on idle USDC. LPs don't take on the RWA's strategy risk because the vault holds the underlying tokens only during the brief settlement window before the issuer processes the standard redemption.

Fees stay in the vault and accrue to the share price automatically, with no separate extraction or distribution step. The share price reflects total vault assets, including what's deployed in the yield layer and any fees earned.


# How It Works

RWA Clear is a two-sided marketplace built on top of Upshift's vault infrastructure.

**Liquidity Providers** deposit USDC into an Upshift vault. Their capital funds instant redemptions and earns yield in return.

**RWA Holders** submit their tokenized assets (e.g., USCC) and receive USDC instantly, minus a small transparent fee.

#### Redemption Steps

1. The holder approves their RWA tokens to the redemption contract
2. The holder submits the tokens and specifies a minimum USDC output (slippage protection)
3. The contract fetches a live Chainlink oracle price
4. It computes the USDC equivalent and deducts the spread fee
5. USDC is delivered to the holder — all in one transaction

#### Liquidity Management

USDC deposited by LPs does not sit idle between redemptions. It is automatically deployed to an ERC-4626 yield vault (e.g., Morpho) to earn lending yield. When a redemption occurs and more USDC is needed than the contract holds in reserve, it automatically pulls the deficit from the yield layer within the same transaction.


# Architecture

RWA Clear consists of two smart contract components that work together:

#### The Vault (Atomic Vault)

The vault is the LP-facing component. It accepts USDC deposits, mints vault shares, and manages the overall asset pool. When LPs want to withdraw, the vault handles instant redemptions of shares back to USDC.

The vault automatically routes deposited USDC to the Instant Redeem Subaccount for liquidity provisioning and yield generation. If the vault needs USDC for an LP withdrawal and its own balance is insufficient, it pulls the deficit from the subaccount automatically.

Key properties:

* Standard Upshift tokenized vault with ERC-4626-compatible share mechanics
* Instant atomic redemptions (no T+32 hour waiting period)
* Auto-routes capital to the subaccount for yield optimization
* Share price reflects total vault assets, including subaccount holdings and accrued fees

<figure><img src="/files/CavpwexnxcLGMKkQwz04" alt=""><figcaption></figcaption></figure>

#### The Instant Redeem Subaccount

The subaccount is the RWA-holder-facing component. It is a standalone contract that holds USDC liquidity and processes instant swaps of RWA tokens to USDC using oracle pricing.

Key properties:

* Holds idle USDC and auto-deploys it to a yield vault (e.g., Morpho) for passive lending returns
* Accepts RWA tokens and swaps them for USDC at oracle-derived prices minus a configurable spread
* Fees remain in the subaccount, increasing the net asset value for all vault depositors
* Non-upgradeable — the contract cannot be modified after deployment
* Bound to a single vault — permissions and governance are inherited from the parent vault

#### How They Connect

The subaccount has no independent admin keys. All access control — owner, operator, whitelist — is read from the parent vault at call time. If the vault's owner changes, the subaccount's permissions change immediately.


# Pricing and Fees

#### Oracle Pricing

Each supported RWA token has a dedicated oracle price feed that provides a live market rate. The contract converts the input asset to USDC using this oracle price, with multiple safety checks:

| Check                  | Purpose                                                                                                                |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| Staleness threshold    | Rejects prices older than a configurable window (minimum 5 minutes)                                                    |
| Price deviation bounds | Optional per-asset circuit breaker that rejects conversions if the oracle price deviates too far from the expected peg |
| Round completeness     | Ensures the oracle has fully reported the current price round                                                          |

#### Fee Structure

A spread fee is applied to every redemption, denominated in USDC:

| Parameter          | Range                                       |
| ------------------ | ------------------------------------------- |
| Spread (per asset) | 0.05% to 5.00%, configurable                |
| Rate limit         | Optional per-transaction cap on USDC output |

Fees are not extracted or distributed separately. They remain in the subaccount, increasing the net asset value for all vault depositors automatically.

#### LP Yield Sources

Liquidity providers earn from two sources:

1. **Spread fees** — every instant redemption generates fee revenue that accrues to the vault's NAV
2. **Idle lending yield** — USDC not immediately needed for redemptions earns lending yield via the yield layer (e.g., Morpho)

#### Worked Example

An RWA holder redeems 10,000 USCC. The Chainlink oracle reports a rate of 1.02 USCC per USDC. The configured spread is 10 basis points (0.10%).

* USDC equivalent: 10,000 / 1.02 = **9,803.92 USDC**
* Fee: 9,803.92 x 0.10% = **9.80 USDC**
* Holder receives: **9,794.12 USDC** (instantly, vs. \~32 hours via traditional redemption)
* The 9.80 USDC fee stays in the vault, accruing to all LPs


# Using RWA Clear on Upshift

#### For RWA Holders

1. Navigate to the **Redeem** page on Upshift
2. Connect your wallet
3. Enter the amount of RWA tokens you want to redeem
4. Review the expected USDC output, redemption fee, and available liquidity
5. Approve the token transfer and confirm the redemption
6. USDC is delivered to your wallet in the same transaction

The interface displays real-time pricing from the oracle, the current fee rate, and available instant liquidity so you can see exactly what you will receive before confirming.

<figure><img src="/files/KH8lysZeJ2FKKumiehtZ" alt=""><figcaption></figcaption></figure>

#### For Liquidity Providers

1. Navigate to the vault page on Upshift
2. Deposit USDC into the vault
3. Receive vault shares representing your proportional ownership
4. Earn yield from spread fees and idle lending — reflected in your share price over time
5. Redeem your shares for USDC at any time


# Risk Controls

| Control              | Detail                                                                           |
| -------------------- | -------------------------------------------------------------------------------- |
| Oracle safety        | Staleness, round completeness, and optional deviation checks on every redemption |
| Slippage protection  | Users specify a minimum output amount; the transaction reverts if not met        |
| Rate limiting        | Configurable per-transaction cap prevents large single-transaction drains        |
| Global pause         | Redemptions can be frozen instantly by the vault owner or operator               |
| Emergency withdrawal | All yield-layer funds can be pulled in one call                                  |
| Non-upgradeable      | The subaccount contract cannot be modified after deployment                      |
| Reentrancy guard     | Industry-standard protection on all state-changing functions                     |

#### Pause Controls

An operator can pause redemptions in an emergency, but only the vault owner can unpause. This ensures fast incident response without giving operators unilateral control to resume operations after an issue.

***

### Supported Asset Requirements

| Requirement        | Detail                                                                   |
| ------------------ | ------------------------------------------------------------------------ |
| Standard ERC-20    | Must follow standard transfer semantics                                  |
| No fee-on-transfer | Tokens that apply a tax on transfer are not supported                    |
| No rebasing        | Tokens that change balance automatically (e.g., stETH) are not supported |
| Oracle Feed        | A reliable price feed must exist for the asset                           |

***


# Issuer Integration

RWA issuers interested in enabling instant redemptions for their tokenized assets on Upshift can reach out at [**rwa@upshift.finance**](mailto:rwa@upshift.finance).

Integration involves:

1. Confirming the asset meets the compatibility requirements above
2. Establishing a Chainlink oracle price feed for the asset
3. Configuring the spread fee and safety parameters
4. Funding initial USDC liquidity
5. Activation by the vault owner


# Synergies Between Upshift & August Digital

Unlocking Institutional Growth Flywheel

A primary differentiator of the Upshift infrastructure is its native integration with August Digital, an on-chain prime brokerage and execution platform. While most vault providers operate exclusively within retail-facing DeFi, Upshift vaults are built on a non-custodial prime brokerage engine that handles over $7B in monthly volume.

This relationship creates a vertically integrated liquidity and leverage flywheel, transforming passive yield strategies into institutional-grade financial products with deep market connectivity.

### **Institutional Distribution & Liquidity**

Through the August Digital network, Upshift vaults gain immediate access to a global ecosystem of institutional liquidity providers, including trading desks, hedge funds, and corporate treasuries.

* Non-Retail Capital Inflows: Access pools of capital that are typically inaccessible to standard DeFi-native vaults.
* Accelerated Bootstrapping: Institutional counterparties can provide large-scale "Day-1" liquidity, allowing new vaults to scale TVL rapidly without relying on fragmented retail adoption.
* Global Demand Channels: Connectivity to professional trading venues ensures that vault-denominated products have consistent buy-side demand and deep liquidity.

### **Professional Lending & Credit Markets**

The integration allows Curators to facilitate sophisticated over-the-counter (OTC) lending products directly through the vault infrastructure:

* Overcollateralized Institutional Lending: Professional entities can deposit high-quality collateral via the August Digital interface to borrow vault assets at scale, increasing the vault's utilization and organic yield.
* Credit-Based Financing: For select whitelisted and credit-approved trading firms, August facilitates credit lines where capital flows through the vault. This expands the utility of the vault’s underlying assets as a primary financing currency for institutional strategies.

### **Institutional Leverage & Looping**

Every Upshift vault issues a receipt token representing the user’s share of underlying assets. For large-scale Liquidity Providers (LPs), the August Digital integration enables institutional-grade leverage looping:

1. Collateralization: LPs deposit assets into an Upshift vault and receive yield-bearing receipt tokens.
2. Prime Margining: These receipt tokens are recognized as eligible collateral within August Digital’s portfolio margin system.
3. Strategic Recycling: Institutions can borrow against their vault position to recycle capital back into the vault for higher effective APY or deploy it into hedged arbitrage and delta-neutral strategies.

### **Technical & Operational Advantages**

Unlike standard vaults, the Upshift-August stack provides a suite of "Prime" superpowers:

* KYC/KYB Verification: All institutional borrowers and large-scale counterparties are verified, creating a secure "walled garden" that meets global compliance standards.
* Automated Risk Monitoring: Real-time counterparty exposure monitoring and automated liquidation software protect the vault from bad debt.
* On-Chain Transparency: Every transaction, loan, and rebalance is fully auditable on-chain, providing the "Proof of Reserve" and reporting precision required by professional fund administrators.


# Upshift for Curators

Upshift lets a curator run an institutional-grade, multi-chain vault with prime-brokerage distribution and credit behind it

<figure><img src="/files/q6QaC1jfeDt1Os2lNSqL" alt=""><figcaption></figcaption></figure>

A curator (also called a strategist) is a KYC’d institutional yield manager appointed to run a vault’s strategy deploying vault capital into DeFi and CeFi venues. They operate inside hard, smart-contract-enforced boundaries: a curator can never withdraw user funds to an external address while capital only moves between the vault contract, its dedicated subaccount, and whitelisted strategy contracts.

In practice, the curator’s job has four recurring components:

* **Strategy execution:** deploying and rebalancing capital across whitelisted protocols, within the mandate defined by the vault’s policy engine.
* **Performance reporting:** NAV reporting.
* **Liquidity management:** keeping the withdrawal buffer funded and unwinding positions ahead of redemption epochs.
* **Risk ownership:** monitoring venue, oracle, and counterparty risk for every position; reacting to Hypernative alerts and emergency procedures.

### Curator Responsibilities

| **Curator**                                                                                                                                                                                                                                                                                                                                           | **Upshift**                                                                                                                                                                                                                                                                      |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <ul><li>Strategy design and capital allocation within the approved whitelist.</li><li>Risk and exposure management for the strategy.</li><li>Executing trades and deployments through the chosen custody model.</li><li>Maintaining the withdrawal liquidity buffer to always process redemptions on a timely manner.</li><li>Reporting NAV</li></ul> | <ul><li>Vault smart contracts, share accounting, and audits</li><li>The policy engine and whitelisting enforcement</li><li>NAV validation and pricing</li><li>Deposits, redemptions, and fee mechanics</li><li>Institutional LP distribution and prime-brokerage rails</li></ul> |

## Roles and Permissions

Every Upshift vault separates governance, operations, and strategy execution into distinct roles. The separation is the core security claim: no single party can both move user funds and change the rules.

### **Vault Owner**

A secure multisig shared between Upshift, the curator and the partner protocol (e.g. 4-of-6). It governs the parameters that define the vault itself, so no individual party can quietly alter the vault's economics or risk settings.

* Sets management and performance fees, issuance limits, and the timelock duration
* Controls emergency functions: pausing deposits/withdrawals and sweeping funds to safety
* Critical changes (fees, withdrawal periods) sit behind a 24-hour timelock so depositors can exit before they take effect

### **Vault Operator**

An institutional-grade MPC wallet handles the day-to-day mechanics of keeping a vault running. The operator can move capital between the vault and the subaccount, but never outside that perimeter.

* Processes withdrawal requests as redemption epochs mature
* Updates the vault's NAV by syncing total assets with the externally calculated value of deployed positions
* Moves liquidity between the vault contract and the strategist's subaccount
* Charges and collects fees

### **Curator**&#x20;

A KYC'd institutional yield manager holding the trader role on the vault's dedicated subaccount.

* Deploys capital and manages the strategy, only within contracts, tokens, and functions whitelisted by the policy engine
* Has no access to vault admin functions

## The flexibility you get with Upshift

* **Curator picks the custody model**.&#x20;
  * Run on an August subaccount or via Fordefi MPC, whichever matches the strategy.
* **Single or multi-asset EVM vaults**.&#x20;
  * [V1 vaults](/vault-architecture/single-asset-vault) accept a single asset
  * [V2 vaults](/vault-architecture/multi-asset-vault) accept a basket of deposit assets (e.g. USDC, USDT, PYUSD) with a single reference asset for redemptions.&#x20;
* **Curators can build vaults on** [**Solana**](/vault-architecture/solana-vaults) **and** [**Stellar**](/vault-architecture/stellar-vaults).
* **Fully configurable risk controls**. Withdrawal liquidity buffer, NAV volatility limits, and timelocks are set per vault to match the strategy’s liquidity and risk profile.
* **Multi-chain reach**. Deploy the same strategy across EVM chains, Solana and Stellar without standing up new infrastructure each time.

## Why curate on Upshift

The reason to curate a vault on Upshift is that the curator inherits a deep stack consisting of:

* **Institutional distribution from day one.** Upshift vaults get access to August’s $500M+ institutional LP network (asset managers, family offices, trading desks, and treasuries).
* **Prime-brokerage access**. Through August’s prime brokerage (\~$7bn monthly volume), curators can tap credit lines, cross-margin across DeFi and CeFi, OTC options and lending, and recognition of vault receipt tokens as collateral.
* **Trust and safety**. Contracts audited multiple times, a policy engine that prevents misappropriation, independent NAV validation, and automated risk monitoring.
* **Faster time to launch.** No contract development, no security program, no distribution build-out. Configure a vault, pick a custody model, and start deploying.

## Get Started

For new curators, it is highly recommended to review the concepts outlined next for building an in-depth understanding of Upshift vault mechanics and capabilities.&#x20;

Refer to this [section](/upshift-vault-curation/reference-smart-contract-interface) for all smart contract functions.


# Key Management & Execution Engine

When curators launch a vault, they choose how capital is held and how is executed. Upshift supports two models. Both key management and execution engines follow the same safety model: non-custodial by construction, policy-gated execution, and independent NAV validation. \
\
The difference is the operational style that fits the curator needs.

<figure><img src="/files/FeiUMdpPLu7CPPi2wcsd" alt=""><figcaption></figcaption></figure>

### August Subaccount (smart-contract wallet)

A smart-contract wallet deployed by August and owned by the vault. Curator receives a trader role and execute against a whitelisted set of protocols and tokens. The same address works across EVM chains, with built-in swap and bridging modules. August calculates NAV across spot, DeFi, perps, and options. Whitelist policies are on-chain, cryptographically enforced and verifiable.&#x20;

### Fordefi (MPC)

A shared MPC workspace operated jointly with August, governed by transaction-level policy controls. Curators propose NAV updates that August’s pricing engine validates. This suits curators who prefer an MPC key-management and signing workflow. Fordefi policies are maintained off-chain.

<table data-header-hidden><thead><tr><th width="172.93359375"></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Dimension</strong></td><td><strong>August Subaccount</strong></td><td><strong>Fordefi (MPC)</strong></td></tr><tr><td>What it is</td><td>A smart-contract wallet deployed by August, owned by the vault. You receive a trader/strategist role.</td><td>A shared MPC workspace operated jointly with August, governed by transaction policies. You propose and execute through it.</td></tr><tr><td>Best for</td><td>Strategies that live on and off-chain and benefit from native cross-chain execution and August's full prime-brokerage surface. Integrations with CeFi.</td><td>Curators who want MPC key management and a familiar institutional signing workflow.</td></tr><tr><td>Execution surface</td><td>Whitelisted protocols and tokens; swap module and bridge module (LayerZero / Stargate, Chainlink CCIP); same address across EVM chains.</td><td>Policy-gated transactions across approved venues.</td></tr><tr><td>Custody control</td><td>Non-custodial by design; funds can only move between whitelisted strategy contracts and the vault, never to an external wallet.</td><td>MPC threshold signing with off-chain policy controls.</td></tr><tr><td>NAV</td><td>August calculates NAV across spot, DeFi, perps, and options.</td><td>Curator proposes NAV updates; August's pricing engine validates them.</td></tr></tbody></table>


# Accounting, Fees & Fund Flows

## Share Accounting and NAV Reporting

Upshift vaults use share-based accounting: `price per share = total underlying assets ÷ total shares in circulation`. Deposits mint shares at the current ratio and withdrawals burn at the current ratio, so neither impact the vault share price.

Example:&#x20;

1. A vault holds 100,000 USDC against 100,000 shares (ratio 1.0)
2. A user deposits 1,000 USDC and receives 1,000 shares — ratio unchanged.&#x20;
3. The strategy then earns 500 USDC over a week; assets become 101,500 against 101,000 shares, so the ratio rises to ≈1.00495.&#x20;
4. Redeeming 1,000 shares now returns ≈1,004.95 USDC.

### What curators must respect when reporting NAV

* **Max percentage change:** each NAV update is bounded by a strict ceiling and floor on the share-price move per cycle. This caps damage from faulty oracles or erroneous reports and kills latency arbitrage by MEV snipers. Plan large markups/markdowns across multiple cycles.
* **High watermark:** performance fees only accrue above the previous peak share price.
* **Validation:** in the Fordefi model the strategist proposes NAV and the August pricing engine validates it; in the subaccount model August computes NAV directly from whitelisted integrations, options mark-to-market, and CeFi APIs.

## Fees

<table data-header-hidden><thead><tr><th width="205.32421875"></th><th width="532.0703125"></th></tr></thead><tbody><tr><td><strong>Fee</strong></td><td><strong>Mechanics</strong></td></tr><tr><td>Management fee</td><td>Accrued against TVL via chargeManagementFee(). Set per vault; changes behind 24h timelock.</td></tr><tr><td>Performance fee</td><td>Taken on yield above the high watermark.</td></tr><tr><td>Instant redemption fee</td><td>Premium for bypassing the epoch queue.</td></tr></tbody></table>

## Fund Flows

### Fund Flow: From Deposit to Strategy

The diagram below traces a deposit end-to-end. Two properties matter to curators: deposits and withdrawals never change the share price (only yield does), and capital reaches the curator only after the operator pushes it with `depositToSubaccount()`.

<img src="/files/W9RRRWGPlOEOm77RDYFx" alt="Deposit to strategy fund flow" height="323" width="624">

Figure 1: Deposit lifecycle. Steps 1–4 happen on the vault contract; steps 5–8 happen on the subaccount and feed back through NAV reporting.

The liquidity buffer (step 3) is a configurable percentage held back in the vault so instant redemptions never force a strategy unwind. Curators should treat deployable capital as TVL minus buffer minus pending redemptions, not raw TVL.

### Fund Flow: Redemptions

Redemptions follow one of two paths. The standard path is epoch-based: `requestRedeem()` queues the request and returns a claimable epoch; the operator settles the epoch in batch; the holder (or anyone, on their behalf) calls `claim()`. The instant path (`instantRedeem()`) bypasses the queue for a fee and is served from the liquidity buffer.

<img src="/files/JRgjnil1uK2TJq6nhuUR" alt="Redemption flows" height="307" width="624">

Figure 2: Epoch-based vs. instant redemption paths.

#### Curator obligations around redemptions

1. Monitor the pending-redemption book for each upcoming epoch. Upshift offers API endpoints and a Curator-specific dashboard for easier management of vault liquidity.&#x20;
2. Return capital with enough lead time for the operator to call withdrawFromSubaccount
3. Size the buffer to absorb expected instant-redemption volume.


# Risk Framework & Emergency

## Risk Framework and Guardrails

Risk controls are layered; curators should know which constraints are contract-enforced and which are process-enforced.

<table data-header-hidden><thead><tr><th width="141.1015625"></th><th width="432.47265625"></th><th></th></tr></thead><tbody><tr><td><strong>Guardrail</strong></td><td><strong>What it does</strong></td><td><strong>Enforced by</strong></td></tr><tr><td>Non-custodial perimeter</td><td>Neither Upshift nor the curator can move funds to an external EOA; transfers limited to vault ↔ subaccount ↔ whitelisted strategy contracts.</td><td>Smart contract</td></tr><tr><td>Policy engine</td><td>Whitelists the exact protocols, contracts, and functions a curator may call.</td><td>Subaccount layer</td></tr><tr><td>Liquidity buffer</td><td>Configurable % of assets held in-vault for instant redemptions; no forced unwinds.</td><td>Contract + ops</td></tr><tr><td>NAV volatility protection</td><td>Max percentage change per update cycle; mitigates bad oracles, erroneous NAV, and MEV/latency arbitrage.</td><td>Smart contract</td></tr><tr><td>Timelocks</td><td>24h delay on fee changes and withdrawal-period changes; users can exit before changes take effect.</td><td>Smart contract</td></tr><tr><td>Hypernative monitoring</td><td>Automated unwinds on critical alerts.</td><td>Integration</td></tr><tr><td>Emergency functions</td><td>Multisig can instantly pause deposits/withdrawals and pull all strategy funds back into the vault.</td><td>Owner multisig</td></tr></tbody></table>

## Emergency & Unwind

On critical alerts, exploit on a whitelisted venue, oracle failure, depeg the response sequence is:

1. **Automated unwind.** Hypernative may auto-unwind affected DeFi positions on critical alerts.
2. **Curator unwind**. The curator unwinds remaining exposure and returns capital to the subaccount.
3. **Recall**. The operator pulls funds back into the vault with withdrawFromSubaccount.
4. **Lockdown**. The owner multisig can pause deposits/withdrawals (pauseDepositsAndWithdrawals) and, if needed, sweep with emergencyWithdraw to a safe destination.

### Events to monitor

* OnEmergencyWithdraw events
* DepositWithdrawalStatusChanged events (Pause/Resume)
* Hypernative critical alerts on any whitelisted venue


# Reference: Smart Contract Interface

Every function on the vault contract that touches curator workflows, grouped by job, with the role that calls it.

Admin functions are gated to the owner multisig or operator; attempting them from a curator-managed address reverts.

## Capital Movement (Vault ↔ Subaccount)

| Function                                                         | Caller   | Purpose and notes                                                                                                      |
| ---------------------------------------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------- |
| `depositToSubaccount(uint256 amount, address subAccountAddr)`    | Operator | Transfers vault assets to a whitelisted subaccount. This is the only road capital takes toward the curator’s strategy. |
| `withdrawFromSubaccount(uint256 amount, address subAccountAddr)` | Operator | Pulls assets from the subaccount back into the vault — used to refill the buffer and fund epoch settlements.           |

## NAV and Accounting

| Function                                          | Caller        | Purpose and notes                                                                                                                                                                               |
| ------------------------------------------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `updateTotalAssets(uint256 externalAssetsAmount)` | Operator      | Syncs the vault’s internal accounting with the externally calculated value of deployed positions. This is what moves the share price. Bounded by the max-percentage-change guardrail (§8, §10). |
| `updateMaxChangePercent(uint256 newValue)`        | Owner         | Sets the ceiling/floor on share-price movement per update cycle (NAV volatility protection).                                                                                                    |
| `totalAssets()` , `totalSupply()`                 | Anyone (view) | Current accounting state; share price = totalAssets / totalSupply.                                                                                                                              |

## Redemption Processing

| Function                                                                             | Caller        | Purpose and notes                                                                                          |
| ------------------------------------------------------------------------------------ | ------------- | ---------------------------------------------------------------------------------------------------------- |
| `processAllClaimsByDate(uint256 year, uint256 month, uint256 day, uint256 maxLimit)` | Anyone        | Batch-settles all scheduled redemptions for a given epoch date.                                            |
| `updateTimelockDuration(uint256 newDuration)`                                        | Owner         | Changes the lag between requestRedeem and claim. Subject to the 24h timelock on withdrawal-period changes. |
| `getWithdrawalEpoch()`                                                               | Anyone (view) | Current epoch boundaries — poll this to plan unwinds.                                                      |

## Fee Management

| Function                                               | Caller   | Purpose and notes                                                      |
| ------------------------------------------------------ | -------- | ---------------------------------------------------------------------- |
| `chargeManagementFee()`                                | Operator | Triggers fee accrual against TVL. Emits ManagementFeeCharged(uint256). |
| `collectFees()`                                        | Operator | Sweeps accrued fees to the fee collector address.                      |
| `updateManagementFee(uint256 newManagementFeePercent)` | Owner    | Changes the management fee. Fee changes sit behind a 24h timelock.     |
| `updateWithdrawalFee(uint256 newWithdrawalFee)`        | Owner    | Standard withdrawal fee percentage.                                    |
| `updateInstantRedemptionFee(uint256 newFee)`           | Owner    | Fee charged on the instantRedeem path.                                 |
| `updateFeeCollector(address newFeeCollectorAddr)`      | Owner    | Where collected fees land.                                             |

## Limits, Pausing, and Emergency

| Function                                                                             | Caller | Purpose and notes                                                                          |
| ------------------------------------------------------------------------------------ | ------ | ------------------------------------------------------------------------------------------ |
| `updateIssuanceLimits(uint256 maxDeposit, uint256 maxWithdrawal, uint256 maxSupply)` | Owner  | Caps on deposits, withdrawals, and total share supply — the lever for capacity management. |
| `pauseDepositsAndWithdrawals(bool bPauseDeposits, bool bPauseWithdrawals)`           | Owner  | Pause/resume either side independently. Emits DepositWithdrawalStatusChanged.              |
| `emergencyWithdraw(IERC20 token, address destinationAddr)`                           | Owner  | Emergency sweep of tokens to a safe destination.                                           |

## User-facing Functions

Curators rarely call these, but depositor behavior drives liquidity planning, so the flows must be understood:

| Function                                                                  | Caller                               | Purpose and notes                                                              |
| ------------------------------------------------------------------------- | ------------------------------------ | ------------------------------------------------------------------------------ |
| `deposit(uint256 assets, address receiver)`                               | User/custodian                       | Deposit underlying assets; returns shares minted.                              |
| `requestRedeem(uint256 shares, address receiverAddr, address holderAddr)` | User/custodian                       | Starts the epoch redemption flow; returns assets owed and the claimable epoch. |
| `claim(uint256 year, uint256 month, uint256 day, address receiverAddr)`   | Anyone (for the registered receiver) | Completes a matured redemption; returns assetsClaimed and sharesBurned.        |
| `instantRedeem(uint256 shares, address receiverAddr, address holderAddr)` | User/custodian                       | Immediate exit, fee applies, served from the buffer.                           |
| `previewDeposit` , `previewRedeem` , `previewInstantRedemption`           | Anyone (view)                        | Simulation surfaces for frontends and reconciliation.                          |


# Upshift's Value

#### The flexibility you get with Upshift

* Curator picks the custody model. Run on an August subaccount or via Fordefi MPC, whichever matches how your strategy and team operate.
* Single or multi-asset EVM vaults. V1 vaults accept a single asset; V2 vaults accept a basket of deposit assets (e.g. USDC, USDT, PYUSD) with a single reference asset for redemptions.&#x20;
* Curators can build vaults on Solana and Stellar.
* Curators define the strategy and the structure of the vault.
* Management and performance fees are set per vault, configured on the smart contract and charged all on-chain.&#x20;
* Fully configurable risk controls. Withdrawal liquidity buffer, NAV volatility limits, and timelocks are set per vault to match the strategy’s liquidity and risk profile.
* Multi-chain reach. Deploy the same strategy across EVM chains, Solana and Stellar without standing up new infrastructure each time.

#### Why curate on Upshift

The reason to curate a vault on Upshift rather is that the curator inherits a deep stack:

* **Institutional distribution from day one.** Upshift vaults get access to August’s $500M+ institutional LP network (asset managers, family offices, trading desks, and treasuries).
* **Prime-brokerage access**. Through August’s prime brokerage (\~$7bn monthly volume), curators can tap credit lines, cross-margin across DeFi and CeFi, OTC options and lending, and recognition of vault receipt tokens as collateral.
* **Trust and safety**. Contracts audited multiple times, a policy engine that prevents misappropriation, independent NAV validation, and automated risk monitoring.
* **Faster time to launch.** No contract development, no security program, no distribution build-out. Configure a vault, pick a custody model, and start deploying.


# Upshift Vault Offering

Upshift gives partner protocols the ability to offer curated DeFi yield strategies and tokenized earn products. Vaults may offer yield ranging from liquid APY strategies such as LPing, to one-click rewards farming opportunities allocating deposits across various protocols.

Upshift utilizes a tiered vault architecture to support everything from simple lending to complex, multi-asset and multi-chain strategies. \
\
Upshift offers two types of vaults: **Single-asset deposit ERC-4626 vaults** and **Multi-asset deposit vaults**.

<figure><img src="/files/hqtcSh6TxqWHlpn5UZTR" alt=""><figcaption></figcaption></figure>


# Single Asset Vault

Upshift V1 vaults are built on the [ERC-4626 Tokenized Vault Standard](https://docs.openzeppelin.com/contracts/5.x/erc4626). This ensures seamless integration with the broader DeFi ecosystem. Yield is generated by capital being deployed from ERC-4626 vault to August subaccounts, where yield is realized to users in the form of increasing vault share price.&#x20;

* **Asset Model:** Users deposit a single ERC-20 asset and mint an ERC-20 vault receipt token.
* **Mechanism:** Yield is reflected through the appreciation of the share price relative to the underlying asset.

<figure><img src="/files/FP7gyxggpADvWsxKke5n" alt=""><figcaption></figcaption></figure>

#### August Subaccount

Smart contract wallets with specific permissions, enabling secure strategy management. They feature Account Abstraction and are  Multi-Chain across EVMs. Curators deploy funds within whitelisted contracts but cannot withdraw directly. Curators interact with multiple DeFi protocols securely, using WalletConnect. Subaccounts are deployed on multiple chains with the same address, enabling cross-chain strategies.

#### Key Features & Benefits

1. Simplified User Experience: A single reference token per vault reduces complexity for users.
2. Composability for capital growth: The receipt token allows for use cases on secondary markets, such as Pendle markets where PT, and YT tokens are available, or to LP the receipt token on chain, to build up secondary liquidity via Decentralized Exchanges (DEXs). Once secondary liquidity has been established the receipt token can be onboarded on DeFi lending and borrowing protocols.&#x20;
3. Multi-Chain Yield Opportunities: Vaults natively support multiple chains, allowing users to benefit from diverse DeFi yield programs without the need for manual bridging.
4. Security & Permissions: Curators manage vaults but are limited by strict permissions and whitelisting controls.
5. Automated Unwinds: DeFi positions can be automatically unwound upon critical alerts detected by Hypernative, reducing risk.

#### Roles

1. Vault Owner: Multisig wallet with Upshift, partner protocol and strategist that controls key vault parameters and emergency functions of the vault smart contract.
2. Vault Operator - Responsible for processing withdrawals, updating the net asset value (NAV) of the vault and moving liquidity between the vault contract and strategist subaccount.
3. Subaccount Manager (Strategist) - Deploys capital and manages strategies within whitelisted contracts.

Refer to this [link](https://etherscan.io/address/0x8e91d0c719d7d1c0e6cef764c2437744763f7283#code) for the on-chain implementation contract on Ethereum.


# Multi Asset Vault

Unlike V1 vaults, V2 allows for multi-deposit assets, providing Curators with greater flexibility.

* **Asset Model:** Users deposit multiple ERC-20 assets and mint an ERC-20 receipt token. Withdrawals from the vault are processed to the single reference asset of the vault. (e.g. A vault accepts both USDC and USDT deposits but the reference asset is set to USDC. All redemptions are processed in USDC.)&#x20;
* **Baskets**: Curators can define a basket of accepted assets (e.g., USDC, USDT, DAI) that mint a single, unified share token.

<figure><img src="/files/6g9vSDTX5sfCeX1UcPGq" alt=""><figcaption></figcaption></figure>

When architecting a V2 vault, the most critical design decision for partners and strategists is the Custody & Execution Model. This choice determines how assets are secured, how strategies are executed, and how the vault’s Net Asset Value (NAV) is reported.

Upshift provides two primary institutional paths: the August Subaccount (Smart Contract Wallet) and the Fordefi (MPC) Solution.

#### Upshift Vault Custody Models

1. **August Subaccount:**
   1. Deployed by August
   2. Owned by the Vault
   3. Strategist given trader role
   4. Trader role allows Strategist to execute strategy; interact with DeFi protocols.
   5. Subject to permissioned security scheme controlling whitelisting of integrations
      1. Protocol and token integrations include price feeds to capture value of positions (spot), or value of positions on DeFi protocols.&#x20;
      2. Integrations mean August can calculate NAV of positions.&#x20;
   6. Assets cannot be sent to external addresses.
   7. Partners control whitelisting of protocols and tokens (via August).
   8. Execution of trades via swap module
      1. Swap module only allows trades between whitelisted tokens.
      2. Tokens cannot be sent to an external address.&#x20;
   9. Bridge module to allow run chain strategies, which allow strategist to bridge assets to subaccounts if the subaccount is deployed on other chains.&#x20;
      1. Supports Layerzero (stargate), and Chainlink CCIP bridging standard. Bridge module prevents funds being sent to external addresses.
   10. August can calculate the mark to market for options (OTC or Deribit).
   11. August can capture CeFi perp position value via APIs.\
       &#x20;
2. **Fordefi (MPC):**
   1. August can provide access to Fordefi through a shared workspace.&#x20;
   2. Transaction policy to control the contract, and token approvals.
   3. Strategist submits transaction policy requests, August team, and third-party (protocol or chain partner) if applicable are required to approve changes to the transaction policy.&#x20;
   4. Strategist calculates NAV. An operator address is set up within the shared workspace. The Strategist is responsible to propose NAV updates, which is then validated by the August pricing engine.

Refer to this [link](https://etherscan.io/address/0x4eac314be8fec32bfe8f7189040b64e050e801ab#code) for the on-chain implementation contract on Ethereum.


# Atomic Redemption Vault

The Atomic Redemption Vault turns a tokenized-asset vault into a real-time settlement account. Redemptions are settled instantly at the moment they are requested with no withdrawal queue, no pre-funded buffer, and no manual operator intervention. Idle capital continues to earn yield right up until the instant it is needed for settlement.

<table><thead><tr><th width="135.30859375"></th><th></th></tr></thead><tbody><tr><td><strong>Pattern</strong></td><td>ERC-4626 tokenized vault with an attached instant-settlement module</td></tr><tr><td><strong>Deposit Asset</strong></td><td>Any ERC-20 token (e.g. USDC, USDT, WETH, WBTC)</td></tr><tr><td><strong>Share Token</strong></td><td>Fungible share token issued by the vault</td></tr><tr><td><strong>Redemptions</strong></td><td>Atomic; shares converted to the reference asset and settled in one transaction</td></tr><tr><td><strong>Liquidity Source</strong></td><td>Built-in settlement module backed by Aave / Morpho lending markets</td></tr><tr><td><strong>Yield</strong></td><td>Earned on idle balances until the moment of redemption</td></tr></tbody></table>

## The Problem

Tokenized-asset vaults conventionally impose a multi-day withdrawal queue on every redemption. A holder requests a redemption, the request enters a queue, the curator unwinds positions to raise the underlying, and the holder claims their funds days later in a separate transaction.

Any application that needs predictable, on-demand liquidity from such a vault such as payments rail, a settlement layer, a treasury sweep, or any integrator that must pay out the moment a user acts is not suited to tolerate that latency. The standard workaround is to pre-fund a separate cash buffer or credit line that fronts redemptions while the queue clears. That buffer sits idle, earns nothing, introduces counterparty risk, and has to be topped up and rebalanced by hand.

## The Solution

The Atomic Redemption Vault settles a redemption in a single transaction. When a redemption is requested, the vault converts the holder's shares to the reference asset of the vault and pays out atomically. A built-in liquidity layer guarantees that settlement capital is always available, while the remaining balance stays deployed in yield strategies. There is no request-and-wait cycle and no separate claim step: the conversion, the liquidity recall, and the payout all happen inside one atomic operation.

## Why an Atomic Redemption Vault

<table><thead><tr><th width="176.6171875"></th><th width="180.8359375">Pre-Funded Cash Buffer</th><th width="182.47265625">Classic Vault + Queue</th><th>Atomic Redemption Vault</th></tr></thead><tbody><tr><td><strong>Settlement speed</strong></td><td>Instant (from buffer)</td><td>1–7 day queue</td><td>✓ Instant (from vault)</td></tr><tr><td><strong>Capital efficiency</strong></td><td>Low (cash sits idle)</td><td>High (illiquid)</td><td>✓ High and liquid</td></tr><tr><td><strong>Yield on balance</strong></td><td>None</td><td>Yes, but locked</td><td>✓ Yes, until moment of redemption</td></tr><tr><td><strong>Liquidity management</strong></td><td>Requires manual top-ups</td><td>Manual rebalancing</td><td>✓ Fully automated</td></tr><tr><td><strong>Asset conversion</strong></td><td>External DEX / OTC</td><td>External DEX / OTC</td><td>✓ Native, oracle-priced</td></tr><tr><td><strong>Integration</strong></td><td>Custom build</td><td>Custom build</td><td>✓ Standard vault interface</td></tr></tbody></table>

## Key Capabilities

### **Instant settlement**

Converts shares to reference asset and settles atomically in a single transaction. No request-and-wait cycle and no separate claim step.

### **Yield until the moment of redemption**

Balances earn yield in the settlement module and curator strategies until the instant they are needed. There is no trade-off between earning and liquidity.

### **Always-on liquidity**

The vault auto-pulls funds from the yield layer the moment settlement requires it. No operator intervention and no manual rebalancing.

### **Configurable risk controls**

Oracle price guards, per-transaction rate limits, redemption fee caps, and spread bounds protect the vault under high-velocity redemption flow. Each parameter is configurable per vault.

### **Native, oracle-priced conversion**

Shares are converted to the reference asset natively at oracle-referenced NAV, with no dependency on an external DEX or OTC desk to source the settlement asset.

### **Standard vault interface**

The vault exposes a standard ERC-4626 interface, so integrators connect through the same deposit / redeem surface they already use for any other vault.


# Architecture

The vault sits between the party requesting redemption and the yield strategies that hold the bulk of the capital. An instant-settlement module maintains an immediately accessible reserve, and risk controls bound every settlement.

<figure><img src="/files/rxyw73gR8yxCOL8U8C3S" alt=""><figcaption></figcaption></figure>

### **Requestor / Integrator**&#x20;

The holder or application that submits an atomic redemption request and receives the reference asset in the same transaction.&#x20;

This is deliberately generic: it can be an end user redeeming directly, a payments integrator settling a transaction, or any contract that needs instant liquidity on demand.

### **Atomic Vault** Contract

The tokenized cash account. It holds the share-pricing logic, converts shares to reference assets against current NAV, and orchestrates the liquidity recall and payout atomically.

### **Yield Strategies**

Curator-managed allocations that hold the majority of vault capital in capital-efficient positions. Capital is deployed automatically when idle and recalled automatically when a redemption needs it.

### **Instant Settlement Module**

A liquidity layer that keeps reserves in highly liquid lending markets (Aave and Morpho) where they can be withdrawn synchronously within the settlement transaction. The module is drawn down to fund settlement and topped back up when surplus liquidity returns.

### **Oracle / Risk Controls**

Price feeds and guardrails (oracle price guards, per-transaction rate limits, redemption fee caps, and spread bounds) that bound every settlement and protect the vault under high-velocity redemption flow.

Refer to this [link](https://etherscan.io/address/0x4eac314be8fec32bfe8f7189040b64e050e801ab#code) for the on-chain implementation contract on Ethereum.


# How It Works

## Deposit Flow

1. The depositor sends `$Deposit` to the vault and receives share tokens minted against current NAV using ERC-4626 share math.
2. Newly deposited capital is **auto-deployed**: the vault routes idle balance into the instant-settlement module (which places it into Aave / Morpho) and into the curator's yield strategies, keeping only the working reserve liquid.
3. From this point the holder's balance earns yield continuously, with no trade-off between earning and being able to redeem.

## Atomic Redemption Flow

This is the core flow the vault is built around. Every step below executes inside a single transaction and if any step fails (insufficient liquidity, a stale oracle, a breached limit), the whole transaction reverts and no partial state is committed.

### **1. Request**

the requestor calls redeem for a quantity of shares (or a target amount of `$Deposit`). No queue entry is created; the call settles or reverts in place.

### **2. Price**&#x20;

The vault reads the oracle and computes the `$Deposit` owed against current NAV using ERC-4626 conversion math. Oracle price guards reject the settlement if the price is stale or outside configured bounds.

### **3. Liquidity check & recall**

**T**he vault checks its working reserve against the amount owed. If the reserve is short, it recalls the shortfall on demand: it draws down from the instant-settlement module, which withdraws synchronously from the Aave / Morpho positions, and, where configured, recalls from the curator's yield strategies. Because these venues support same-transaction withdrawal, the recall completes inside the settlement call.

### **4. Risk gates**

Per-transaction rate limits, redemption fee caps, and spread bounds are evaluated. A request that would exceed the configured velocity or move beyond the allowed spread is rejected rather than settled on unfavorable terms.

### **5. Settle**

**T**he shares are burned and `$Deposit` is transferred to the requestor, all atomically. A single transaction takes the holder from shares to settled `$Deposit`.

## Liquidity Management

The vault keeps a working reserve sized to absorb expected redemption velocity. Two automated processes maintain it:

* **Top-up / re-deploy:** when redemptions slow or new deposits arrive, surplus liquidity above the working reserve is redeployed into the settlement module and yield strategies so it does not sit idle.
* **Recall:** when redemptions accelerate and the reserve is drawn down, the vault pulls capital back from the settlement module (and yield strategies) automatically, with no operator action.

Both directions are driven by the vault's own logic against the reserve target. There is no manual top-up and no manual rebalancing.


# Risk Management Framework

Upshift’s "Institutional Grade" claim is backed by a multi-layered defense-in-depth strategy. We treat risk as a dynamic variable rather than a static setting.

#### **Protocol-Level Safeguards**&#x20;

**Non-Custodial Architecture:** Neither Upshift nor the Curator can ever withdraw user funds to an external EOA. Funds can only move between whitelisted "Strategy" contracts (DeFi Protocols) and the vault smart contract.

**Withdrawal Liquidity Buffer:** A configurable percentage of assets is always held in the "Buffer" to ensure immediate redemptions without forcing a strategy unwind.

**NAV Volatility Protection:** To protect against price manipulation and oracle latency, Upshift vaults implement a Max Percentage Change constraint. This parameter enforces a strict ceiling and floor on the fluctuation of the share-to-asset ratio within a single update cycle. By capping the rate of change for the vault’s NAV, the protocol effectively mitigates risks associated with faulty oracle feeds or erroneous NAV reporting. Furthermore, this mechanism eliminates "latency arbitrage" by preventing MEV snipers from exploiting temporary price discrepancies between the vault and external markets.

#### Curator-Managed Guardrails

**Timelocks:** Critical changes such as changing fee structures, updating the withdrawal period are subject to a 24 hour timelock, giving users time to exit if they disagree with the change.

#### Emergency Procedures

**Emergency functions:** A multi-sig controlled function that can instantly pause deposits/withdrawals and move all strategy funds back into the vault.<br>


# Vault Accounting Mechanics

Upshift vaults employ a "share-based" accounting model. The value of these shares is determined by the vault's asset-to-share ratio, also known as the "price per share" or "exchange rate".

The asset-to-share ratio (V<sub>p</sub>) is defined as:

$$
V\_p = TotalUnderlyingAssets/TotalVaultSharesInCirculation
$$

1. **Initial State:** When a vault is initialized, the first deposit typically sets the initial asset-to-share ratio to a simple value, often 1:1 (e.g., 1 ETH deposited receives 1 vault share).
2. **Deposit Mechanism:** When a user deposits assets:
   1. The vault calculates the equivalent amount of vault shares to mint based on the current asset-to-share ratio.
   2. The deposited assets are added to the vault's total underlying assets.
   3. The corresponding shares are minted and transferred to the depositor. Crucially, **deposits themselves do not change the asset-to-share ratio.** They simply increase both the numerator (Total Underlying Assets) and the denominator (Total Vault Shares) proportionally.
3. **Withdrawal Mechanism:** When a user withdraws assets:

   1. The vault calculates the amount of underlying assets to return based on the current asset-to-share ratio and the number of shares the user wishes to burn.
   2. The shares are burned from the user's balance.
   3. The underlying assets are transferred from the vault to the user. Similar to deposits, **withdrawals do not change the asset-to-share ratio**.

#### Asset-to-Share Ratio Calculation

The exchange rate determines the price of shares:

* When yield accrues, Total Assets increases.
* New deposits and withdrawals update Total Shares.
* High Watermark logic prevents performance fees on previous gains.

The critical effect of yield compounding is the increase in the Total Underlying Assets in Vault while the Total Vault Shares in Circulation remains constant (excluding new deposits or withdrawals).

* **Before Yield Compounding:**\
  Total Assets = X, Total Shares = Y, Ratio = X/Y.
* **After Yield Compounding:**\
  Yield Earned = Z. Total Assets becomes X+Z. Total Shares remain Y.
* **New Ratio:** (X+Z)/Y > X/Y.

This increasing asset-to-share ratio means that each vault share held by a user accrues more underlying assets over time. When a user redeems their shares, they receive a larger quantity of the underlying asset than they initially deposited, reflecting the accumulated yield.

Example of user flow:

* A user deposits 1,000 USDC into a USDC-denominated vault.
* Initial state: Vault has 100,000 USDC, 100,000 shares. Ratio = 1 USDC/share.
* User receives 1,000 vault shares. Total vault: 101,000 USDC, 101,000 shares. Ratio remains 1 USDC/share.
* Over a week, the vault's strategies generate 500 USDC in yield.
* This 500 USDC is compounded back into the vault.
* New state: Vault has 101,500 USDC, 101,000 shares. New Ratio ≈ 1.00495 USDC/share.
* If the user withdraws their 1000 shares, they now receive 1000×1.00495=1004.95 USDC, demonstrating the yield earned.


# Solana Vaults

Upshift Solana Vaults bring the same institutional-grade vault infrastructure to the Solana ecosystem. Built as a native Anchor program, Solana vaults offer fast, non-custodial yield generation transparently on-chain, with actively managed strategies.

|                   |                                                 |
| ----------------- | ----------------------------------------------- |
| **Program**       | `up12bytoZBmwofqsySf2uqKQ7zpfeKiAWwfvqzJjtRt`   |
| **Framework**     | Anchor (v0.1.0)                                 |
| **Deposit Asset** | Any SPL Token                                   |
| **Share Token**   | PDA-minted receipt token with on-chain metadata |
| **Redemptions**   | Instant, no lock-ups                            |

### Vault Architecture

Each Upshift Solana vault is deployed as an instance of the `august_vault` program. A vault is initialized with three roles  (**admin**, **operator**, and **fee recipient),** and is bound to a single SPL deposit token (e.g. USDC). On initialization, the program creates:

* A **VaultState** PDA that stores all vault configuration and accounting
* A **share mint** PDA used to mint receipt tokens to depositors
* A **vault token ATA** PDA that holds the vault's deposit token balance

### Deposit Flow

1. User calls `deposit(amount)` with their SPL tokens
2. The vault transfers tokens from the user's account to the vault token ATA
3. Share tokens are minted to the user proportional to the current NAV:

```
   shares_minted = deposit_amount * total_share_supply / total_AUM
```

4. `local_aum` increases by the deposit amount
5. A `DepositEvt` is emitted with `caller`, `receiver`, `amount`, and `shares`

### Redemption Flow

1. User calls `redeem(shares)` with the number of share tokens to burn
2. The vault calculates the underlying token amount based on current NAV:

```
   tokens_returned = shares * total_AUM / total_share_supply
```

3. If a withdrawal fee is configured, the fee portion (in bps) is routed to the `fee_recipient`
4. Share tokens are burned and underlying tokens are transferred to the user
5. `local_aum` decreases by the redeemed amount
6. A `WithdrawEvt` is emitted with `caller`, `receiver`, `owner`, `assets`, and `shares`

### Share Price Derivation

The share token price is fully derivable on-chain:

```
share_price = (local_aum + deployed_aum) / total_share_supply
```

* **`local_aum`** - tokens held directly in the vault's token ATA. Fully verifiable on-chain.
* **`deployed_aum`** - value of tokens deployed in external strategies, reported by the operator via `operator_update_aum`.
* **`total_share_supply`** - readable from the share mint account.

Any Solana program can compute the share price by reading the VaultState account and the share mint. No external oracle is required.

Refer to this [link](https://github.com/fractal-protocol/solana-upshift-vault-programs) for Upshift Solana public repo.


# Curator Model

An appointed curator (the **operator**) manages the vault's yield strategy through three operations:

| Operation              | What It Does                                                                                                   |
| ---------------------- | -------------------------------------------------------------------------------------------------------------- |
| **Deploy Capital**     | Withdraws tokens from the vault to a shared MPC workspace. Decreases `local_aum`, increases `deployed_aum`.    |
| **Return Capital**     | Deposits tokens back into the vault from external strategies. Increases `local_aum`, decreases `deployed_aum`. |
| **Report Performance** | Updates `deployed_aum` to reflect the current value of externally deployed capital (gains or losses).          |

The curator operates within strict bounds set by the Upshift team. A policy engine governs which protocols, contracts, and functions the curator is authorized to interact with as part of the vault's strategy. As an additional safety measure the Admin sets AUM change limits, capping how much `deployed_aum` can move per update, preventing sudden NAV manipulation.


# Risk & Security Model

### AUM Change Limits

The vault enforces asymmetric increase and decrease limits on `deployed_aum` updates. These are set by the admin in basis points via `set_aum_limits(increase_limit, decrease_limit)`.

* **Increase limit** - caps how much `deployed_aum` can grow in a single `operator_update_aum` call
* **Decrease limit -** caps how much `deployed_aum` can fall in a single update (typically set tighter than the increase limit)

This prevents sudden, large NAV swings, whether from operator error or attempted manipulation. The IDL enforces a maximum value via the `AumLimitTooHigh` error.

### Pause Mechanism

The admin can instantly pause all vault operations via `pause()`. When paused:

* `deposit` and `redeem` calls revert with `VaultPaused`
* Operator functions continue to work (the curator can still manage deployed capital)
* The admin can unpause at any time via `unpause()`

This provides a circuit breaker in case of an exploit, market event, or strategy issue.

### Admin Transfer Safety

Admin role transfers use a two-step nomination process:

1. Current admin calls `nominate_admin(new_admin)` . This creates a `NominatedAdmin` PDA with the nominee and an expiry timestamp
2. Nominated admin calls `accept_admin_nomination()` . Must be called before expiry

This prevents accidental or malicious ownership changes. If the nomination expires, it must be re-issued. The `NominatedAdmin` PDA is closed upon acceptance.

### Audit History

Built on the same architecture as Upshift's EVM vaults that secure $400M+ in TVL. Audited 3x in the past 12 months. A separate audit has been conducted for the Solana contracts and can be found [here](/developer-docs/smart-contract-audits)


# Stellar Vaults

Upshift Stellar Vaults bring the same institutional-grade vault infrastructure to the Stellar ecosystem. Built as a native Soroban smart contract on top of OpenZeppelin's stellar-tokens library, Stellar vaults offer fast, non-custodial yield generation transparently on-chain, with actively managed strategies.

| Contract      | AugustVault (upgradeable Soroban contract)                  |
| ------------- | ----------------------------------------------------------- |
| Framework     | Soroban + OpenZeppelin stellar-tokens (ERC-4626 pattern)    |
| Deposit Asset | Any SEP-41 token (native SAC or custom contract)            |
| Share Token   | Fungible share token issued by the vault contract itself    |
| Redemptions   | Instant, no lock-ups (bounded by the vault's local balance) |

### Vault Architecture

Each Upshift Stellar vault is a deployment of the AugustVault Soroban contract. The constructor binds the vault to a single underlying token, sets the share token's name and symbol, fixes a virtual decimals offset (used for inflation-attack protection).&#x20;

The contract follows the ERC-4626 Tokenized Vault Standard. Share-pricing logic is reimplemented on top of OpenZeppelin's primitives so that NAV reflects not only the tokens physically held by the vault but also capital that has been deployed off-vault.\
\
`total_assets, convert_to_shares, convert_to_assets, all four preview_* functions, and max_deposit / max_mint / max_withdraw / max_redeem` \
\
On deployment the contract initializes:

* Vault instance storage holding the asset address, share-token metadata, decimals offset, admin, operator, paused flag, deployed-assets aggregate, AUM limits, and the subaccount whitelist
* The share token issued by the vault itself (the same contract that custodies the underlying asset is also the share issuer)
* An on-chain TTL bump on every state-changing entrypoint so the instance never expires under normal traffic; a permissionless extend\_ttl() is provided as a fallback for quiet periods

### Deposit Flow

1. User calls deposit(assets, receiver, from, operator) with their underlying tokens
2. The operator (the address authorizing the deposit) is require\_auth'd and the vault verifies it is not paused
3. The vault converts the asset amount to shares against current NAV using ERC-4626 math with the configured decimals offset:

| shares\_minted = assets \* (total\_supply + 10^offset) / (total\_assets + 1) |
| ---------------------------------------------------------------------------- |

4. The underlying tokens are pulled from from into the vault's contract balance, share tokens are minted to receiver, and the contract's instance TTL is extended
5. A standard ERC-4626 Deposit event is emitted

`mint(shares, receiver, from, operator)` is the symmetric entrypoint: callers specify exact shares to mint and the vault computes the assets required (rounding up).

### Redemption Flow

1. User calls redeem(shares, receiver, owner, operator) or withdraw(assets, receiver, owner, operator)
2. The operator is authorized and the vault verifies it is not paused
3. The vault computes the asset payout against current NAV:

| assets\_out = shares \* (total\_assets + 1) / (total\_supply + 10^offset) |
| ------------------------------------------------------------------------- |

4. The redemption is capped at the vault's local token balance — max\_withdraw and max\_redeem are the minimum of the user's entitlement and the assets physically present in the vault. If the user's pro-rata share exceeds what's currently liquid, they must wait for the operator to return capital
5. Share tokens are burned from owner and the underlying is transferred to receiver

A standard ERC-4626 Withdraw event is emitted

### Vault Share Price Mechanics

The share token price is fully derivable on-chain:

| <p>share\_price = total\_assets / total\_supply</p><p>total\_assets = local\_balance</p><p>             + Σ IStrategy::get\_balance() over all Strategy subaccounts</p><p>             + deployed\_assets</p> |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

* local\_balance: the vault contract's own balance of the underlying token. Fully verifiable on-chain via a direct token.balance(vault) read
* Σ get\_balance(): each Strategy subaccount self-reports its full position (idle + deployed) on every NAV query. A strategy that traps, returns a non-i128, or returns a negative value causes the vault to halt the calculation with a StrategyUnreachable (or NegativeStrategyBalance) error rather than silently zero out — under-reporting NAV would let a buggy strategy crash the share price
* deployed\_assets: the aggregate of capital attributed to Wallet subaccounts (the value the operator has moved off-vault to addresses whose balances the vault cannot trustlessly read). The invariant Σ WalletNetDeployed == deployed\_assets is maintained by every routine path; get\_wallet\_deployed\_assets() exposes the Σ side for monitoring
* total\_supply: the share token's supply, readable directly from the vault contract

Any Soroban contract can compute the share price by calling total\_assets() and total\_supply() on the vault. No external oracle is required.

The vault uses ERC-4626's virtual-shares-and-virtual-assets formula with a configurable decimals offset (minimum 3, maximum 10, default 6).

Refer to this [link](https://github.com/upshift-protocol/stellar-upshift-vault-contracts) for Upshift Stellar public repo.


# Curator Model

An appointed curator (the operator) manages the vault's yield strategy by moving capital into and out of a whitelisted set of subaccounts. Each subaccount has one of two types, registered at the time it is added:

| **Subaccount** **Type** | **Custody Model**                                                                                                                           | **NAV Accounting**                                                                                    |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| Strategy                | Another Soroban contract that implements the vault's IStrategy interface (deposit, withdraw, get\_balance, get\_local\_balance, get\_asset) | Self-reports the full position (idle + deployed) on every NAV calculation via get\_balance()          |
| EOA                     | A MPC-controlled address (via Fordefi)                                                                                                      | Vault-controlled tracker (WalletNetDeployed) maintained per-wallet and aggregated as deployed\_assets |

The operator interacts with subaccounts through the following entrypoints:

| **Operation**                  | **What It Does**                                                                                                                                                                                                                                 |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `deposit_to_subaccount`        | Transfers tokens from the vault to a subaccount. For Strategy targets, also calls IStrategy::deposit so the strategy knows tokens have arrived. For EOA targets, increments WalletNetDeployed and the aggregate deployed\_assets.                |
| `withdraw_from_subaccount`     | Pulls tokens back. For Strategy targets, calls IStrategy::withdraw (push model). For EOA targets, pulls via SEP-41 transfer\_from (the wallet owner must have pre-approved the vault as spender), then decrements the tracker and the aggregate. |
| `update_wallet_deployed`       | Reconciles a single Wallet subaccount's attributed value used to recognize gains, losses, or external dust. Moves the per-wallet tracker and the aggregate deployed\_assets in lockstep.                                                         |
| `update_wallet_deployed_batch` | Reconciles multiple Wallet subaccounts atomically. The per-call AUM rate limit is applied to the net delta, so a batch with offsetting moves (+100k on A, −100k on B) passes the limiter.                                                        |
| `update_deployed_assets`       | Aggregate-only emergency reconciliation. Documented as deprecated for routine use after the introduction of per-wallet attribution.                                                                                                              |

Subaccount membership is controlled by the admin via `add_subaccount` and `remove_subaccount`. The admin is a multi-sig address with an signer quorum involving all parties of the upshift vault. The whitelist is capped at 10 entries.&#x20;

The curator operates within strict bounds set by the Upshift team. A policy engine governs which protocols, contracts, and functions the curator is authorized to interact with as part of the vault's strategy. As an additional safety measure the admin sets AUM change limits, capping how much deployed\_assets can move per update and per rolling window, preventing sudden NAV manipulation.


# Risk and Security Model

### AUM Change Limits

The vault enforces both per-call and cumulative-window rate limits on every move of deployed\_assets. Limits are asymmetric (increases and decreases are configured separately), denominated in basis points of the pre-move deployed\_assets, and applied by the same shared helper used by every aggregate-mutating function (update\_deployed\_assets, update\_wallet\_deployed, update\_wallet\_deployed\_batch, and remove\_wallet\_and\_reconcile).

* Per-call limits: `set_aum_limits(increase_bps, decrease_bps)` caps how much deployed\_assets can change in a single call. Decreases are typically configured tighter than increases
* Cumulative window limits: s`et_aum_window_limits(window_duration, cumulative_increase_bps, cumulative_decrease_bps)` caps the sum of changes within a fixed tumbling window (minimum 1 hour, maximum 7 days; default 24 hours). The window resets entirely on expiry, and changing limits resets it immediately so stale counters never interact with new configuration. Cumulative limits are measured against a base\_deployed snapshot captured at window start, not the live value
* Zero-boundary behavior: when deployed\_assets == 0, percentage-based limits are undefined and skipped. The admin controls risk at this boundary through operator key management and the subaccount whitelist

Calls that exceed the per-call limit revert with AumChangeExceedsLimit; calls that exceed the cumulative limit revert with AumCumulativeChangeExceedsLimit.

### Pause Mechanism

The admin can instantly halt user-facing operations via `pause()`. While paused:

* `deposit`, `mint`, `withdraw`, and `redeem` all revert; `max_deposit`, `max_mint`, `max_withdraw`, and `max_redeem` all return 0
* `add_subaccount` reverts (no new strategies or wallets can be onboarded mid-incident)
* Operator increases to deployed\_assets (and any per-wallet tracker increase, including a single positive entry inside an otherwise net-negative update\_wallet\_deployed\_batch) revert with VaultPaused. Decreases remain permitted so the operator can recognize losses and pull capital back
* `withdraw_from_subaccount` continues to operate so the curator can return capital
* The admin can unpause at any time via unpause()

The asymmetry is deliberate: a pause must not let a compromised operator inflate share prices by booking phantom gains, but it must still allow loss recognition and capital recovery during an emergency.

### Admin Transfer Safety

Admin role transfers use a two-step nomination process with an explicit deadline:

1. Current admin calls `propose_admin(new_admin, deadline)`. This records a pending nominee and an absolute ledger-timestamp expiry
2. Nominated admin calls `accept_admin()`. The pending nominee must require\_auth and the call must arrive before deadline

If the nomination expires (AdminProposalExpired) it must be re-issued. The current admin can cancel a pending proposal at any time via cancel\_admin\_proposal. Self-nominations (new\_admin == admin) and zero/past deadlines are rejected at proposal time. This prevents accidental or malicious ownership changes; the deadline also prevents a long-lived pending nomination from being exploited later.

Operator changes are a single-step admin action via `set_operator`.&#x20;

### Wallet-Attribution Invariant

For Wallet subaccounts the vault maintains a per-wallet WalletNetDeployed tracker that is moved in lockstep with the aggregate deployed\_assets on every routine operator action.&#x20;

| Σ WalletNetDeployed\[w] == deployed\_assets |
| ------------------------------------------- |

The invariant is enforced by deposit\_to\_subaccount, withdraw\_from\_subaccount, update\_wallet\_deployed, update\_wallet\_deployed\_batch, and remove\_wallet\_and\_reconcile. The vault also enforces a per-wallet over-pull guard: withdraw\_from\_subaccount rejects pulls that exceed the wallet's tracker (WalletOverWithdraw), so an operator cannot silently consume another wallet's share of deployed\_assets while informally recognizing a gain or recovering dust.

Two escape hatches can break the invariant by design — update\_deployed\_assets (aggregate-only) and seed\_wallet\_net\_deployed (per-wallet, admin-only, with a WalletSeedBelowTracker guard that prevents zeroing a tracker without a matching aggregate write-down). Both are reserved for emergency storage corrections; off-chain monitoring compares get\_deployed\_assets() against get\_wallet\_deployed\_assets() and alerts on divergence.

### Contract Upgradeability

The vault implements OpenZeppelin's UpgradeableInternal trait, gated on require\_admin.&#x20;

### Audit History

A separate audit has been conducted for the Stellar contracts and is available [here](https://docsend.com/view/vufj5dygn99dg3i7).


# Upshift HyperCore Relayer

The Hypercore Relayer is a long-running service that lets users deposit into a HyperEVM tokenized vault directly from HyperCore. A user's funds first arrive in the relayer's account on HyperCore (Hyperliquid's L1 ledger). The relayer detects that arrival in real time, bridges the funds from HyperCore to HyperEVM, and then deposits them into the destination tokenized vault on the user's behalf.

The service runs as one process per vault. HyENA Liquidity Provider Vault (HLPe) is supported by the Upshift Hypercore Relayer service. You can use it [here](https://app.hyena.trade/hyena/vault).

<table data-header-hidden><thead><tr><th width="257.05078125"></th><th></th></tr></thead><tbody><tr><td>Term</td><td>Meaning</td></tr><tr><td>HyperCore</td><td>Hyperliquid's native ledger where token balances and transfers live. Incoming user funds land here first, in the relayer's account.</td></tr><tr><td>HyperEVM</td><td>The EVM-compatible chain where the tokenized vault lives. Deposits are ultimately made here.</td></tr><tr><td>Bridge</td><td>The HyperCore to HyperEVM transfer of the relayer's own balance. This moves value across the two environments before the vault deposit can happen.</td></tr><tr><td>Tokenized vault</td><td>The destination on HyperEVM. Users receive vault shares for their deposit.</td></tr><tr><td>Relayer address / vault</td><td>The address the service watches and acts on behalf of. Signing is done through a MPC EOA wallet (Fordefi), so the service never holds raw private keys.</td></tr><tr><td>Transfer hash</td><td>The unique identifier for a single user deposit, used as the primary key throughout the pipeline and in the database.</td></tr><tr><td>Non-funding ledger update</td><td>A Hyperliquid websocket event type representing balance changes other than funding payments. Incoming deposits surface here.</td></tr></tbody></table>


# High-Level Architecture

The service is a pipeline of four asyncio components connected by three bounded queues. A single user deposit flows left to right through them:

1. **Reader**: keeps a websocket open to Hyperliquid, subscribes to the relayer's non-funding ledger updates, and pushes raw matching messages onto message\_queue. It never does heavy work itself, so the receive loop never blocks.
2. **Message dispatcher**: pulls messages off message\_queue and spawns a processing task per message, bounded by a semaphore. Detected deposits are enqueued onto bridge\_queue.
3. **Bridge worker**: pulls a batch off bridge\_queue, bridges the aggregate amount from HyperCore to HyperEVM, marks the transfers as bridged, and forwards each transfer to deposit\_queue.
4. **Deposit worker**: pulls a batch off deposit\_queue and submits a single on-chain batchDeposit call to the vault via the Fordefi-signed BatchDepositor.


# End-to-End Flow

A single deposit travels through the system as follows:

1. **Funds arrive on HyperCore:** A user sends supported tokens to the relayer address. Hyperliquid emits a userNonFundingLedgerUpdates event.
2. **Reader receives and filters:** Matching messages are placed on message\_queue.
3. **Dispatcher fans out:** Spawns a task that calls handle\_message then handle\_non\_funding\_ledger\_updates\_data.
4. **Address guard + per-update parsing:** The handler confirms the update is for the configured relayer address, then concurrently runs handle\_non\_funding\_ledger\_update for every update. That helper parses each deposit, persists a HyperliquidRelayerDeposit record keyed by transfer hash, and enqueues the (transfer\_hash, amount, recipient) tuple onto bridge\_queue.&#x20;
5. **Bridge batching:** It then checks gas balances, checks the HyperCore balance covers the total, bridges the aggregate amount to HyperEVM via Fordefi, marks all transfers as is\_bridged, and forwards each onto deposit\_queue.
6. **Deposit batching:** Process batched transfers, checks the HyperEVM token balance covers the total, submits one batch\_deposit transaction through BatchDepositor and stamps the returned fordefi\_id onto every matching deposit row.
7. **Settlement:** The vault credits each recipient with shares. Because the deposit call does not wait for confirmation, final on-chain settlement is tracked out of band via the fordefi\_id.

### Balance prerequisites

The relayer wallet must hold:

* enough gas on HyperEVM
* enough of the token on HyperCore to cover pending bridges
* enough of the token on HyperEVM to cover pending deposits

A failure in any of these checks will surface as a bridge or deposit batch failure.

### Recovering failed transfers

Deposits marked is\_failed = True in the HyperliquidRelayerDeposit table are the authoritative list of items needing attention. After fixing the root cause, re-enqueue or replay those transfer hashes through the appropriate stage.

<br>


# Smart Contract Audits

[Halborn (April 2026) - Stellar Vault](https://docsend.com/view/vufj5dygn99dg3i7)

[Hacken (April 2026) - Atomic Vault](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXmCdFTPUHEQ60lKvKop0%2Fuploads%2FIqnlimIRQFwlYr81fncl%2F26.01.30%20-%20Hacken%20Audit%20-%20AllocationWhitelist.pdf?alt=media\&token=cd5e1ce5-a20e-4abf-91ad-74deeb064911)

[Hacken (March 2026) - Instant Redemption Subaccount](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXmCdFTPUHEQ60lKvKop0%2Fuploads%2F8UO5oxZS7bEcnyNpIbfS%2F25.12.18%20-%20Hacken%20Audit.pdf?alt=media\&token=1786bf45-7de2-486b-baef-c40f1250f970)

[Hacken (January 2026) — AllocationWhitelist](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXmCdFTPUHEQ60lKvKop0%2Fuploads%2FIqnlimIRQFwlYr81fncl%2F26.01.30%20-%20Hacken%20Audit%20-%20AllocationWhitelist.pdf?alt=media\&token=cd5e1ce5-a20e-4abf-91ad-74deeb064911)

[Hacken (December 2025)](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXmCdFTPUHEQ60lKvKop0%2Fuploads%2F8UO5oxZS7bEcnyNpIbfS%2F25.12.18%20-%20Hacken%20Audit.pdf?alt=media\&token=1786bf45-7de2-486b-baef-c40f1250f970)

[OtterSec (September 2025) - Solana Vault](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXmCdFTPUHEQ60lKvKop0%2Fuploads%2FfcdBVLOhOIQtc9217chS%2FUpshift_solana_erc_audit_final%20\(1\).pdf?alt=media\&token=d46bafce-83dc-4240-97d9-44ebdb4e1411)

[Hacken (September 2025)](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXmCdFTPUHEQ60lKvKop0%2Fuploads%2Fv7bxxnpnDULv2nU6fpoG%2F25.09.22%20-%20Hacken%20Audit.pdf?alt=media\&token=78940c7c-c6fa-454c-862e-a65758cfeefd)

[Chainsecurity (January 2025)](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYgYVkG0Tyix95GGW1LP8%2Fuploads%2FG3TvU8QBjkTOvhlMX7ae%2FChainSecurity_August_Core_Vault_audit.pdf?alt=media\&token=8bef54f8-c89a-4d58-85d9-5dce2a3f0f28)

[Sigma Prime (Aug 2024)](https://2798104377-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLaS0wfc7geC7DaOTDEn7%2Fuploads%2FsHxOMBpM7X3DSqcRNG82%2F24.08.09%20-%20SigmaPrime%20-%20Audit%20Report.pdf?alt=media\&token=5ebfa56d-9b3f-4e6f-9ec0-037b8d8af1b4)

[Zellic (April 2023)](https://256430221-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXmCdFTPUHEQ60lKvKop0%2Fuploads%2FYueWQqW20aZ8JNJkYgGm%2F2023.04.03%20-%20Fractal%20Protocol%20-%20Zellic%20Audit%20Report.pdf?alt=media\&token=96295c7e-0985-44be-9bf2-b459ff2686a8)


# API Reference

The Upshift API provides programmatic access to Upshift Finance's tokenized vault ecosystem, enabling developers to integrate sophisticated DeFi yield strategies into their applications.

## Welcome to the Upshift API

This RESTful API allows you to query vault information, track user points, calculate returns, and access comprehensive vault performance data.

### What is Upshift Finance?

Upshift Finance is a decentralized finance platform that creates tokenized vaults managed by professional strategists. These vaults enable users to participate in sophisticated yield generation strategies while maintaining liquidity through receipt tokens that can be integrated across the DeFi ecosystem.

### API Overview

The Upshift API v1 provides access to four core areas of functionality:

#### 🏦 Tokenized Vaults

Access comprehensive information about Upshift's tokenized vaults, including:

* Vault details, descriptions, and metadata
* Performance metrics and APY calculations
* Risk profiles and fee structures
* Strategist information and subaccount data
* Receipt token integrations across DeFi protocols

#### 📊 Points System

Query user engagement and reward data:

* Total points accumulated by users
* Pool-specific balances and deposits
* Referral earnings and hierarchies
* Deposit streaks and activity tracking

#### 📈 Performance Analytics

Calculate and retrieve vault performance metrics:

* Annualized APY calculations
* Historical performance data
* Liquid APY for different time periods
* Fee-adjusted returns

#### ⚡ System Health

Monitor API status and connectivity with health check endpoints.

### Key Features

#### Multi-Chain Support

The API supports vaults across multiple blockchain networks, with EVM-compatible chains as the primary focus.

#### Real-Time Data

Access up-to-date vault information, performance metrics, and user balances with low-latency API responses.

#### Flexible Filtering

Query vaults by status (active/closed), retrieve specific vault data by address, and filter results based on your application's needs.

#### Receipt Token Integration

Discover how vault receipt tokens integrate with other DeFi protocols, enabling composability and enhanced liquidity options.

### Supported Vaults

The API currently supports several key vault types, including but not limited to:

* **cUSDO** - Stablecoin-based strategies
* **tETH** - Tokenized Ethereum strategies
* **wstETH** - Wrapped staked Ethereum
* **rsETH** - Restaked Ethereum strategies

### Getting Started

#### Base URL

All API requests should be made to:

```url
https://api.upshift.finance/v1
```

#### Authentication

The Upshift API currently operates without authentication requirements for public endpoints. All endpoints return JSON responses and follow REST conventions.

#### Rate Limits

Please refer to the response headers for current rate limiting information and ensure your application implements appropriate request throttling.

### API Endpoints

#### Health Check

* `GET /` - Verify API availability and system status

#### User Points

* `GET /points/{user_address}` - Retrieve comprehensive points data for a specific user address

#### Tokenized Vaults

* `GET /tokenized_vaults` - List all vaults with optional status filtering
* `GET /tokenized_vaults/{vault_address}` - Get detailed information for a specific vault
* `GET /tokenized_vaults/{vault_address}/annualized_apy` - Calculate annualized APY for a vault

### Response Format

All API responses follow a consistent JSON structure with appropriate HTTP status codes:

* `200` - Successful responses
* `422` - Validation errors with detailed error information

Error responses include validation details to help debug request issues quickly.

### Important Notes

#### Deprecation Notice

The API includes some deprecated fields for backward compatibility:

* `hgETH30dLiquidAPY` and `hgETH7dLiquidAPY` fields are deprecated
* These will be removed on January 1, 2026
* Use `liquidAPY30Day` and `liquidAPY7Day` fields instead

#### Data Accuracy

Performance data and APY calculations are provided for informational purposes. Always verify critical financial data through multiple sources before making investment decisions.

### Next Steps

Ready to start building with the Upshift API? Check out our endpoint documentation for detailed request/response schemas, example queries, and integration guides.

For support or questions about integrating with the Upshift API, please reach out to our development team or visit our community resources.\
&#x20;**If you would like to integrate with your frontend you will need to reach out to us so we can whitelist you.**

***

*This API documentation covers Upshift API v0.1.0. Features and endpoints may evolve as the platform develops.*


# Vaults

## Tokenized Vault API Endpoints

This documentation covers the tokenized vault endpoints for retrieving vault information.

### Base URL

```
https://api.upshift.finance/v1/
```

***

### Get All Tokenized Vaults

#### GET `/tokenized_vaults`

Retrieve a list of all tokenized vaults with optional status filtering.

**Query Parameters:**

* `status` (optional): Filter by vault status (`active` or `closed`)

## GET /tokenized\_vaults

> Get Tokenized Vaults

```json
{"openapi":"3.1.0","info":{"title":"Upshift API","version":"0.1.0"},"servers":[{"url":"/v1"}],"paths":{"/tokenized_vaults":{"get":{"summary":"Get Tokenized Vaults","operationId":"get_tokenized_vaults_tokenized_vaults_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ITokenizedVaultStatus"},{"type":"null"}],"description":"Filter vaults by status (e.g. active, closed)","title":"Status"},"description":"Filter vaults by status (e.g. active, closed)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ITokenizedVaultDisplay"},"title":"Response Get Tokenized Vaults Tokenized Vaults Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ITokenizedVaultStatus":{"type":"string","enum":["active","closed"],"title":"ITokenizedVaultStatus"},"ITokenizedVaultDisplay":{"properties":{"address":{"type":"string","title":"Address"},"yield_distributor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Yield Distributor"},"chain":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chain"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"internal_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Type"},"public_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Type"},"is_featured":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Featured","default":false},"is_visible":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Visible","default":true},"weekly_performance_fee_bps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Weekly Performance Fee Bps"},"platform_fee_override":{"type":"object","title":"Platform Fee Override","default":{}},"start_datetime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Datetime"},"vault_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vault Name"},"reserve_target":{"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Reserve Target","default":0.05},"reserve_tolerance":{"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Reserve Tolerance","default":0.01},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","default":"active"},"is_charge_fees_manual":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Charge Fees Manual","default":false},"receipt_token_symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Receipt Token Symbol"},"enable_external_assets_update":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable External Assets Update","default":false},"vault_logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vault Logo Url"},"risk":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Risk"},"max_daily_drawdown":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Daily Drawdown"},"chain_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chain Type","default":"evm"},"enabled_historical_price_horizons":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Enabled Historical Price Horizons"},"id":{"type":"string","format":"uuid","title":"Id"},"rewards":{"items":{"$ref":"#/components/schemas/TokenizedVaultReward"},"type":"array","title":"Rewards","default":[]},"subaccounts":{"items":{"$ref":"#/components/schemas/ISubaccountReadWithStrategist"},"type":"array","title":"Subaccounts","default":[]},"reported_apy":{"anyOf":[{"$ref":"#/components/schemas/TokenizedVaultReportedAPY"},{"type":"null"}]},"receipt_token_integrations":{"items":{"$ref":"#/components/schemas/Token"},"type":"array","title":"Receipt Token Integrations"},"hardcoded_strategists":{"items":{"$ref":"#/components/schemas/IStrategistRead"},"type":"array","title":"Hardcoded Strategists"}},"type":"object","required":["address","chain","id"],"title":"ITokenizedVaultDisplay"},"TokenizedVaultReward":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"tokenizedvault_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Tokenizedvault Id"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"img_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Img Url"},"multiplier":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Multiplier"},"start_datetime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Datetime"}},"type":"object","title":"TokenizedVaultReward"},"ISubaccountReadWithStrategist":{"properties":{"address":{"type":"string","title":"Address"},"strategist":{"anyOf":[{"$ref":"#/components/schemas/IStrategistRead"},{"type":"null"}]}},"type":"object","required":["address"],"title":"ISubaccountReadWithStrategist"},"IStrategistRead":{"properties":{"strategist_name":{"type":"string","title":"Strategist Name"},"strategist_logo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Strategist Logo"},"id":{"type":"string","format":"uuid","title":"Id"}},"type":"object","required":["strategist_name","id"],"title":"IStrategistRead"},"TokenizedVaultReportedAPY":{"properties":{"apy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Apy"},"underlying_apy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Underlying Apy"},"liquid_apy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Liquid Apy"},"rewards_compounded":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rewards Compounded"},"rewards_claimable":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rewards Claimable"},"explainer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Explainer"},"id":{"type":"string","format":"uuid","title":"Id"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"tokenized_vault_id":{"type":"string","format":"uuid","title":"Tokenized Vault Id"}},"type":"object","required":["tokenized_vault_id"],"title":"TokenizedVaultReportedAPY"},"Token":{"properties":{"address":{"type":"string","title":"Address"},"chain":{"type":"integer","title":"Chain"},"token_class":{"type":"string","title":"Token Class"},"shorthand":{"type":"string","title":"Shorthand"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"},"tiingo_ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tiingo Ticker"},"img_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Img Url"},"is_transferable":{"type":"boolean","title":"Is Transferable","default":true},"id":{"type":"string","format":"uuid","title":"Id"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"position_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Position Id"},"stable_token_pair_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Stable Token Pair Id"}},"type":"object","required":["address","chain","token_class","shorthand"],"title":"Token"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

***

### Get Specific Tokenized Vault

#### GET `/tokenized_vaults/{vault_address}`

Get detailed information for a specific tokenized vault by its contract address.

**Path Parameters:**

* `vault_address` (required): The vault contract address

## GET /tokenized\_vaults/{vault\_address}

> Get Tokenized Vault

```json
{"openapi":"3.1.0","info":{"title":"Upshift API","version":"0.1.0"},"servers":[{"url":"/v1"}],"paths":{"/tokenized_vaults/{vault_address}":{"get":{"summary":"Get Tokenized Vault","operationId":"get_tokenized_vault_tokenized_vaults__vault_address__get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ITokenizedVaultDisplay"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ITokenizedVaultDisplay":{"properties":{"address":{"type":"string","title":"Address"},"yield_distributor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Yield Distributor"},"chain":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chain"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"internal_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Type"},"public_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Type"},"is_featured":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Featured","default":false},"is_visible":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Visible","default":true},"weekly_performance_fee_bps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Weekly Performance Fee Bps"},"platform_fee_override":{"type":"object","title":"Platform Fee Override","default":{}},"start_datetime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Datetime"},"vault_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vault Name"},"reserve_target":{"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Reserve Target","default":0.05},"reserve_tolerance":{"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Reserve Tolerance","default":0.01},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","default":"active"},"is_charge_fees_manual":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Charge Fees Manual","default":false},"receipt_token_symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Receipt Token Symbol"},"enable_external_assets_update":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable External Assets Update","default":false},"vault_logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vault Logo Url"},"risk":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Risk"},"max_daily_drawdown":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Daily Drawdown"},"chain_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chain Type","default":"evm"},"enabled_historical_price_horizons":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Enabled Historical Price Horizons"},"id":{"type":"string","format":"uuid","title":"Id"},"rewards":{"items":{"$ref":"#/components/schemas/TokenizedVaultReward"},"type":"array","title":"Rewards","default":[]},"subaccounts":{"items":{"$ref":"#/components/schemas/ISubaccountReadWithStrategist"},"type":"array","title":"Subaccounts","default":[]},"reported_apy":{"anyOf":[{"$ref":"#/components/schemas/TokenizedVaultReportedAPY"},{"type":"null"}]},"receipt_token_integrations":{"items":{"$ref":"#/components/schemas/Token"},"type":"array","title":"Receipt Token Integrations"},"hardcoded_strategists":{"items":{"$ref":"#/components/schemas/IStrategistRead"},"type":"array","title":"Hardcoded Strategists"}},"type":"object","required":["address","chain","id"],"title":"ITokenizedVaultDisplay"},"TokenizedVaultReward":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"tokenizedvault_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Tokenizedvault Id"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"img_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Img Url"},"multiplier":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Multiplier"},"start_datetime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Datetime"}},"type":"object","title":"TokenizedVaultReward"},"ISubaccountReadWithStrategist":{"properties":{"address":{"type":"string","title":"Address"},"strategist":{"anyOf":[{"$ref":"#/components/schemas/IStrategistRead"},{"type":"null"}]}},"type":"object","required":["address"],"title":"ISubaccountReadWithStrategist"},"IStrategistRead":{"properties":{"strategist_name":{"type":"string","title":"Strategist Name"},"strategist_logo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Strategist Logo"},"id":{"type":"string","format":"uuid","title":"Id"}},"type":"object","required":["strategist_name","id"],"title":"IStrategistRead"},"TokenizedVaultReportedAPY":{"properties":{"apy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Apy"},"underlying_apy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Underlying Apy"},"liquid_apy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Liquid Apy"},"rewards_compounded":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rewards Compounded"},"rewards_claimable":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rewards Claimable"},"explainer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Explainer"},"id":{"type":"string","format":"uuid","title":"Id"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"tokenized_vault_id":{"type":"string","format":"uuid","title":"Tokenized Vault Id"}},"type":"object","required":["tokenized_vault_id"],"title":"TokenizedVaultReportedAPY"},"Token":{"properties":{"address":{"type":"string","title":"Address"},"chain":{"type":"integer","title":"Chain"},"token_class":{"type":"string","title":"Token Class"},"shorthand":{"type":"string","title":"Shorthand"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"},"tiingo_ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tiingo Ticker"},"img_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Img Url"},"is_transferable":{"type":"boolean","title":"Is Transferable","default":true},"id":{"type":"string","format":"uuid","title":"Id"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"position_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Position Id"},"stable_token_pair_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Stable Token Pair Id"}},"type":"object","required":["address","chain","token_class","shorthand"],"title":"Token"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

***

### Get Specific Tokenized Vault APY

#### GET `/tokenized_vaults/{vault_address}/annualized_apy`

Get APY information for a specific tokenized vault by its contract address.

**Path Parameters:**

* `vault_address` (required): The vault contract address

## Get annualized APY

> Calculate annualized APY for a specific vault.\
> &#x20;       \
> &#x20;       ⚠️ Deprecation Notice: \
> &#x20;       \- The \`hgETH30dLiquidAPY\` and \`hgETH7dLiquidAPY\` fields are deprecated\
> &#x20;       \- These fields will be removed on 2026-01-01\
> &#x20;       \- Use \`liquidAPY30Day\` and \`liquidAPY7Day\` fields instead\
> &#x20;       \
> &#x20;       Supported Vaults: cUSDO, tETH, wstETH, rsETH

```json
{"openapi":"3.1.0","info":{"title":"Upshift API","version":"0.1.0"},"servers":[{"url":"/v1"}],"paths":{"/tokenized_vaults/{vault_address}/annualized_apy":{"get":{"summary":"Get annualized APY","description":"Calculate annualized APY for a specific vault.\n        \n        ⚠️ Deprecation Notice: \n        - The `hgETH30dLiquidAPY` and `hgETH7dLiquidAPY` fields are deprecated\n        - These fields will be removed on 2026-01-01\n        - Use `liquidAPY30Day` and `liquidAPY7Day` fields instead\n        \n        Supported Vaults: cUSDO, tETH, wstETH, rsETH","operationId":"get_annualized_APY_tokenized_vaults__vault_address__annualized_apy_get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}}],"responses":{"200":{"description":"APY data","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

***

### Key Response Fields

**Important fields in the responses:**

* `address`: Vault contract address
* `vault_name`: Human-readable vault name
* `status`: Current status (`active` or `closed`)
* `chain`: Blockchain network ID
* `reported_apy`: APY information including breakdown
* `rewards`: Available reward multipliers
* `subaccounts`: Associated strategist subaccounts
* `is_featured`: Whether vault is prominently displayed
* `receipt_token_symbol`: Symbol for vault receipt tokens

***

### Status Values

* `active`: Vault is operational and accepting deposits
* `closed`: Vault is closed to new deposits

***

### Usage Examples

**Get all active vaults:**

```bash
curl "https://api.augustdigital.io/api/v1/tokenized_vaults?status=active"
```

**Get specific vault details:**

```bash
curl "https://api.augustdigital.io/api/v1/tokenized_vaults/0x123..."
```


# Points

## Tokenized Vault API Endpoints

This documentation covers the tokenized vault endpoints for retrieving vault information.

### Base URL

```
https://api.upshift.finance/v1/
```

***

### Get User Points

#### GET `/points/{user_address}`

Retrieve a list of all tokenized vaults with the user's points per vault and more.

## GET /points/{user\_address}

> Get Points By User

```json
{"openapi":"3.1.0","info":{"title":"Upshift API","version":"0.1.0"},"servers":[{"url":"/v1"}],"paths":{"/points/{user_address}":{"get":{"summary":"Get Points By User","operationId":"get_points_by_user_points__user_address__get","parameters":[{"name":"user_address","in":"path","required":true,"schema":{"type":"string","title":"User Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"PointsResponse":{"properties":{"totalPoints":{"type":"number","title":"Totalpoints"},"referralEarnings":{"type":"number","title":"Referralearnings"},"pools":{"additionalProperties":{"$ref":"#/components/schemas/PoolBalance"},"type":"object","title":"Pools"},"referrals":{"additionalProperties":{"$ref":"#/components/schemas/ReferralBalance"},"type":"object","title":"Referrals"},"topVault":{"anyOf":[{"$ref":"#/components/schemas/TopVault"},{"type":"null"}]},"streak":{"type":"integer","title":"Streak"}},"type":"object","required":["totalPoints","referralEarnings","pools","referrals","topVault","streak"],"title":"PointsResponse"},"PoolBalance":{"properties":{"amountDepositedInUsd":{"type":"number","title":"Amountdepositedinusd","default":0},"nativeAmountDeposited":{"type":"number","title":"Nativeamountdeposited","default":0},"totalPoints":{"type":"number","title":"Totalpoints","default":0},"hasPendingRewards":{"type":"boolean","title":"Haspendingrewards","default":false}},"type":"object","title":"PoolBalance"},"ReferralBalance":{"properties":{"totalPoints":{"type":"number","title":"Totalpoints","default":0},"amountDepositedInUsd":{"type":"number","title":"Amountdepositedinusd","default":0},"nativeAmountDeposited":{"type":"number","title":"Nativeamountdeposited","default":0}},"type":"object","title":"ReferralBalance"},"TopVault":{"properties":{"lifetimeDeposit":{"type":"number","title":"Lifetimedeposit"},"address":{"type":"string","title":"Address"}},"type":"object","required":["lifetimeDeposit","address"],"title":"TopVault"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```


# Code & App Examples

#### Integrate Upshift Vaults

For developers and integrators seeking to embed Upshift vaults in their applications or products:&#x20;

An example app can be found at the repo below:

{% embed url="<https://github.com/upshift-protocol/example-sdk-app>" %}

The same app is hosted at <https://starter.upshift.finance/>


# Universal Adapter

*This contract provides a single entry-point for atomic swaps, deposits and redemptions.*

### State Variables

#### \_isConfigured

Indicates if the contract was configured.

```solidity
bool internal _isConfigured;
```

#### isPaused

Indicates whether the smart contract is paused or not.

```solidity
bool public isPaused;
```

#### feesCollector

The address of the fees collector.

```solidity
address public feesCollector;
```

#### uniswapRouterAddress

The address of the Uniswap router.

```solidity
address public uniswapRouterAddress;
```

#### vaultReferenceAsset

The reference asset of each whitelisted vault, in the form (vault address => reference asset)

```solidity
mapping(address => address) public vaultReferenceAsset;
```

#### origins

The whitelisted referrers, in the form (origin code => info)

```solidity
mapping(bytes32 => OriginEntry) public origins;
```

#### swapFees

The swap fee of each vault, in the form (vault address => swap fee)

```solidity
mapping(address => uint256) public swapFees;
```

#### whitelistedTokens

The list of whitelisted tokens

```solidity
mapping(address => bool) public whitelistedTokens;
```

#### whitelistedRouters

The list of whitelisted routers for atomic swaps

```solidity
mapping(address => bool) public whitelistedRouters;
```

### Functions

#### constructor

```solidity
constructor();
```

#### ifConfigured

*Throws if the contract was not configured*

```solidity
modifier ifConfigured();
```

#### ifNotConfigured

*Throws if the contract was configured already*

```solidity
modifier ifNotConfigured();
```

#### ifNotPaused

*Throws if the contract is not paused*

```solidity
modifier ifNotPaused();
```

#### ifPaused

*Throws if the contract is paused*

```solidity
modifier ifPaused();
```

#### ifVaultEnabled

*Throws if the vault specified is not enabled*

```solidity
modifier ifVaultEnabled(address vaultAddr);
```

#### configure

Configures the smart contract.

*Throws if the contract was already configured.*

```solidity
function configure(address ownerAddr, address newFeesCollectorAddr) external nonReentrant onlyOwner ifNotConfigured;
```

**Parameters**

| Name                   | Type      | Description                          |
| ---------------------- | --------- | ------------------------------------ |
| `ownerAddr`            | `address` | The new owner of the smart contract. |
| `newFeesCollectorAddr` | `address` | The address of the fees collector.   |

#### setUniswapRouterAddress

Sets the address of the Uniswap router

*Passing the zero address disables the Uniswap router*

```solidity
function setUniswapRouterAddress(address newUniswapRouterAddress)
    external
    nonReentrant
    onlyOwner
    ifConfigured
    ifNotPaused;
```

**Parameters**

| Name                      | Type      | Description                       |
| ------------------------- | --------- | --------------------------------- |
| `newUniswapRouterAddress` | `address` | The address of the Uniswap router |

#### pause

Pauses the smart contract.

```solidity
function pause() external nonReentrant onlyOwner ifConfigured ifNotPaused;
```

#### unPause

Resumes (unpauses) the smart contract.

```solidity
function unPause() external nonReentrant onlyOwner ifConfigured ifPaused;
```

#### discontinue

Discontinues the use of this smart contract.

*The contract is no longer usable after calling this function.*

```solidity
function discontinue() external nonReentrant onlyOwner ifConfigured ifNotPaused;
```

#### enableVaults

Enables the vaults specified.

```solidity
function enableVaults(address[] calldata vaultAddresses, uint256[] calldata newSwapFees)
    external
    nonReentrant
    onlyOwner
    ifConfigured
    ifNotPaused;
```

**Parameters**

| Name             | Type        | Description                            |
| ---------------- | ----------- | -------------------------------------- |
| `vaultAddresses` | `address[]` | The list of vaults to enable.          |
| `newSwapFees`    | `uint256[]` | The swap fee applicable to each vault. |

#### disableVaults

Disables the vaults specified.

```solidity
function disableVaults(address[] calldata vaultAddresses) external nonReentrant onlyOwner ifConfigured ifNotPaused;
```

**Parameters**

| Name             | Type        | Description                    |
| ---------------- | ----------- | ------------------------------ |
| `vaultAddresses` | `address[]` | The list of vaults to disable. |

#### setSwapFee

Sets the swap fee of the vault specified.

```solidity
function setSwapFee(address vaultAddr, uint256 fee) external nonReentrant onlyOwner ifConfigured ifNotPaused;
```

**Parameters**

| Name        | Type      | Description                                                    |
| ----------- | --------- | -------------------------------------------------------------- |
| `vaultAddr` | `address` | The address of the ERC-4626 vault.                             |
| `fee`       | `uint256` | The fee applicable to swaps, expressed in bps. It can be zero. |

#### updateFeesCollector

Updates the address of the fees collector.

```solidity
function updateFeesCollector(address newFeesCollectorAddr) external nonReentrant onlyOwner ifConfigured ifNotPaused;
```

**Parameters**

| Name                   | Type      | Description                            |
| ---------------------- | --------- | -------------------------------------- |
| `newFeesCollectorAddr` | `address` | The address of the new fees collector. |

#### enableSwapInputTokens

Allows the tokens specified to be used during an atomic swap.

*This function prevents the fee collector and origin collectors from receiving unauthorized tokens.*

```solidity
function enableSwapInputTokens(address[] calldata tokenAddresses)
    external
    nonReentrant
    onlyOwner
    ifConfigured
    ifNotPaused;
```

**Parameters**

| Name             | Type        | Description                                                           |
| ---------------- | ----------- | --------------------------------------------------------------------- |
| `tokenAddresses` | `address[]` | The list of tokens to enable. These tokens can be used during a swap. |

#### disableSwapInputTokens

Prevents the tokens specified to be used during an atomic swap.

```solidity
function disableSwapInputTokens(address[] calldata tokenAddresses)
    external
    nonReentrant
    onlyOwner
    ifConfigured
    ifNotPaused;
```

**Parameters**

| Name             | Type        | Description                                                               |
| ---------------- | ----------- | ------------------------------------------------------------------------- |
| `tokenAddresses` | `address[]` | The list of tokens to disable. These tokens cannot be used during a swap. |

#### enableRouter

Enables the router address specified.

*Throws if you pass the address of the Uniswap router.*

```solidity
function enableRouter(address routerAddr) external nonReentrant onlyOwner ifConfigured ifNotPaused;
```

**Parameters**

| Name         | Type      | Description                |
| ------------ | --------- | -------------------------- |
| `routerAddr` | `address` | The address of the router. |

#### disableRouter

Disables the router address specified.

*This function allows you to disable a router.*

```solidity
function disableRouter(address routerAddr) external nonReentrant onlyOwner ifConfigured ifNotPaused;
```

**Parameters**

| Name         | Type      | Description            |
| ------------ | --------- | ---------------------- |
| `routerAddr` | `address` | The router to disable. |

#### addOrigin

Enables a new referrer.

*Reverts if the referrer already exists.*

```solidity
function addOrigin(bytes32 originCode, uint256 originFee, address originFeeCollector)
    external
    nonReentrant
    onlyOwner
    ifConfigured
    ifNotPaused;
```

**Parameters**

| Name                 | Type      | Description                                                      |
| -------------------- | --------- | ---------------------------------------------------------------- |
| `originCode`         | `bytes32` | The code of the referrer.                                        |
| `originFee`          | `uint256` | The fee taken by the referrer, expressed in bps. It can be zero. |
| `originFeeCollector` | `address` | The fee collector of the referrer.                               |

#### updateOrigin

Updates the settings of the referrer specified.

*Reverts if the referrer does not exist.*

```solidity
function updateOrigin(bytes32 originCode, uint256 originFee, address originFeeCollector)
    external
    nonReentrant
    onlyOwner
    ifConfigured
    ifNotPaused;
```

**Parameters**

| Name                 | Type      | Description                                                      |
| -------------------- | --------- | ---------------------------------------------------------------- |
| `originCode`         | `bytes32` | The code of the referrer.                                        |
| `originFee`          | `uint256` | The fee taken by the referrer, expressed in bps. It can be zero. |
| `originFeeCollector` | `address` | The fee collector of the referrer.                               |

#### revokeOrigin

Disables the referrer specified.

```solidity
function revokeOrigin(bytes32 originCode) external nonReentrant onlyOwner ifConfigured ifNotPaused;
```

**Parameters**

| Name         | Type      | Description               |
| ------------ | --------- | ------------------------- |
| `originCode` | `bytes32` | The code of the referrer. |

#### swapAndDeposit

Swaps the tokens specified via Uniswap V3 and deposits the resulting outcome in a given vault.

*This overload runs the swap via Uniswap V3.*

```solidity
function swapAndDeposit(bytes32 originCode, address vaultAddr, address receiverAddr, SingleHopItem[] calldata swaps)
    external
    nonReentrant
    ifConfigured
    ifNotPaused
    returns (uint256 shares, uint256 swapAmountOut);
```

**Parameters**

| Name           | Type              | Description                                                                         |
| -------------- | ----------------- | ----------------------------------------------------------------------------------- |
| `originCode`   | `bytes32`         | The code of the referrer, if any. Pass zero bytes32 if there is no referrer at all. |
| `vaultAddr`    | `address`         | The address of the ERC-4626 vault.                                                  |
| `receiverAddr` | `address`         | The address of the receiver. This address receives the LP tokens.                   |
| `swaps`        | `SingleHopItem[]` | The list of atomic swaps to perform.                                                |

**Returns**

| Name            | Type      | Description                                                                                               |
| --------------- | --------- | --------------------------------------------------------------------------------------------------------- |
| `shares`        | `uint256` | The number of shares acquired.                                                                            |
| `swapAmountOut` | `uint256` | The amount of reference assets swapped via Uniswap V3. Any applicable fees are deducted from this amount. |

#### swapAndDeposit

Swaps the tokens specified through a whitelisted router and deposits the resulting outcome in a given vault.

*This overload runs the swap through an abstract call.*

```solidity
function swapAndDeposit(
    bytes32 originCode,
    address vaultAddr,
    address receiverAddr,
    address tokenApprovalAddr,
    address routerAddr,
    OffchainSwapInfo[] calldata items
) external nonReentrant ifConfigured ifNotPaused returns (uint256 shares, uint256 swapAmountOut);
```

**Parameters**

| Name                | Type                 | Description                                                                         |
| ------------------- | -------------------- | ----------------------------------------------------------------------------------- |
| `originCode`        | `bytes32`            | The code of the referrer, if any. Pass zero bytes32 if there is no referrer at all. |
| `vaultAddr`         | `address`            | The address of the ERC-4626 vault.                                                  |
| `receiverAddr`      | `address`            | The address of the receiver. This address receives the LP tokens.                   |
| `tokenApprovalAddr` | `address`            | The address of the token approver.                                                  |
| `routerAddr`        | `address`            | The address of the router capable of running the atomic swap.                       |
| `items`             | `OffchainSwapInfo[]` | The swaps to perform.                                                               |

**Returns**

| Name            | Type      | Description                                                                                                                     |
| --------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `shares`        | `uint256` | The number of shares acquired.                                                                                                  |
| `swapAmountOut` | `uint256` | The amount of reference assets swapped through the abstract calls specified. Any applicable fees are deducted from this amount. |

#### deposit

Deposits the reference asset in the vault specified.

*Origin fees may apply, depending on the origin. The swap fee is not applicable.*

```solidity
function deposit(bytes32 originCode, uint256 depositAmount, address vaultAddr, address receiverAddr)
    external
    nonReentrant
    ifConfigured
    ifNotPaused
    returns (uint256 shares);
```

**Parameters**

| Name            | Type      | Description                                                                         |
| --------------- | --------- | ----------------------------------------------------------------------------------- |
| `originCode`    | `bytes32` | The code of the referrer, if any. Pass zero bytes32 if there is no referrer at all. |
| `depositAmount` | `uint256` | The deposit amount.                                                                 |
| `vaultAddr`     | `address` | The address of the ERC-4626 vault.                                                  |
| `receiverAddr`  | `address` | The address of the receiver. This address receives the LP tokens.                   |

**Returns**

| Name     | Type      | Description                    |
| -------- | --------- | ------------------------------ |
| `shares` | `uint256` | The number of shares acquired. |

#### requestRedeem

Requests a redemption from the vault specified.

```solidity
function requestRedeem(uint256 shares, address receiverAddr, address holderAddr, address vaultAddr, bytes32 originCode)
    external
    nonReentrant
    ifConfigured
    ifNotPaused
    ifVaultEnabled(vaultAddr)
    returns (uint256 assets, uint256 claimableEpoch);
```

**Parameters**

| Name           | Type      | Description                                                                         |
| -------------- | --------- | ----------------------------------------------------------------------------------- |
| `shares`       | `uint256` | The number of shares to redeem.                                                     |
| `receiverAddr` | `address` | The address of the receiver.                                                        |
| `holderAddr`   | `address` | The address of the tokens holder.                                                   |
| `vaultAddr`    | `address` | The address of the ERC-4626 vault.                                                  |
| `originCode`   | `bytes32` | The code of the referrer, if any. Pass zero bytes32 if there is no referrer at all. |

**Returns**

| Name             | Type      | Description                                                                       |
| ---------------- | --------- | --------------------------------------------------------------------------------- |
| `assets`         | `uint256` | The amount of assets that can be claimed for this specific withdrawal request.    |
| `claimableEpoch` | `uint256` | The date at which the assets become claimable. This is expressed as a Unix epoch. |

#### claim

Allows any public address to process the scheduled withdrawal requests of the receiver specified.

*Throws if the receiving address is not the legitimate address you registered via "requestRedeem()"*

```solidity
function claim(uint256 year, uint256 month, uint256 day, address receiverAddr, address vaultAddr, bytes32 originCode)
    external
    nonReentrant
    ifConfigured
    ifNotPaused
    ifVaultEnabled(vaultAddr)
    returns (uint256 shares, uint256 assets);
```

**Parameters**

| Name           | Type      | Description                                                                         |
| -------------- | --------- | ----------------------------------------------------------------------------------- |
| `year`         | `uint256` | The year component of the claim. It can be a past date.                             |
| `month`        | `uint256` | The month component of the claim. It can be a past date.                            |
| `day`          | `uint256` | The day component of the claim. It can be a past date.                              |
| `receiverAddr` | `address` | The address of the legitimate receiver of the funds.                                |
| `vaultAddr`    | `address` | The address of the ERC-4626 vault.                                                  |
| `originCode`   | `bytes32` | The code of the referrer, if any. Pass zero bytes32 if there is no referrer at all. |

**Returns**

| Name     | Type      | Description                                                                            |
| -------- | --------- | -------------------------------------------------------------------------------------- |
| `shares` | `uint256` | uint256 The effective number of shares (LP tokens) that were burnt from the vault.     |
| `assets` | `uint256` | uint256 The effective amount of reference assets that were transfered to the receiver. |

#### instantRedeem

Redeems the number of shares specified, instantly.

```solidity
function instantRedeem(uint256 shares, address receiverAddr, address vaultAddr, bytes32 originCode)
    external
    nonReentrant
    ifConfigured
    ifNotPaused
    ifVaultEnabled(vaultAddr);
```

**Parameters**

| Name           | Type      | Description                                                                         |
| -------------- | --------- | ----------------------------------------------------------------------------------- |
| `shares`       | `uint256` | The number of shares to redeem.                                                     |
| `receiverAddr` | `address` | The address of the receiver.                                                        |
| `vaultAddr`    | `address` | The address of the ERC-4626 vault.                                                  |
| `originCode`   | `bytes32` | The code of the referrer, if any. Pass zero bytes32 if there is no referrer at all. |

#### getOrigin

Gets the details of the referrer specified.

```solidity
function getOrigin(bytes32 originCode) external view returns (uint256 originFee, address originFeeCollector);
```

**Parameters**

| Name         | Type      | Description               |
| ------------ | --------- | ------------------------- |
| `originCode` | `bytes32` | The code of the referrer. |

**Returns**

| Name                 | Type      | Description                                      |
| -------------------- | --------- | ------------------------------------------------ |
| `originFee`          | `uint256` | The fee taken by the referrer, expressed in bps. |
| `originFeeCollector` | `address` | The fee collector of the referrer.               |

#### \_deposit

*Applies origin fees and deposits the reference asset in the vault*

```solidity
function _deposit(
    bytes32 originCode,
    uint256 depositAmount,
    address vaultAddr,
    address underlyingAssetAddr,
    address receiverAddr
) private returns (uint256 shares);
```

#### \_applyOriginFees

*Applies origin fees. The fee is applied if -and only if- the origin code is valid.*

```solidity
function _applyOriginFees(uint256 consumableAmount, bytes32 originCode, address vaultAddr, address underlyingAssetAddr)
    private
    returns (uint256 newBalance);
```

#### \_applySwapFees

*Applies the respective swap fee*

```solidity
function _applySwapFees(uint256 consumableAmount, address underlyingAssetAddr, address vaultAddr)
    private
    returns (uint256 newBalance);
```

#### \_swapViaUniswapV3

*Runs a swap via Uniswap V3*

```solidity
function _swapViaUniswapV3(SingleHopItem[] calldata items, address underlyingAssetAddr) private;
```

#### \_swapViaOffchainCall

*Runs a swap based on the off-chain quote specified*

```solidity
function _swapViaOffchainCall(
    address underlyingAssetAddr,
    address tokenApprovalAddr,
    address routerAddr,
    OffchainSwapInfo[] calldata items
) private;
```

### Events

#### ContractPaused

```solidity
event ContractPaused();
```

#### ContractResumed

```solidity
event ContractResumed();
```

#### ContractDiscontinued

```solidity
event ContractDiscontinued();
```

#### ContractConfigured

```solidity
event ContractConfigured();
```

#### TokenEnabled

```solidity
event TokenEnabled(address indexed tokenAddr);
```

#### TokenDisabled

```solidity
event TokenDisabled(address indexed tokenAddr);
```

#### VaultEnabled

```solidity
event VaultEnabled(address indexed vaultAddr, uint256 newSwapFee);
```

#### VaultDisabled

```solidity
event VaultDisabled(address indexed vaultAddr);
```

#### FeesCollectorUpdated

```solidity
event FeesCollectorUpdated(address newFeesCollectorAddr);
```

#### SwapFeeUpdated

```solidity
event SwapFeeUpdated(address indexed vaultAddr, uint256 fee);
```

#### SwapFeeApplied

```solidity
event SwapFeeApplied(
    address indexed vaultAddr, address indexed referenceAssetAddr, uint256 consumableAmount, uint256 feeAmount
);
```

#### Deposit

```solidity
event Deposit(
    address indexed vaultAddr,
    address referenceAssetAddr,
    uint256 effectiveDepositAmount,
    uint256 shares,
    bytes32 originCode
);
```

#### OriginFeeApplied

```solidity
event OriginFeeApplied(
    address indexed vaultAddr,
    address indexed referenceAssetAddr,
    uint256 consumableAmount,
    uint256 feeAmount,
    bytes32 indexed originCode
);
```

#### RedemptionRequested

```solidity
event RedemptionRequested(
    uint256 shares,
    address receiverAddr,
    address holderAddr,
    address indexed vaultAddr,
    bytes32 indexed originCode,
    uint256 assets,
    uint256 claimableEpoch
);
```

#### RedemptionClaimed

```solidity
event RedemptionClaimed(
    uint256 year,
    uint256 month,
    uint256 day,
    address receiverAddr,
    address indexed vaultAddr,
    bytes32 indexed originCode,
    uint256 shares,
    uint256 assets
);
```

#### InstantRedeption

```solidity
event InstantRedeption(uint256 shares, address receiverAddr, address indexed vaultAddr, bytes32 indexed originCode);
```

#### OriginAdded

```solidity
event OriginAdded(bytes32 indexed originCode, uint256 originFee, address originFeeCollector);
```

#### OriginUpdated

```solidity
event OriginUpdated(bytes32 indexed originCode, uint256 originFee, address originFeeCollector);
```

#### OriginRevoked

```solidity
event OriginRevoked(bytes32 indexed originCode);
```

### Errors

#### InvalidOrigin

```solidity
error InvalidOrigin();
```

#### OriginAlreadyExists

```solidity
error OriginAlreadyExists();
```

#### RouterNotSet

```solidity
error RouterNotSet();
```

#### InvalidRouter

```solidity
error InvalidRouter();
```

#### InvalidTokenApprovalAddress

```solidity
error InvalidTokenApprovalAddress();
```

#### InvalidVault

```solidity
error InvalidVault();
```

#### UnsupportedVault

```solidity
error UnsupportedVault();
```

#### InvalidFeeCollector

```solidity
error InvalidFeeCollector();
```

#### FeeCollectorNotSet

```solidity
error FeeCollectorNotSet();
```

#### VaultTokenNotAllowed

```solidity
error VaultTokenNotAllowed();
```

#### InvalidFee

```solidity
error InvalidFee();
```

#### InvalidToken

```solidity
error InvalidToken();
```

#### LengthMismatch

```solidity
error LengthMismatch();
```

#### AddressRequired

```solidity
error AddressRequired();
```

#### ContractIsPaused

```solidity
error ContractIsPaused();
```

#### ContractNotPaused

```solidity
error ContractNotPaused();
```

#### InvalidReceiver

```solidity
error InvalidReceiver();
```

#### SwapFailed

```solidity
error SwapFailed(bytes returnData);
```

#### SwapFailedNoReason

```solidity
error SwapFailedNoReason();
```

#### TokenNotWhitelisted

```solidity
error TokenNotWhitelisted();
```

#### SlippageCheckFailed

```solidity
error SlippageCheckFailed();
```

#### OriginFeeTooHigh

```solidity
error OriginFeeTooHigh();
```

#### SwapFeeTooHigh

```solidity
error SwapFeeTooHigh();
```

#### NotConfigured

```solidity
error NotConfigured();
```

#### AlreadyConfigured

```solidity
error AlreadyConfigured();
```

#### AmountTooLow

```solidity
error AmountTooLow();
```

### Structs

#### OriginEntry

```solidity
struct OriginEntry {
    uint256 originFee;
    address originFeeCollector;
}
```

#### SingleHopItem

```solidity
struct SingleHopItem {
    uint256 amountIn;
    uint256 minAmountOut;
    address tokenIn;
    uint24 fee;
    uint160 sqrtPriceLimitX96;
}
```

#### OffchainSwapInfo

```solidity
struct OffchainSwapInfo {
    uint256 amountIn;
    uint256 minAmountOut;
    address tokenIn;
    bytes payload;
}
```


# Vault Contract Interface

### Core User-Callable Functions

These functions are expected to be directly called by users or custodians during normal deposit, redemption, and interaction workflows.

#### 1. deposit(uint256 assets, address receiver)

* Purpose: Deposit underlying assets into the vault in exchange for vault shares.
* Returns: Number of shares minted.

```
function deposit(uint256 assets, address receiver) external returns (uint256 shares);
```

***

#### 2. requestRedeem(uint256 shares, address receiverAddr, address holderAddr)

* Purpose: Initiates a redemption flow. Shares are burned, and the claim becomes redeemable at a later epoch.
* Returns: Assets to be redeemed, claimable epoch timestamp.

```
function requestRedeem(uint256 shares, address receiverAddr, address holderAddr) external returns (uint256 assets, uint256 claimableEpoch);
```

***

#### 3. claim(uint256 year, uint256 month, uint256 day, address receiverAddr)

* Purpose: Completes a redemption request and transfers assets to receiver.
* Returns: assetsClaimed, sharesBurned

```
function claim(uint256 year, uint256 month, uint256 day, address receiverAddr) external returns (uint256, uint256);
```

***

#### 4. instantRedeem(uint256 shares, address receiverAddr, address holderAddr)

* Purpose: Allows users to bypass the epoch process and redeem shares immediately with a fee.

```
function instantRedeem(uint256 shares, address receiverAddr, address holderAddr) external;
```

***

#### 5. convertToAssets(uint256 shares)

* Purpose: Preview function. Returns estimated asset amount for the given shares.

```
function convertToAssets(uint256 shares) external view returns (uint256);
```

***

#### 6. convertToShares(uint256 assets)

* Purpose: Preview function. Returns estimated share amount for the given asset amount.

```
function convertToShares(uint256 assets) external view returns (uint256);
```

***

#### 7. previewDeposit(uint256 assets)

* Purpose: Simulates a deposit and returns the number of shares to be issued.

```
function previewDeposit(uint256 assets) external view returns (uint256);
```

***

#### 8. previewRedeem(uint256 shares)

* Purpose: Simulates a redeem request to return estimated assets.

```
function previewRedeem(uint256 shares) external view returns (uint256);
```

***

#### 9. previewInstantRedemption(uint256 shares)

* Purpose: Simulates an instant redeem and returns the estimated asset payout.

```
function previewInstantRedemption(uint256 shares) external view returns (uint256);
```

***

#### 10. balanceOf(address owner)

* Purpose: Standard ERC-20 method to check current vault share balance.

```
function balanceOf(address owner) external view returns (uint256);
```

***

#### 11. approve(address spender, uint256 amount)

* Purpose: Standard ERC-20 approval for share transfers.

```
function approve(address spender, uint256 amount) external returns (bool);
```

***

Here’s an expanded and formatted section covering Administrative & Operational Functions in the same style as the core user-callable functions — intended for internal use or advanced integrations (e.g., protocol operators, whitelisted admin roles):

***

### Administrative & Operational Functions

These functions are not meant for direct user access, but may be used by protocol administrators, integrations, or automated agents for vault configuration, fee collection, limits, and subaccount interaction.

***

#### 1. depositToSubaccount(uint256 amount, address subAccountAddr)

* Purpose: Transfers vault assets to a whitelisted subaccount.

```
function depositToSubaccount(uint256 amount, address subAccountAddr) external;
```

***

#### 2. withdrawFromSubaccount(uint256 amount, address subAccountAddr)

* Purpose: Withdraws assets from a subaccount back to the vault.

```
function withdrawFromSubaccount(uint256 amount, address subAccountAddr) external;
```

***

#### 3. emergencyWithdraw(IERC20 token, address destinationAddr)

* Purpose: Admin emergency function to sweep tokens to a safe destination.

```
function emergencyWithdraw(IERC20 token, address destinationAddr) external;
```

***

***

#### 4. updateFeeCollector(address newFeeCollectorAddr)

* Purpose: Update the address that collects fees from the vault.

```
function updateFeeCollector(address newFeeCollectorAddr) external;
```

***

#### 5. updateManagementFee(uint256 newManagementFeePercent)

* Purpose: Update the management fee charged by the vault.

```
function updateManagementFee(uint256 newManagementFeePercent) external;
```

***

#### 6. updateWithdrawalFee(uint256 newWithdrawalFee)

* Purpose: Update the standard withdrawal fee percentage.

```
function updateWithdrawalFee(uint256 newWithdrawalFee) external;
```

***

#### 7. updateInstantRedemptionFee(uint256 newFee)

* Purpose: Update the fee charged for using instantRedeem().

```
function updateInstantRedemptionFee(uint256 newFee) external;
```

***

#### 8. pauseDepositsAndWithdrawals(bool bPauseDeposits, bool bPauseWithdrawals)

* Purpose: Pause or resume deposits and/or withdrawals globally.

```
function pauseDepositsAndWithdrawals(bool bPauseDeposits, bool bPauseWithdrawals) external;
```

***

#### 9. chargeManagementFee()

* Purpose: Manually trigger the fee accrual mechanism, charging users based on TVL.

```
function chargeManagementFee() external;
```

***

#### 10. collectFees()

* Purpose: Sweep collected fees to the fee collector address.

```
function collectFees() external;
```

***

#### 11. processAllClaimsByDate(uint256 year, uint256 month, uint256 day, uint256 maxLimit)

* Purpose: Batch settlement of all scheduled redemptions for a given epoch.

```
function processAllClaimsByDate(
  uint256 year,
  uint256 month,
  uint256 day,
  uint256 maxLimit
) external;
```

***

#### 12. updateIssuanceLimits(uint256 maxDeposit, uint256 maxWithdrawal, uint256 maxSupply)

* Purpose: Adjust maximums for deposits, withdrawals, and vault token supply.

```
function updateIssuanceLimits(
  uint256 newMaxDepositAmount,
  uint256 newMaxWithdrawalAmount,
  uint256 newMaxTokenSupply
) external;
```

***

#### 13. updateMaxChangePercent(uint256 newValue)

* Purpose: Update the maximum allowed change in asset balance between rebalances or updates.

```
function updateMaxChangePercent(uint256 newValue) external;
```

***

#### 14. updateTimelockDuration(uint256 newDuration)

* Purpose: Modify the timelock duration (lag) between redeem request and claim.

```
function updateTimelockDuration(uint256 newDuration) external;
```

***

#### 15. updateTotalAssets(uint256 externalAssetsAmount)

* Purpose: Syncs the vault’s internal accounting with the latest off-chain or externally-sourced asset amount.

```
function updateTotalAssets(uint256 externalAssetsAmount) external;
```

***

#### 16. updateOperator(address addr)

* Purpose: Assign a new operator address responsible for automated tasks like fee charging and redemption processing.

```
function updateOperator(address addr) external;
```

***

#### 17. updateSettlementAccount(address addr)

* Purpose: Set the address used for asset settlement in case of external funding or batch liquidity actions.

```
function updateSettlementAccount(address addr) external;
```

***

### Events to Monitor

If tracking user activity via event logs:

* Deposit(address sender, address owner, uint256 assets, uint256 shares)
* Withdraw(address sender, address receiver, address owner, uint256 assets, uint256 shares)
* WithdrawalRequested(...)
* WithdrawalProcessed(...)
* OnEmergencyWithdraw(...)
* ManagementFeeCharged(uint256)
* FeesCollected()
* DepositWithdrawalStatusChanged(...)

***

### Read-Only Data Surfaces

* totalAssets()
* totalSupply()
* asset() → address of the underlying token
* name() / symbol() / decimals()
* withdrawalFee() / instantRedemptionFee()
* getWithdrawalEpoch() → for current epoch boundaries


# Terms of Use

**Last Updated Date: November 6, 2024**

Please read this Terms of Use Agreement (the “Terms of Use”) carefully.  The website located at <http://www.upshift.finance> and any related websites or subdomains of Fractal Network, Ltd. or its affiliates or related entities (“Upshift,” “we,” or “our”) that hosts or links to these Terms of Use (collectively, the “Website”) and the information on the Website are owned and controlled by Upshift.  These Terms of Use govern the use of the Website and applies to all users visiting the Website or using the Website in any way, including using any of Upshift’s services, software, technology, or other resources available through or enabled via the Website (each including the Website, a “Service” and, collectively, the “Services”).

BY USING THE SERVICES, CONNECTING A DIGITAL WALLET TO THE WEBSITE, AND/OR BROWSING THE WEBSITE, YOU REPRESENT THAT (1) YOU HAVE READ, UNDERSTAND, AND AGREE TO BE BOUND BY THE AGREEMENT (DEFINED BELOW), (2) YOU ARE OF LEGAL AGE TO FORM A BINDING CONTRACT WITH UPSHIFT, AND (3) YOU HAVE THE AUTHORITY TO ENTER INTO THE TERMS OF USE PERSONALLY OR ON BEHALF OF THE ENTITY (WHETHER OR NOT SUCH ENTITY IS FORMALLY INCORPORATED) YOU HAVE NAMED AS THE USER, AND TO BIND THAT ENTITY TO THE TERMS OF USE.  THE TERM “YOU” REFERS TO THE INDIVIDUAL OR ENTITY, AS APPLICABLE, IDENTIFIED AS THE USER WHEN YOU REGISTERED ON THE WEBSITE. **IF YOU DO NOT AGREE TO BE BOUND BY THE TERMS OF USE, YOU MAY NOT ACCESS OR USE THIS WEBSITE OR THE SERVICES.**

**USE OF THE WEBSITE BY PERSONS WHO ARE CURRENTLY OR ORDINARILY LOCATED OR RESIDENTS IN THE UNITED STATES, IS STRICTLY PROHIBITED, REGARDLESS OF THE USER’S IP ADDRESS. USE OF THE WEBSITE BY PERSONS WHO ARE CURRENTLY OR ORDINARILY LOCATED OR RESIDENT IN THE UNITED STATES IS STRICTRLY PROHIBITED, REGARDLESS OF THE USER’S IP ADDRESS. UTILIZING A VIRTUAL PRIVATE NETWORK OR OTHER METHOD TO CONCEAL A USER’S UNITED STATES RESIDENCE IS ALSO STRICTLY PROHIBITED AND MAY RESULT IN PERMANENT BLOCKING OF USE OF THE WEBSITE IN CONNECTION WITH BLOCKCHAIN ADDRESSES SUSPECTED OF BEING TIED TO A UNITED STATES OR UNITED KINGDOM RESIDENCE.**

**UPSHIFT IS NOT AN EXCHANGE, TRUST COMPANY, LICENSED BROKER, DEALER, BROKER-DEALER, INVESTMENT ADVISOR, INVESTMENT MANAGER, OR ADVISER. NEITHER UPSHIFT NOR OUR SERVICES GIVE, OFFER, OR RENDER INVESTMENT, TAX, OR LEGAL ADVICE.**

**THE WEBSITE AGGREGATES AND PUBLISHES PUBLICLY AVAILABLE INFORMATION RELATED TO CERTAIN SMART CONTRACT VAULTS (DEFINED BELOW) THAT HAVE BEEN DEPLOYED ON ETHEREUM VIRTUAL MACHINE COMPATIBLE BLOCKCHAINS AND ARE SELF-EXECUTING AND/OR MANAGED BY THIRD PARTY STRATEGY MANAGERS. THE WEBSITE ALSO ENABLES USERS TO INDICATE A TRANSACTION THAT THE USER WOULD LIKE TO PERFORM IN CONNECTION WITH THE VAULTS (SUCH AS DEPOSITING OR WITHDRAWING). WHEN USED THIS WAY, THE WEBSITE CAN GENERATE A DRAFT TRANSACTION MESSAGE WHICH THE USER CAN INDEPENDENTLY USE IN CONJUNCTION WITH A THIRD-PARTY WALLET APPLICATION OR DEVICE TO CONDUCT TRANSACTIONS WITH THE VAULTS**

**BEFORE MAKING FINANCIAL OR INVESTMENT DECISIONS, WE RECOMMEND THAT YOU CONTACT AN INVESTMENT ADVISOR, OR TAX OR LEGAL PROFESSIONAL. YOU ACKNOWLEDGE THAT THE VAULTS AND ANY OTHER TRANSACTIONS WITH DIGITAL ASSETS PERFORMED IN CONNECTION WITH THE SERVICES ARE NOT PROTECTED BY FEDERAL DEPOSIT INSURANCE CORPORATION OR THE SECURITIES INVESTOR PROTECTION CORPORATION.**

The Service provides an interface that allows users of our Website (“Users”) to view publicly available information relating to the Upshift protocol (including all mainnet and testnet versions thereof, the “**Protocol**”).  The Protocol comprises a system of open-source smart contracts that enable users to deposit and pool crypto assets in one or more smart contract-enabled vaults (each, a “**Vault**”) managed and controlled by third-party strategy managers (each, a “**Strategy Manager**”), who determine the terms by which assets in the applicable Vault may be lent to third parties as collateralized loans or deployed to other blockchain-based protocols.  For the avoidance of doubt, the Protocol is not part of the Website and is not a Service made available by Upshift under this Agreement.  Upshift has no obligation to monitor or control any use of the Protocol by third parties and/or any use of the Protocol that does not take place on or through the Website.  Upshift makes no representations or warranties about the functionality of the Protocol or the actions or omissions of any other users of the Protocol.  All use of the Protocol is undertaken at your own risk, and Upshift is not and shall not be liable to you or to any third party for any loss or damage arising from or connected to your or any third party’s use of the Protocol.  Notwithstanding anything to the contrary set forth herein, the terms of Section 12 of this Agreement apply, mutatis mutandis, to any claims arising out of your use of the Protocol.&#x20;

**PLEASE BE AWARE THAT SECTION 16 (DISPUTE RESOLUTION) OF THIS AGREEMENT, BELOW, CONTAINS PROVISIONS GOVERNING HOW DISPUTES THAT YOU AND WE HAVE AGAINST EACH OTHER ARE RESOLVED, INCLUDING, WITHOUT LIMITATION, ANY DISPUTES THAT AROSE OR WERE ASSERTED PRIOR TO THE EFFECTIVE DATE OF THIS AGREEMENT.  IN PARTICULAR, IT CONTAINS AN ARBITRATION AGREEMENT WHICH WILL, WITH LIMITED EXCEPTIONS, REQUIRE DISPUTES BETWEEN US TO BE SUBMITTED TO BINDING AND FINAL ARBITRATION.  UNLESS YOU OPT OUT OF THE ARBITRATION AGREEMENT: (1) YOU WILL ONLY BE PERMITTED TO PURSUE DISPUTES OR CLAIMS AND SEEK RELIEF AGAINST UPSHIFT ON AN INDIVIDUAL BASIS, NOT AS A PLAINTIFF OR CLASS MEMBER IN ANY CLASS OR REPRESENTATIVE ACTION OR PROCEEDING; AND (2) YOU ARE WAIVING YOUR RIGHT TO PURSUE DISPUTES OR CLAIMS AND SEEK RELIEF IN A COURT OF LAW AND TO HAVE A JURY TRIAL.**&#x20;

**ANY DISPUTE, CLAIM OR REQUEST FOR RELIEF RELATING IN ANY WAY TO YOUR USE OF THE SITE WILL BE GOVERNED AND INTERPRETED BY AND UNDER THE LAWS OF THE BRITISH VIRGIN ISLANDS, WITHOUT GIVING EFFECT TO ANY PRINCIPLES THAT PROVIDE FOR THE APPLICATION OF THE LAW OF ANY OTHER JURISDICTION.  THE UNITED NATIONS CONVENTION ON CONTRACTS FOR THE INTERNATIONAL SALE OF GOODS IS EXPRESSLY EXCLUDED FROM THIS AGREEMENT.**

**PLEASE BE AWARE THAT SECTION 4.4 (UPSHIFT COMMUNICATIONS) OF THIS AGREEMENT, BELOW, CONTAINS YOUR OPT-IN CONSENT TO RECEIVE COMMUNICATIONS FROM US.**

Your use of, and participation in, certain Services may be subject to additional terms (“**Supplemental Terms**”) and such Supplemental Terms will either be listed in these Terms of Use or will be presented to you for your acceptance when you sign up to use the supplemental Service.  If the Terms of Use are inconsistent with the Supplemental Terms, the Supplemental Terms shall control with respect to such Service.  The Terms of Use and any applicable Supplemental Terms are referred to herein as the “**Agreement**.”

PLEASE NOTE THAT THE AGREEMENT IS SUBJECT TO CHANGE BY UPSHIFT IN ITS SOLE DISCRETION AT ANY TIME.  When changes are made, Upshift will make a new copy of the Terms of Use available at the Website and any new Supplemental Terms will be made available from within, or through, the affected Service on the Website.  We will also update the “Last Updated” date at the top of the Terms of Use.  If we make any material changes, we may notify you by email or by notification through the Services or through our social media channels.  Any changes to the Agreement will be effective immediately for new users of the Website and/or Services and will be effective thirty (30) days after posting notice of such changes on the Website for existing Users.  Upshift may require you to provide consent to the updated Agreement in a specified manner before further use of the Website, and/or the Services is permitted.  If you do not agree to any change(s) after receiving a notice of such change(s), you shall stop using the Services.  Otherwise, your continued use of the Services constitutes your acceptance of such change(s).  PLEASE REGULARLY CHECK THE WEBSITE TO VIEW THE THEN-CURRENT TERMS.

1\.              **DESCRIPTION OF THE SERVICES.**  The Services include the Website and Services enabled thereby, as further defined and described below.  There are important risks and limitations associated with the use of the Services as described below and elsewhere in these Terms of Use.  Please read them carefully.

1.1           **The Platform.**  Upshift’s Services include access to its proprietary online platform enabled through the Website and supported documentation made available therewith, that allows Users to interact with the Protocol, including by connecting third-party digital wallets (each, a “**Digital Wallet**”, as further described below) to the Website and using the Website to assist in drafting transaction messages between such Digital Wallet and the Protocol.  Users can use the Website to (i) aggregate and display publicly available information related to any crypto assets (“**User Assets**”) that exist on third-party blockchains compatible with the Services (each, a “**Supported Blockchain**”) that are associated with the applicable User’s Digital Wallet, and (ii) draft transaction massages which the User can independently use in conjunction with a Digital Wallet to send User Assets to Vaults in accordance with the technological and contractual parameters of the Protocol.  User Asset visualizations may include graphs, projections, and other information about your User Assets (collectively, “**User Asset Information**”).  Information that may be provided to you by the Website about your allocation of your User Assets and any Rewards (defined below) earned in connection therewith are all considered User Asset Information.&#x20;

1.2           **Your User Assets.**  You represent and warrant that (a) you own or have the authority to connect to the Digital Wallet from the third-party source of funds that you use to fund such Digital Wallet; (b) you own or have the authority to transfer any User Assets you transfer through the Services; (c) all User Assets you transfer in connection with the Services have been earned, received, or otherwise acquired by you in compliance with all applicable laws; and (d) no User Assets that you transfer in connection with the Services have been “mixed,” “tumbled” or otherwise undergone any process designed to hide, mask, or obscure the origin or ownership of such User Assets.&#x20;

1.3           **Compatibility Risk.**  The Services may not be compatible with all forms of cryptocurrency, and certain of your User Assets may not be compatible with the Services.  Whether or not a User Asset is then-currently compatible with the Services may change at any time, in Upshift’s sole discretion, with or without notice to you.&#x20;

1.4           **Transfers of User Assets.**  By combining publicly available information with the User’s interactions with the Website, the Website can draft standard transaction messages that are designed to accomplish the User’s operational goals as expressed through the interactions with the Website.  If the user so wishes, the User may broadcast such messages to the validator network for any Supported Blockchain in order to initiate a transaction of User Assets.  All draft transaction messages are delivered by the Website via API to a Digital Wallet selected by the User after pressing the “Connect Wallet” (or similar) button on the Website.  The User must personally review and authorize all transaction messages that the User wishes to execute; this requires the User to sign the relevant transaction message with a private cryptographic key inaccessible to the Website or Upshift.  The User-authorized message will then be broadcast to validators through the wallet Digital Wallet and the User may pay a Gas Fee to have the validators record the results of the transaction message on the Supported Blockchain—resulting in a transfer of User Assets.  When you contribute User Assets to a Vault, and/or when you request to withdraw any User Assets from a Vault, there may be a delay between the initiation of the applicable transaction by you and the completion of such transaction.  While Upshift endeavors to effectuate all transfers as promptly as is reasonably possible, the exact timing and allocation of the transfer of your User Assets shall be determined in accordance with the rules applicable to that Vault, the Supported Blockchain and Upshift’s then-current policies and procedures.  You acknowledge and agree that Upshift shall have no liability to you or any third party with respect to any losses arising from the timing of any transfer of User Assets.  Upshift and the Platform are not agents or intermediaries of the User, do not store or have access to or control over any User Assets, private keys, passwords, accounts or other property of the User, and are not capable of performing transactions or sending transaction messages on behalf of the User. All transactions relating to the Vaults are effected and recorded solely through the interactions of the User with the respective validators, who are not under the control of or affiliated with Upshift or the Platform.

1.5           **Rewards.**  Any Rewards that you receive in connection with your use of the Services to transfer User Assets to the Protocol (“**Rewards**”) are provided by the applicable Strategy Manager or by the Protocol, and unless otherwise set forth on the Services with respect to specific Rewards (“**Upshift Incentives**”), such Rewards are not a payment from Upshift to you.  Except with respect to Upshift Incentives, any Rewards you receive or do not receive is at the sole discretion of such Strategy Manager and/or the Protocol, and Upshift shall have no obligation to you to facilitate any such Rewards payment and no liability to you in connection with any Rewards or your failure to receive the same.  Upshift does not guarantee any Rewards or other rewards (including without limitation Upshift Incentives) on or in connection with your User Assets.

1.6           Taxes.  You are solely responsible (and Upshift has no responsibility) for determining what, if any, taxes apply to any transactions involving your User Assets, including your receipt of any Rewards.

2\.              **ELIGIBILITY; USER REPRESENTATIONS AND WARRANTIES.**

2.1           Registering Your Account.  The connection of your Digital Wallet to the Services will constitute your account (“**Account**”).  Notwithstanding anything to the contrary herein, you acknowledge and agree that you have no ownership or other property interest in your Account, and you further acknowledge and agree that all rights in and to your Account are and will forever be owned by and inure to the benefit of Upshift.  Furthermore, you are responsible for all activities that occur under your Account.  You shall monitor your Account to restrict use by minors, and you will accept full responsibility for any unauthorized use of the Services by minors.  You may not share your Account or password with anyone, and you agree to notify Upshift immediately of any unauthorized use of your Account or any other breach of security.  You agree not to create an Account or use the Services if you have been previously removed by Upshift, or if you have been previously banned from any of the Services.

2.2           Registration Data.  When you register an Account or otherwise access or use the Services in any way, you agree to (a) provide true, accurate, current and complete information about yourself as may be prompted by the Services from time to time (the “Registration Data”); and (b) maintain and promptly update the Registration Data to keep it true, accurate, current and complete.  You acknowledge and agree that our obligation to provide you with any Services is conditioned on the Registration Data being accurate and complete at all times during the term of this Agreement.  If you provide any information that is untrue, inaccurate, not current or incomplete, or Upshift has reasonable grounds to suspect that any information you provide is untrue, inaccurate, not current or incomplete, Upshift has the right to suspend or terminate your access to the Services and refuse any and all current or future use of the Services (or any portion thereof).  You agree not to use the Services if you have been previously removed by Upshift, or if you have been previously banned from any of the Services.

2.3           **Eligibility**.  You represent and warrant that:

(a)            You are (i) at least eighteen (18) years old; (ii) of legal age to form a binding contract; and (iii) not a person barred from using Services under the laws of the British Virgin Islands, your place of residence or any other applicable jurisdiction.  The Services are not offered or made available to U.S. residents.  If you are acting on behalf of a DAO or other entity, whether or not such entity is formally incorporated under the laws of your jurisdiction, you represent and warrant that you have all right and authority necessary to act on behalf of such entity;

(b)            None of (i) you; (ii) any affiliate of any entity on behalf of which you are entering into this Agreement; (iii) any other person having a beneficial interest in any entity on behalf of which you are entering into this Agreement (or in any affiliate thereof); or (iv) any person for whom you are acting as an agent or nominee in connection with this Agreement is (A) a country, territory, entity or individual named on an OFAC list as provided at <http://www.treas.gov/ofac>, or any person or entity prohibited under the OFAC programs, regardless of whether or not they appear on the OFAC list; or (B) a senior foreign political figure, or any immediate family member or close associate of a senior foreign political figure.  There is no legal proceeding pending that relates to your activities relating to buying, selling, staking, or otherwise using cryptocurrency or any other token- or digital asset- trading or blockchain technology related activities;

(c)            You have not failed to comply with, and have not violated, any applicable legal requirement relating to any blockchain technologies or token-trading activities, and no investigation or review by any governmental entity is pending or, to your knowledge, has been threatened against or with respect to you, nor does any government order or action prohibit you or any of your representatives from engaging in or continuing any conduct, activity or practice relating to cryptocurrency.

2.4           **Digital Wallets.**  In connection with certain features of the Services you will need connect a Digital Wallet owned or controlled by you.  Access to and use of a Digital Wallet is subject to additional terms and conditions between you and the provider of such Digital Wallet.  Please note that if a Digital Wallet or associated service becomes unavailable then you should not attempt to use such Digital Wallet in connection with the Services, and we disclaim all liability in connection with the foregoing, including without limitation any inability to access any User Assets you have sent to or stored in such Digital Wallet or transferred to a Vault from such Digital Wallet.  PLEASE NOTE THAT YOUR RELATIONSHIP WITH ANY THIRD-PARTY SERVICE PROVIDERS ASSOCIATED WITH YOUR DIGITAL WALLET IS GOVERNED SOLELY BY YOUR AGREEMENT(S) WITH SUCH THIRD-PARTY SERVICE PROVIDERS, AND UPSHIFT DISCLAIMS ANY LIABILITY FOR INFORMATION THAT MAY BE PROVIDED TO IT OR USER ASSETS THAT MAY BE TRANSFERRED TO THE PROTOCOL BY OR THROUGH SUCH THIRD-PARTY SERVICE PROVIDERS IN VIOLATION OF THE SETTINGS THAT YOU HAVE SET IN SUCH DIGITAL WALLETS.  Access to your Digital Wallet may require the use of a private key or passphrase (“Private Key”) and Upshift has no ability to access your Digital Wallet without your involvement and authority.  Your Private Key is unique to you, and shall be maintained by you.  If you lose your Private Key, you may lose access to your Digital Wallet and any contents thereof.  Upshift does not have the ability to recover a lost Private Key. While a Digital Wallet may be interoperable with other compatible blockchain platforms, tokens, or services, only User Assets supported by Upshift that are stored in your Digital Wallet will be accessible through the Services.

2.5           **Necessary Equipment and Software.**  You must provide all equipment and software necessary to connect to the Services, including but not limited to, a computer system or mobile device that is suitable to connect with and use the Services as applicable.  You are solely responsible for any fees, including Internet connection or mobile fees, that you incur when accessing the Services.&#x20;

3\.              **Your Assumption of Risk.**&#x20;

3.1           When you use the Services, you understand and acknowledge that Upshift is not a financial OR INVESTMENT advisor and that the Services ENTAIL A RISK OF LOSS AND may not meet your needs.  The Services provided by Upshift rely on Supported Blockchains, which may not be reliable, consistent or dependent in all scenarios.  Upshift may not be able to foresee or anticipate technical or other difficulties that may result in data loss or other service interruptions.  Upshift encourages you to periodically confirm the valuation of your User Assets and the accuracy of any User Asset Information through independent sources.  Upshift does not and cannot make any guarantee that your User Assets will earn any Rewards or that your User Assets will not lose value.  The prices of cryptocurrency assets can be extremely volatile.  Upshift makes no warranties as to the markets in which your User Assets are staked, transferred, purchased, or traded.&#x20;

3.2           You understand that like any other software, the Platform, the Protocol, and the Services could be at risk of third-party malware, hacks or cybersecurity breaches.  You agree that it is your responsibility to monitor your User Assets regularly and confirm their proper use and deployment consistent with your intentions.

3.3           In order to be successfully completed, any transaction involving your User Assets initiated by or sent to your Digital Wallet must be confirmed by and recorded on the applicable Supported Blockchain or Protocol.  Upshift has no control over any Supported Blockchain, and therefore cannot and does not ensure that any transaction details that you submit or receive via our Services will be validated by or confirmed on the relevant Supported Blockchain or Protocol, and Upshift does not have the ability to execute any transactions or facilitate any cancellation or modification requests.  You accept and acknowledge that you take full responsibility for all activities that you effect through your Digital Wallet and accept all risks of loss, including loss as a result of any authorized or unauthorized access to your Digital Wallet, to the maximum extent permitted by law.  You further accept and acknowledge the following:

(a)            You represent and warrant that you (i) have the necessary technical expertise and ability to review and evaluate the security, integrity, and operation of the Protocol and your Digital Wallet; (ii) have the knowledge, experience, understanding, professional advice and information to make your own evaluation of the merits, risks, and applicable compliance requirements under applicable laws of any use of your Digital Wallet and the Protocol; (iii) know, understand, and accept the risks associated with your Digital Wallet and the Protocol; and (iv) accept the risks associated with blockchain technology generally, and are responsible for conducting your own independent analysis of the risks specific to your use of the Services.  You further agree that Upshift will have no responsibility or liability for such risks.

(b)            There are risks associated with using digital assets, including but not limited to, hardware, software, and Internet connections; the risk of malicious software introduction; the risk that third parties may obtain unauthorized access to information stored within your Digital Wallet; the risks of counterfeit assets, mislabeled assets, assets that are vulnerable to metadata decay, assets on smart contracts with bugs, and assets that may become untransferable; and the risk that such digital assets may fluctuate in value.  You accept and acknowledge that Upshift will not be responsible for any communication failures, disruptions, errors, distortions, delays, or losses you may experience when using blockchain technology, however caused.

(c)            The regulatory regimes governing blockchain technologies, cryptocurrencies, and tokens are uncertain, and new regulations or policies, or new or different interpretations of existing regulations, may materially adversely affect the development of the Services and the value of your User Assets.

(d)            Upshift makes no guarantee as to the functionality of any blockchain’s decentralized governance, which could, among other things, lead to delays, conflicts of interest, or operational decisions that are unfavorable to your User Assets.  You acknowledge and accept that the rules governing the operation of a Supported Blockchain may be subject to sudden changes that may materially alter such Supported Blockchain and affect the value and function of any of your User Assets.

(e)            Upshift makes no guarantee as to the security of the Protocol or any Supported Blockchain or Digital Wallet.  Upshift is not liable for any hacks, double spending, or any other attacks on the Protocol or any Supported Blockchain or Digital Wallet.

(f)             For the avoidance of doubt, Upshift does not own or control any Supported Blockchain.  Any Supported Blockchain may slash or otherwise impose penalties on certain validators in response to any activity not condoned by such Supported Blockchain.  You acknowledge and agree that Upshift shall have no liability in connection with any such slashing or penalties, including any slashing or penalties that result in a loss or depreciation of value of your User Assets.

(g)            The Supported Blockchains are controlled by third parties, and Upshift is not responsible for their performance nor any risks associated with the use thereof.  The Services rely on, and Upshift makes no guarantee or warranties as to the functionality of or access to, any Supported Blockchain, Digital Wallet, or Third-Party Service.&#x20;

(h)            You control your Digital Wallet, and Upshift is not responsible for its performance, nor any risks associated with the use thereof.

4\.            **USE OF THE SERVICES.**  &#x20;

4.1           License to the Services.  Subject to the Agreement, Upshift grants you a limited license to access and use the Services solely as described hereunder.  Unless otherwise specified by Upshift in a separate license, your right to use any and all Services is subject to this Agreement.  You acknowledge and agree that nothing set forth herein shall be construed as a sale of any ownership interest in or to the Services or any intellectual property rights associated therewith.

4.2           Updates.  You understand that Services are evolving.  You acknowledge and agree that Upshift may update Services with or without notifying you.  You may need to update third-party software from time to time in order to use Services.

4.3           Certain Restrictions.  The Services are intended for your internal use only.  The rights granted to you in the Agreement are subject to the following restrictions: (a) you shall not license, sell, rent, lease, transfer, assign, reproduce, distribute, host, or otherwise commercially exploit the Services or any portion of the Services, including the Website; (b) you shall not frame or use framing techniques to enclose any trademark, logo, or other Services (including images, text, page layout or form) of Upshift; (c) you shall not use any metatags or other “hidden text” using Upshift’s name or trademarks; (d) you shall not modify, translate, adapt, merge, make derivative works of, disassemble, decompile, reverse compile, or reverse engineer any part of the Services except to the extent the foregoing restrictions are expressly prohibited by applicable law; (e) you shall not use any manual or automated software, devices, or other processes (including but not limited to spiders, robots, scrapers, crawlers, avatars, and data mining tools) to “scrape” or download data from any web pages contained in the Website (except that we grant the operators of public search engines revocable permission to use spiders to copy materials from the Website for the sole purpose of and solely to the extent necessary for creating publicly available searchable indices of the materials, but not caches or archives of such materials); (f) except as expressly stated herein, no part of the Services may be copied, reproduced, distributed, republished, downloaded, displayed, posted, or transmitted in any form or by any means; and (h) you shall not remove or destroy any copyright notices or other proprietary markings contained on or in the Services.  Any future release, update, or other addition to the Services shall be subject to the Agreement.  Upshift, its suppliers and service providers reserve all rights not granted in the Agreement.  Any unauthorized use of the Services may terminate the licenses granted by Upshift pursuant to the Agreement.

4.4           **Upshift Communications.**  By entering into this Agreement or using the Services, you agree to receive communications from us.  Communications from us and our affiliated companies may include but are not limited to operational communications concerning your use of the Services, updates concerning new and existing features on the Services, communications concerning promotions run by Upshift or our third-party partners, and news concerning Upshift and industry developments.&#x20;

4.5           **Third-Party Services.**  Certain features of the Services may rely on third-party websites, services, technology, or applications accessible or otherwise connected to the Services but not provided by Upshift, including without limitation any Supported Blockchain, the Protocol, any validator on such Supported Blockchain, our third-party identity verification providers, and your Digital Wallet (each, a “**Third-Party Service**” and, collectively, “**Third-Party Services**”).  Notwithstanding anything to the contrary in these Terms of Use, you acknowledge and agree that (i) Upshift shall not be liable for any damages, liabilities, or other harms in connection with your use of and/or any inability to access the Third-Party Services; and (ii) Upshift shall be under no obligation to inquire into and shall not be liable for any damages, other liabilities or harm to any person or entity relating to any losses, delays, failures, errors, interruptions, or loss of data occurring directly or indirectly by reason of Third-Party Services or any other circumstances beyond Upshift’s control, including without limitation the failure of a Supported Blockchain or other Third-Party Service.

5\.             **RESPONSIBILITY FOR CONTENT.**  You acknowledge that all data, information, and other content (“Content”) within the Services, is the sole responsibility of the party from whom such Content originated.  This means that you, and not Upshift, are entirely responsible for all Content that you upload, post, e-mail, transmit or otherwise make available through any Services (“**Your Content**”).

6\.              **OWNERSHIP.**

6.1           **Services.**  Except with respect to Your Content, you agree that as between you and Upshift, Upshift and its suppliers own all rights, title, and interest in the Services, including but not limited to, any software, computer code, algorithms, technology, themes, objects, concepts, artwork, animations, sounds, methods of operation, and documentation, as well as all intellectual and proprietary rights related thereto.  You will not remove, alter, or obscure any copyright, trademark, service mark or other proprietary rights notices incorporated in or accompanying any Services.

6.2           **Trademarks.**  Upshift’s stylized name and all related graphics, logos, service marks, and trade names used on or in connection with any Services, or in connection with the Services, are the trademarks of Upshift and may not be used without permission in connection with your, or any third-party, products or services.  Other trademarks, service marks, and trade names that may appear on or in the Services are the property of their respective owners.

6.3           **Your Content.**  You grant Upshift a fully paid, royalty-free, perpetual, irrevocable, worldwide, royalty-free, non-exclusive, and fully sublicensable right (including any moral rights) and license to use, license, distribute, reproduce, modify, adapt, publicly perform, and publicly display Your Content (in whole or in part) for the purposes of (i) operating and providing Services to you; (ii) improving the Services; and (iii) developing new products and services; and you represent that you own or otherwise have all rights in and to Your Content necessary to grant the foregoing licenses.  You agree that you, not Upshift, are responsible for all of Your Content that you make available on or in Services.&#x20;

6.4           **Feedback.**  You agree that the submission of any ideas, suggestions, documents, and/or proposals to Upshift through its suggestion, feedback, wiki, Discord channel, forum, or other pages or means (“Feedback”) is at your own risk and that Upshift has no obligations (including without limitation obligations of confidentiality and compensation) with respect to such Feedback.  You represent and warrant that you have all rights necessary to submit the Feedback.  You hereby grant to Upshift a fully paid, royalty-free, perpetual, irrevocable, worldwide, non-exclusive, and fully sublicensable right and license to use, reproduce, perform, display, distribute, adapt, modify, re-format, create derivative works of, and otherwise commercially or non-commercially exploit in any manner, any and all Feedback, and to sublicense the foregoing rights, in connection with the operation and maintenance of Services and/or Upshift’s business.

7\.             **USER CONDUCT.**&#x20;

You agree that you are solely responsible for your conduct in connection with the Services.  You agree that you will abide by this Agreement and will not (and will not attempt to) (a) provide false or misleading information to Upshift; (b) use or attempt to use another User’s Digital Wallet; (c) impersonate another person or entity; (d) use the Services in any manner that could interfere with, disrupt, negatively affect, or inhibit other Users from fully enjoying the Services, or that could damage, disable, overburden, or impair the functioning of the Services in any manner; (e) develop, use, or disseminate any software, or interact with any API in any manner, that could damage, harm, or impair the Services; (f) bypass or circumvent measures employed to prevent or limit access to any service, area, or code of the Services; (g) attempt to circumvent any content-filtering techniques we employ; (h) collect or harvest data from our Services that would allow you to contact individuals, companies, or other persons or entities, or use any such data to contact such entities; (i) use data collected from our Services for any direct marketing activity (including without limitation, email marketing, SMS marketing, telemarketing, and direct marketing); (j) bypass or ignore instructions that control all automated access to the Services; (k) use the Service for any illegal or unauthorized purpose, or engage in, encourage, or promote any activity that violates any applicable law or this Agreement; (m) carry out any illegal activities in connection with or in any way related to your access to and use of the Services, including but not limited to money laundering, terrorist financing, or deliberately engaging in activities designed to adversely affect the performance of the Services; (n) engage in or knowingly facilitate any “front-running,” “wash trading,” “pump and dump trading,” “ramping,” “cornering,” fraudulent, deceptive, or manipulative trading activities, including (i) trading User Assets at successively lower or higher prices for the purpose of creating or inducing a false, misleading or artificial appearance of activity in such User Asset, unduly or improperly influencing the market price for such User Asset or establishing a price that does not reflect the true state of the market in such User Asset; (ii) for the purpose of creating or inducing a false or misleading appearance of activity in a User Asset or creating or inducing a false or misleading appearance with respect to the market in a User Asset (Y) executing or causing the execution of any transaction in a User Asset that involves no material change in the beneficial ownership thereof; or (Z) entering any order for the purchase or sale of a User Asset with the knowledge that an order of substantially the same size, and at substantially the same price, for the sale of such User Asset, has been or will be entered by or for the same or different parties; or (iii) participating in, facilitating, assisting, or knowingly transacting with any pool, syndicate, or joint account organized for the purpose of unfairly or deceptively influencing the market price of a User Asset; (o) use the Services to carry out any financial activities subject to registration or licensing, including but not limited to using the Services to transact in securities, debt financings, equity financings, or other similar transactions except in strict compliance with applicable law; (p) use the Services to participate in fundraising for a business, protocol, or platform except in strict compliance with applicable law; (q) make available any Content that infringes any patent, trademark, trade secret, copyright, right of publicity, or other right of any person or entity; or (r) attempt to access any Digital Wallet that you do not have the legal authority to access.  Any unauthorized use of any Services terminates the licenses granted by Upshift pursuant to the Agreement.

8\.              **FEES.**

8.1           Fees. Access to certain Services may be free.  However, Upshift charges fees (“Fees”) in connection with your use of certain Services from time to time, including without limitation Fees based on the Rewards generated through use of the Protocol.  All Fees and payment terms for such Fees are as indicated on the Service, and any payment obligations you incur are binding at the time of the applicable transaction.  In the event that Upshift makes available, and you elect to use, any Services in connection with which Upshift charges Fees, you agree that Upshift may deduct all such Fees from your Rewards at Upshift’s then-current standard rates.  You agree that all Fees are non-cancellable, non-refundable, and non-recoupable.&#x20;

8.2           **Gas Fees.** To the extent applicable in connection with a particular Service, you will be solely responsible for ensuring that you have sufficient User Assets in your Digital Wallet to cover any Gas Fee required to complete any transaction or effect any other use of the Services.  “Gas Fees” are transaction fees determined by market conditions on the applicable Supported Blockchain, and are not determined, set, or charged by Upshift.

8.3           **Taxes.**  You are responsible for all federal, state, local, sales, use, value added, excise, or other taxes, fees, or duties arising out of the Agreement or the transactions contemplated by the Agreement (other than taxes based on Upshift’s net income).&#x20;

8.4           **Promotions.**  Upshift may from time to time make available certain conditional offers, airdrops, promotional prices, or discounted fees (each, a “Promotion”) to new or existing users of the Services.  The rules governing such Promotion will be made available in connection with such Promotion.  Upshift will determine your eligibility for any Promotion in its sole discretion and may change the terms of or terminate a Promotion at any time, with or without notice to you. &#x20;

8.5           **Currency.**  You may not substitute any other currency, whether cryptocurrency or fiat currency, for the currency in which you have contracted to pay any Fees.  For clarity, no fluctuation in the value of any currency, whether cryptocurrency or otherwise, will impact or excuse your obligations with respect to any purchase.

8.6           **Payment Processing Services.**  Upshift may add or change any payment processing services at any time.  Such services may be subject to additional terms or conditions.

9\.              **Indemnification**.&#x20;

You agree to indemnify and hold Upshift, its parents, subsidiaries, affiliates, officers, employees, agents, partners, suppliers, and licensors (each, an “Upshift Party” and collectively, the “Upshift Parties”) harmless from any losses, costs, liabilities and expenses (including reasonable attorneys’ fees) relating to or arising out of any of the following: (a) Your Content; (b) your use of, or inability to use, any Services; (c) your violation of the Agreement, including any of your representations or warranties hereunder; (d) your violation of any rights of another party, including any Users; (e) your failure to provide accurate or complete data in connection with your use of the Services; (f) your violation of any applicable laws, rules or regulations; or your use of, or inability to use, the Protocol.  Upshift reserves the right, at its own cost, to assume the exclusive defense and control of any matter otherwise subject to indemnification by you, in which event you will fully cooperate with Upshift in asserting any available defenses.  This provision does not require you to indemnify any of the Upshift Parties for any unconscionable commercial practice by such party or for such party’s fraud, deception, false promise, misrepresentation, or concealment, or suppression or omission of any material fact in connection with the Website or any Services provided hereunder.  You agree that the provisions in this section will survive any termination of the Agreement and/or your access to Services.

10\.           **RELEASE**

TO THE MAXIMUM EXTENT PERMISSIBLE BY APPLICABLE LAW, YOU HEREBY RELEASE THE UPSHIFT PARTIES FROM ANY LIABILITY, CLAIMS, DEMANDS, ACTIONS, AND CAUSES OF ACTION, WHATSOEVER, ARISING OUT OF OR RELATED TO ANY LOSS WHICH MAY BE SUSTAINED BY YOU WHILE USING, ARISING OUT OF, OR IN CONNECTION WITH THE USE OF THE SERVICES OR PROTOCOL, INCLUDING ANY DIMUNITION OF VALUE TO OR LOSS OR THEFT OF ANY USER ASSETS.  TO THE MAXIMUM EXTENT PERMISSIBLE BY APPLICABLE LAW, THIS RELEASE IS BINDING UPON YOUR RELATIVES, SPOUSE, HEIRS, NEXT OF KIN, EXECUTORS, ADMINISTRATORS, BENEFICIARIES, PARTNERS, AND ANY OTHER AFFILIATES OR INTERESTED PARTIES.

To the maximum extent permissible by applicable law, you waive and relinquish any and all rights and benefits otherwise conferred by any statutory or non-statutory law of any jurisdiction that would purport to limit the scope of a release or waiver, including any all rights and benefits that you have or may have under California Civil Code Section 1542, which states “A GENERAL RELEASE DOES NOT EXTEND TO CLAIMS THAT THE CREDITOR OR RELEASING PARTY DOES NOT KNOW OR SUSPECT TO EXIST IN HIS OR HER FAVOR AT THE TIME OF EXECUTING THE RELEASE AND THAT, IF KNOWN BY HIM OR HER, WOULD HAVE MATERIALLY AFFECTED HIS OR HER SETTLEMENT WITH THE DEBTOR OR RELEASED PARTY.”  You acknowledge that the releases in these Terms of Use are intended to be as broad and inclusive as permitted by law, and as a complete and continuous release and waiver of liability for any and all use of the Services.

11\.           **DISCLAIMER OF WARRANTIES AND CONDITIONS.**

11.1         **As Is.** YOU EXPRESSLY UNDERSTAND AND AGREE THAT TO THE EXTENT PERMITTED BY APPLICABLE LAW, YOUR USE OF SERVICES IS AT YOUR SOLE RISK, AND SERVICES ARE PROVIDED ON AN “AS IS” AND “AS AVAILABLE” BASIS, WITH ALL FAULTS.  UPSHIFT PARTIES EXPRESSLY DISCLAIM ALL WARRANTIES, REPRESENTATIONS, AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OR CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARISING FROM USE OF THE SERVICES.  **THE UPSHIFT PARTIES MAKE NO REPRESENTATION THAT THE SERVICES WILL FUNCTION AS INTENDED OR BE SUITABLE FOR YOUR PURPOSES, AND YOU BEAR ALL RISK ASSOCIATED WITH ANY USER ASSETS THAT YOU USE IN CONNECTION THEREWITH.**

(a)            UPSHIFT PARTIES MAKE NO WARRANTY, REPRESENTATION, OR CONDITION THAT (1) SERVICES WILL MEET YOUR REQUIREMENTS; (2) YOUR USE OF SERVICES WILL BE UNINTERRUPTED, TIMELY, SECURE, OR ERROR-FREE; OR (3) THE RESULTS THAT MAY BE OBTAINED FROM USE OF SERVICES WILL BE ACCURATE OR RELIABLE.  UPSHIFT MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE PROTOCOL OR YOUR USE OF THE SAME.  THE UPSHIFT PARTIES MAKE NO REPRESENTATION THAT THE SERVICES WILL BE FREE OF THIRD-PARTY MALWARE, HACKS OR OTHER CYBSECURITY BREACHES.     &#x20;

(b)            ANY CONTENT DOWNLOADED FROM OR OTHERWISE ACCESSED THROUGH THE SERVICES IS ACCESSED AT YOUR OWN RISK, AND YOU SHALL BE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR PROPERTY, INCLUDING, BUT NOT LIMITED TO, YOUR COMPUTER SYSTEM AND ANY DEVICE YOU USE TO ACCESS THE SERVICES, OR ANY OTHER LOSS THAT RESULTS THEREFROM.

(c)            THE SERVICES MAY BE SUBJECT TO DELAYS, CANCELLATIONS, AND OTHER DISRUPTIONS.  UPSHIFT MAKES NO WARRANTY, REPRESENTATION, OR CONDITION WITH RESPECT TO THE SERVICES, INCLUDING BUT NOT LIMITED TO, THE QUALITY, EFFECTIVENESS, AND REPUTATION OF THE SERVICES.

(d)            NO ADVICE OR INFORMATION, WHETHER ORAL OR WRITTEN, OBTAINED FROM UPSHIFT OR THROUGH THE SERVICES WILL CREATE ANY WARRANTY NOT EXPRESSLY MADE HEREIN.

11.2         From time to time, Upshift may offer new “beta” features or tools with which its users may experiment.  Such features or tools are offered solely for experimental purposes and without any warranty of any kind, and may be modified or discontinued at Upshift’s sole discretion.  The provisions of this section apply with full force to such features or tools.

11.3         UPSHIFT IS NOT A BANK, LENDER, BROKER, OR INVESTMENT ADVISOR. NEITHER UPSHIFT NOR ITS SUPPLIERS OR LICENSORS SHALL BE RESPONSIBLE FOR INVESTMENT AND OTHER FINANCIAL DECISIONS, OR DAMAGES, OR OTHER LOSSES RESULTING FROM USE OF THE SERVICES OR THE PROTOCOL. NEITHER UPSHIFT NOR ITS SUPPLIERS OR LICENSORS SHALL BE CONSIDERED AN “EXPERT” UNDER THE APPLICABLE SECURITIES LEGISLATION IN YOUR JURISDICTION. NEITHER UPSHIFT NOR ITS SUPPLIERS OR LICENSORS WARRANT THAT THIS WEBSITE COMPLIES WITH THE REQUIREMENTS OF ANY APPLICABLE REGULATORY AUTHORITY, SECURITIES AND EXCHANGE COMMISSION, OR ANY SIMILAR ORGANIZATION OR REGULATOR OR WITH THE SECURITIES LAWS OF ANY JURISDICTION.

11.4         **No Liability for Conduct of Third Parties.**  YOU ACKNOWLEDGE AND AGREE THAT UPSHIFT PARTIES ARE NOT LIABLE, AND YOU AGREE NOT TO SEEK TO HOLD UPSHIFT PARTIES LIABLE, FOR THE CONDUCT OF THIRD PARTIES, INCLUDING STRATEGY MANAGERS, THE PROTOCOL, EXTERNAL SITES, AND SUPPORTED BLOCKCHAINS, AND THAT THE RISK OF INJURY FROM SUCH THIRD PARTIES RESTS ENTIRELY WITH YOU. UPSHIFT SHALL BE UNDER NO OBLIGATION TO INQUIRE INTO AND SHALL NOT BE LIABLE FOR ANY DAMAGES, OTHER LIABILITIES OR HARM TO ANY PERSON OR ENTITY RELATING TO ANY LOSSES, DELAYS, FAILURES, ERRORS, INTERRUPTIONS, OR LOSS OF DATA OCCURRING DIRECTLY OR INDIRECTLY BY REASON OF CIRCUMSTANCES BEYOND UPSHIFT’S CONTROL, INCLUDING WITHOUT LIMITATION THROUGH THE TRANSFER OF USER ASSETS TO ANY SUPPORTED BLOCKCHAIN IN CONNECTION WITH THE SERVICES.

11.5         **No Liability in Connection with Open-Source Software.**  Notwithstanding anything to the contrary in these Terms of Use, you acknowledge and agree that any content, software, or services you access under the terms of an open-source license is at your own risk, and Upshift shall not be liable for any damages, other liabilities or harm to any person or entity relating to any losses, delays, failures, errors, interruptions, or loss of data occurring directly or indirectly by reason of circumstances outside beyond Upshift’s control, including without limitation through your use of any content, software, or services under the terms of an open-source license.

11.6         **No Liability for Third-Party Materials.** As a part of the Services, you may have access to materials that are hosted by another party.  You agree that it is impossible for Upshift to monitor such materials and that you access these materials at your own risk.

12\.           **LIMITATION OF LIABILITY.**

12.1         Disclaimer of Certain Damages.  YOU UNDERSTAND AND AGREE THAT, TO THE FULLEST EXTENT PROVIDED BY LAW, IN NO EVENT SHALL UPSHIFT PARTIES BE LIABLE FOR ANY LOSS OF PROFITS, REVENUE OR DATA, INDIRECT, INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES, OR DAMAGES OR COSTS DUE TO LOSS OF PRODUCTION OR USE, BUSINESS INTERRUPTION, OR PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, IN EACH CASE WHETHER OR NOT UPSHIFT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, ARISING OUT OF OR IN CONNECTION WITH THE AGREEMENT OR USE OF SERVICES OR ANY COMMUNICATIONS, INTERACTIONS OR EXCHANGES WITH OTHER USERS OF SERVICES OR THIRD PARTIES THAT INTERACT WITH THE SERVICES, ON ANY THEORY OF LIABILITY, INCLUDING ANY SUCH DAMAGES RESULTING FROM (a) LOSS OR DIMINISHMENT IN VALUE OF USER ASSETS; (b) THE USE OR INABILITY TO USE SERVICES; (c) THE COST OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES RESULTING FROM ANY GOODS, DATA, INFORMATION, OR SERVICES PURCHASED OR OBTAINED; OR MESSAGES RECEIVED FOR TRANSACTIONS ENTERED INTO THROUGH THE SERVICES; (d) UNAUTHORIZED ACCESS TO OR ALTERATION OF YOUR TRANSMISSIONS OR DATA; (e) STATEMENTS OR CONDUCT OF ANY THIRD PARTY ON OR IN CONNECTION WITH THE SERVICES, INCLUDING WITHOUT LIMITATION ANY SUPPORTED BLOCKCHAIN; (f) ANY USE OF THE PROTOCOL; OR (g) ANY OTHER MATTER RELATED TO SERVICES, WHETHER BASED ON WARRANTY, COPYRIGHT, CONTRACT, TORT (INCLUDING NEGLIGENCE), PRODUCT LIABILITY OR ANY OTHER LEGAL THEORY.  THE FOREGOING LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY OF A UPSHIFT PARTY FOR (i) DEATH OR PERSONAL INJURY CAUSED BY A UPSHIFT PARTY’S NEGLIGENCE; OR FOR (ii) ANY INJURY CAUSED BY A UPSHIFT PARTY’S FRAUD OR FRAUDULENT MISREPRESENTATION.

12.2         **Cap on Liability.**  TO THE FULLEST EXTENT PROVIDED BY LAW, UPSHIFT PARTIES WILL NOT BE LIABLE TO YOU FOR MORE THAN THE GREATER OF (a) $100; OR (b) THE REMEDY OR PENALTY IMPOSED BY THE STATUTE UNDER WHICH SUCH CLAIM ARISES WHERE SUCH REMEDY OR PENALTY CANNOT BE WAIVED OR REDUCED PURSUANT TO THIS AGREEMENT. THE FOREGOING CAP ON LIABILITY SHALL NOT APPLY TO LIABILITY OF A UPSHIFT PARTY FOR (i) DEATH OR PERSONAL INJURY CAUSED BY A UPSHIFT PARTY’S NEGLIGENCE; OR FOR (ii) ANY INJURY CAUSED BY A UPSHIFT PARTY’S FRAUD OR FRAUDULENT MISREPRESENTATION.

12.3         **User Content.**  UPSHIFT ASSUMES NO RESPONSIBILITY FOR THE TIMELINESS, DELETION, OR MIS-DELIVERY OF OR FAILURE TO STORE ANY CONTENT (INCLUDING, BUT NOT LIMITED TO, YOUR CONTENT AND USER CONTENT), USER COMMUNICATIONS, OR PERSONALIZATION SETTINGS.

12.4         **Exclusion of Damages**.  CERTAIN JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES.  IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE EXCLUSIONS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MIGHT HAVE ADDITIONAL RIGHTS.

12.5         **Basis of the Bargain.**  THE LIMITATIONS OF DAMAGES SET FORTH ABOVE ARE FUNDAMENTAL ELEMENTS OF THE BASIS OF THE BARGAIN BETWEEN UPSHIFT AND YOU.

13\.           **MONITORING AND ENFORCEMENT.**&#x20;

If Upshift becomes aware of any possible violations by you of the Agreement, Upshift reserves the right to investigate such violations.  If, as a result of the investigation, Upshift believes that criminal activity has occurred, Upshift reserves the right to refer the matter to, and to cooperate with, any and all applicable legal authorities.  Upshift is entitled, except to the extent prohibited by applicable law, to disclose any information or materials on or in the Services, including any information related to your Digital Wallet and other Registration Data, in Upshift’s possession in connection with your use of Services, to (i) comply with applicable laws, legal process or governmental request; (ii) enforce the Agreement, (iii) respond to any claims that Your Content violates the rights of third parties, (iv) respond to your requests for customer service, or (v) protect the rights, property or personal safety of Upshift, its Users or the public, and all enforcement or other government officials, as Upshift in its sole discretion believes to be necessary or appropriate.

14\.           **TERM AND TERMINATION.**&#x20;

14.1         **Term.**  The Agreement commences on the date when you accept the Agreement (as described in the preamble above) and remain in full force and effect while you use Services, unless terminated earlier in accordance with the Agreement.

14.2         **Prior Use.**  Notwithstanding the foregoing, you hereby acknowledge and agree that the Agreement commenced on the earlier to occur of (a) the date you first used Services or (b) the date you accepted the Agreement, and will remain in full force and effect while you use any Services, unless earlier terminated in accordance with the Agreement.

14.3         **Termination of Services by Upshift.**  Upshift reserves the right to terminate this Agreement and your access to the Services at any time, for any or for no reason, with or without notice to you.

14.4         **Termination of Services by You.**  If you want to terminate the Services provided by Upshift, you may do so by (a) notifying Upshift at any time and (b) ceasing all further use of the Services.  Your notice should be sent, in writing, to Upshift’s address set forth below.  &#x20;

14.5         **Effect of Termination.**  Termination of any Service includes removal of access to such Service and barring of further use of the Service.  Termination of all Services may also include deletion of Your Content.  Upon termination of any Service, your right to use such Service will automatically terminate immediately.  You understand that any termination of Services may involve deletion of Your Content associated therewith from our live databases.  Upshift will not have any liability whatsoever to you for any suspension or termination, including for deletion of Your Content.  All provisions of the Agreement that by their nature should survive, shall survive termination of Services, including without limitation, ownership provisions, warranty disclaimers, indemnification and limitation of liability.

14.6         **No Subsequent Registration.**  If your ability to access the Services, is discontinued by Upshift due to your violation of any portion of the Agreement, then you agree that you shall not attempt to re-register with or access the Services, and you acknowledge that you will not be entitled to receive a refund for any Fees related to those Services to which your access has been terminated.&#x20;

15\.          **INTERNATIONAL USERS.**&#x20;

Services can be accessed from countries around the world and may contain references to Services and Content that are not available in your country.  These references do not imply that Upshift intends to announce the availability of such Services or Content in your country.  Services are controlled and offered by Upshift from its facilities in the British Virgin Islands.  Upshift makes no representations that Services are appropriate or available for use in other locations.  Those who access or use Services from other countries do so at their own volition and are responsible for compliance with local law.

16\.           **DISPUTE RESOLUTION.**  Please read this Section 16 (the “**Arbitration Agreement**”) carefully.  It is part of your contract with Upshift and affects your rights.  It contains procedures for MANDATORY BINDING ARBITRATION AND A CLASS ACTION WAIVER.

16.1         **Applicability of Arbitration Agreement.**  Subject to the terms of this Arbitration Agreement, you and Upshift agree that any dispute, claim, or disagreement arising out of or relating in any way to your access to or use of the Services or the Terms of Use and prior versions of the Terms of Use, including claims and disputes that arose between you and Upshift before the effective date of these Terms of Use (each, a “**Dispute**”) will be resolved by binding arbitration, rather than in court, except that (1) you and Upshift may assert claims or seek relief in small claims court if such claims qualify and remain in small claims court; and (2) you or Upshift may seek equitable relief in court for infringement or other misuse of intellectual property rights (such as trademarks, trade dress, domain names, trade secrets, copyrights, and patents).  For purposes of this Arbitration Agreement, “Dispute” will also include disputes that arose or involve facts occurring before the existence of this or any prior version of the Terms of Use as well as claims that may arise after the termination of these Terms of Use.

16.2         **Informal Dispute Resolution.**  There might be instances when a Dispute arises between you and Upshift.  If that occurs, Upshift is committed to working with you to reach a reasonable resolution.  You and Upshift agree that good faith informal efforts to resolve Disputes can result in a prompt, low‐cost, and mutually beneficial outcome.  You and Upshift therefore agree that before either party commences arbitration against the other (or initiates an action in small claims court if a party so elects), Upshift and you will personally meet and confer telephonically or via videoconference, in a good faith effort to resolve informally any Dispute covered by this Arbitration Agreement (“**Informal Dispute Resolution Conference**”).  If you are represented by counsel, your counsel may participate in the conference, but you will also participate in the conference.  The party initiating a Dispute must give notice to the other party in writing of its intent to initiate an Informal Dispute Resolution Conference (“**Notice**”), which shall occur within 45 days after the other party receives such Notice, unless an extension is mutually agreed upon by the parties.  Notice to Upshift that you intend to initiate an Informal Dispute Resolution Conference should be sent by email to the contact information set forth below.  The Notice must include the following: (1) your name, telephone number, mailing address, and e‐mail address; (2) the name, telephone number, mailing address and e‐mail address of your counsel, if any; and (3) a description of your Dispute.  The Informal Dispute Resolution Conference shall be individualized such that a separate conference must be held each time either party initiates a Dispute, even if the same law firm or group of law firms represents multiple users in similar cases, unless all parties agree; multiple individuals initiating a Dispute cannot participate in the same Informal Dispute Resolution Conference unless all parties agree.  In the time between a party receiving the Notice and the Informal Dispute Resolution Conference, nothing in this Arbitration Agreement shall prohibit the parties from engaging in informal communications to resolve the initiating party’s Dispute.  Engaging in the Informal Dispute Resolution Conference is a condition precedent and requirement that must be fulfilled before commencing arbitration.  The statute of limitations and any filing fee deadlines shall be tolled while the parties engage in the Informal Dispute Resolution Conference process required by this section.

16.3        **Waiver of Jury Trial.**  YOU AND UPSHIFT HEREBY WAIVE ANY CONSTITUTIONAL AND STATUTORY RIGHTS TO SUE IN COURT AND HAVE A TRIAL IN FRONT OF A JUDGE OR A JURY.  You and Upshift are instead electing that all Disputes shall be resolved by arbitration under this Arbitration Agreement, except as specified in the subsection entitled “Applicability of Arbitration Agreement” above.  There is no judge or jury in arbitration, and court review of an arbitration award is subject to very limited review.

16.4         **Waiver of Class and Other Non-Individualized Relief.**  YOU AND UPSHIFT AGREE THAT, EXCEPT AS SPECIFIED IN SUBSECTION 16.9, EACH OF US MAY BRING CLAIMS AGAINST THE OTHER ONLY ON AN INDIVIDUAL BASIS AND NOT ON A CLASS, REPRESENTATIVE, OR COLLECTIVE BASIS, AND THE PARTIES HEREBY WAIVE ALL RIGHTS TO HAVE ANY DISPUTE BE BROUGHT, HEARD, ADMINISTERED, RESOLVED, OR ARBITRATED ON A CLASS, COLLECTIVE, REPRESENTATIVE, OR MASS ACTION BASIS.  ONLY INDIVIDUAL RELIEF IS AVAILABLE, AND DISPUTES OF MORE THAN ONE CUSTOMER OR USER CANNOT BE ARBITRATED OR CONSOLIDATED WITH THOSE OF ANY OTHER CUSTOMER OR USER.  Subject to this Arbitration Agreement, the arbitrator may award declaratory or injunctive relief only in favor of the individual party seeking relief and only to the extent necessary to provide relief warranted by the party’s individual claim.  Nothing in this paragraph is intended to, nor shall it, affect the terms and conditions under Subsection 16.9. Notwithstanding anything to the contrary in this Arbitration Agreement, if a court decides by means of a final decision, not subject to any further appeal or recourse, that the limitations of this Subsection 16.4 are invalid or unenforceable as to a particular claim or request for relief (such as a request for public injunctive relief), you and Upshift agree that that particular claim or request for relief (and only that particular claim or request for relief) shall be severed from the arbitration and may be litigated in the courts of the British Virgin Islands.  All other Disputes shall be arbitrated or litigated in small claims court.  This subsection does not prevent you or Upshift from participating in a class-wide settlement of claims.

16.5         **Rules and Forum.**  If the Informal Dispute Resolution Conference process described above does not resolve satisfactorily within sixty (60) days after receipt of your Notice, you and Upshift agree that either party shall have the right to finally resolve the Dispute through binding arbitration.  The arbitration will be administered by the British Virgin Islands International Arbitration Center (“**BVI IAC**”) under the BVI IAC Arbitration Rules (the “**Rules**”) then in effect, except as modified by this section of this Arbitration Agreement.  A party who wishes to initiate arbitration must provide the other party with a request for arbitration (the “**Request**”).  The Request must include: (1) the name, telephone number, mailing address, e‐mail address of the party seeking arbitration (if applicable) as well as the applicable Digital Wallet address; (2) a statement of the legal claims being asserted and the factual bases of those claims; (3) a description of the remedy sought and an accurate, good‐faith calculation of the amount in controversy in United States Dollars; (4) a statement certifying completion of the Informal Dispute Resolution Conference process as described above; and (5) evidence that the requesting party has paid any necessary filing fees in connection with such arbitration.  If the party requesting arbitration is represented by counsel, the Request shall also include counsel’s name, telephone number, mailing address, and email address.  Such counsel must also sign the Request.  By signing the Request, counsel certifies to the best of counsel’s knowledge, information, and belief, formed after an inquiry reasonable under the circumstances, that: (1) the Request is not being presented for any improper purpose, such as to harass, cause unnecessary delay, or needlessly increase the cost of dispute resolution; (2) the claims, defenses and other legal contentions are warranted by existing law or by a nonfrivolous argument for extending, modifying, or reversing existing law or for establishing new law; and (3) the factual and damages contentions have evidentiary support or, if specifically so identified, will likely have evidentiary support after a reasonable opportunity for further investigation or discovery.  Unless you and Upshift otherwise agree, or the Batch Arbitration process discussed in subsection 16.9 is triggered, the arbitration will be conducted in the county where you reside.  Subject to the Rules, the arbitrator may direct a limited and reasonable exchange of information between the parties, consistent with the expedited nature of the arbitration.  If the BVI IAC is not available to arbitrate, the parties will select an alternative arbitral forum.  Your responsibility to pay any BVI IAC fees and costs will be solely as set forth in the applicable Rules.  You and Upshift agree that all materials and documents exchanged during the arbitration proceedings shall be kept confidential and shall not be shared with anyone except the parties’ attorneys, accountants, or business advisors, and then subject to the condition that they agree to keep all materials and documents exchanged during the arbitration proceedings confidential.

16.6         **Arbitrator.**  The arbitrator will be either a retired judge or an attorney licensed to practice law in the British Virgin Islands and will be selected by the parties from the BVI IAC’s roster of consumer dispute arbitrators.  If the parties are unable to agree upon an arbitrator within thirty-five (35) days of delivery of the Request, then the BVI IAC will appoint the arbitrator in accordance with the Rules, provided that if the Batch Arbitration process under subsection 16.9 is triggered, the BVI IAC will appoint the arbitrator for each batch.

16.7         **Authority of Arbitrator.**  The arbitrator shall have exclusive authority to resolve any Dispute, including, without limitation, disputes arising out of or related to the interpretation or application of the Arbitration Agreement, including the enforceability, revocability, scope, or validity of the Arbitration Agreement or any portion of the Arbitration Agreement, except for the following: (1) all Disputes arising out of or relating to Subsection 16.4, including any claim that all or part of Subsection 16.4 is unenforceable, illegal, void or voidable, or that Subsection 16.4 has been breached, shall be decided by a court of competent jurisdiction and not by an arbitrator; (2) except as expressly contemplated in Subsection 16.9, all Disputes about the payment of arbitration fees shall be decided only by a court of competent jurisdiction and not by an arbitrator; (3) all Disputes about whether either party has satisfied any condition precedent to arbitration shall be decided only by a court of competent jurisdiction and not by an arbitrator; and (4) all Disputes about which version of the Arbitration Agreement applies shall be decided only by a court of competent jurisdiction and not by an arbitrator.  The arbitration proceeding will not be consolidated with any other matters or joined with any other cases or parties, except as expressly provided in Subsection 16.9. The arbitrator shall have the authority to grant motions dispositive of all or part of any Dispute.  The arbitrator shall issue a written award and statement of decision describing the essential findings and conclusions on which the award is based, including the calculation of any damages awarded.  The award of the arbitrator is final and binding upon you and us.  Judgment on the arbitration award may be entered in any court having jurisdiction.

16.8         **Attorneys’ Fees and Costs.** The parties shall bear their own attorneys’ fees and costs in arbitration unless the arbitrator finds that either the substance of the Dispute or the relief sought in the Request was frivolous or was brought for an improper purpose (as measured by the standards set forth in Federal Rule of Civil Procedure 11(b)).  If you or Upshift need to invoke the authority of a court of competent jurisdiction to compel arbitration, then the party that obtains an order compelling arbitration in such action shall have the right to collect from the other party its reasonable costs, necessary disbursements, and reasonable attorneys’ fees incurred in securing an order compelling arbitration.  The prevailing party in any court action relating to whether either party has satisfied any condition precedent to arbitration, including the Informal Dispute Resolution Conference process, is entitled to recover their reasonable costs, necessary disbursements, and reasonable attorneys’ fees and costs.

16.9         **Batch Arbitration.**  To increase the efficiency of administration and resolution of arbitrations, you and Upshift agree that in the event that there are one hundred (100) or more individual Requests of a substantially similar nature filed against Upshift by or with the assistance of the same law firm, group of law firms, or organizations, within a thirty (30) day period (or as soon as possible thereafter), the BVI IAC shall (1) administer the arbitration demands in batches of 100 Requests per batch (plus, to the extent there are less than 100 Requests left over after the batching described above, a final batch consisting of the remaining Requests); (2) appoint one arbitrator for each batch; and (3) provide for the resolution of each batch as a single consolidated arbitration with one set of filing and administrative fees due per side per batch, one procedural calendar, one hearing (if any) in a place to be determined by the arbitrator, and one final award (“Batch Arbitration”).  All parties agree that Requests are of a “substantially similar nature” if they arise out of or relate to the same event or factual scenario and raise the same or similar legal issues and seek the same or similar relief.  To the extent the parties disagree on the application of the Batch Arbitration process, the disagreeing party shall advise the BVI IAC, and the BVI IAC shall appoint a sole standing arbitrator to determine the applicability of the Batch Arbitration process (“Administrative Arbitrator”).  In an effort to expedite resolution of any such dispute by the Administrative Arbitrator, the parties agree the Administrative Arbitrator may set forth such procedures as are necessary to resolve any disputes promptly.  The Administrative Arbitrator’s fees shall be paid by Upshift.  You and Upshift agree to cooperate in good faith with the BVI IAC to implement the Batch Arbitration process including the payment of single filing and administrative fees for batches of Requests, as well as any steps to minimize the time and costs of arbitration, which may include: (1) the appointment of a discovery special master to assist the arbitrator in the resolution of discovery disputes; and (2) the adoption of an expedited calendar of the arbitration proceedings.  This Batch Arbitration provision shall in no way be interpreted as authorizing a class, collective and/or mass arbitration or action of any kind, or arbitration involving joint or consolidated claims under any circumstances, except as expressly set forth in this provision.

16.10      **30-Day Right to Opt Out.** You have the right to opt out of the provisions of this Arbitration Agreement by sending written notice of your decision to opt out to the address set forth below, within thirty (30) days after first becoming subject to this Arbitration Agreement.  Your notice must include your name and address, email address, Digital Wallet address (if you have one), and an unequivocal statement that you want to opt out of this Arbitration Agreement.  If you opt out of this Arbitration Agreement, all other parts of these Terms of Use will continue to apply to you.  Opting out of this Arbitration Agreement has no effect on any other arbitration agreements that you may currently have, or may enter in the future, with us.

16.11      **Invalidity, Expiration.**  Except as provided in Subsection 16.4, if any part or parts of this Arbitration Agreement are found under the law to be invalid or unenforceable, then such specific part or parts shall be of no force and effect and shall be severed and the remainder of the Arbitration Agreement shall continue in full force and effect.  You further agree that any Dispute that you have with Upshift as detailed in this Arbitration Agreement must be initiated via arbitration within the applicable statute of limitation for that claim or controversy, or it will be forever time barred.  Likewise, you agree that all applicable statutes of limitation will apply to such arbitration in the same manner as those statutes of limitation would apply in the applicable court of competent jurisdiction.

16.12      **Modification.**  Notwithstanding any provision in these Terms of Use to the contrary, we agree that if Upshift makes any future material change to this Arbitration Agreement, it will notify you.  Unless you reject the change within thirty (30) days of such change become effective by writing to Upshift at the address set forth in Section 17.10, your continued use of the Services, including the acceptance of products and services offered on the Services following the posting of changes to this Arbitration Agreement constitutes your acceptance of any such changes.  Changes to this Arbitration Agreement do not provide you with a new opportunity to opt out of the Arbitration Agreement if you have previously agreed to a version of these Terms of Use and did not validly opt out of arbitration.  If you reject any change or update to this Arbitration Agreement, and you were bound by an existing agreement to arbitrate Disputes arising out of or relating in any way to your access to or use of the Services, any communications you receive, or these Terms of Use, the provisions of this Arbitration Agreement as of the date you first accepted the Terms of Use (or accepted any subsequent changes to these Terms of Use) remain in full force and effect.  Upshift will continue to honor any valid opt outs of the Arbitration Agreement that you made to a prior version of these Terms of Use.

16.13      **Confidentiality.**  All aspects of the arbitration proceeding, including but not limited to the award of the arbitrator and compliance therewith, shall be strictly confidential.  The parties agree to maintain confidentiality unless otherwise required by law.  This paragraph shall not prevent a party from submitting to a court of law any information necessary to enforce this Agreement, to enforce an arbitration award, or to seek injunctive or equitable relief.

16.14      **Survival of Agreement.**  This Arbitration Agreement will survive the termination of your relationship with Upshift.&#x20;

17\.           **GENERAL PROVISIONS.**

17.1         Independent Contractors.  The relationship of Upshift and you under this Agreement is that of independent contractors.  Notwithstanding anything else set forth herein, neither party will be deemed to be an employee, agent, partner or legal representative of the other for any purpose and neither will have any right, power or authority to create any obligation or responsibility on behalf of the other.  Your use of the Services shall not imply, suggest, or otherwise attempt to create an employment relationship between Upshift and you.

17.2         **Electronic Communications.**  The communications between you and Upshift may take place via electronic means, whether you visit Services or send Upshift e-mails, or whether Upshift posts notices on Services or communicates with you via e-mail.  For contractual purposes, you (a) consent to receive communications from Upshift in an electronic form; and (b) agree that all terms and conditions, agreements, notices, disclosures, and other communications that Upshift provides to you electronically satisfy any legal requirement that such communications would satisfy if it were to be in writing.&#x20;

17.3         **Release**.  You hereby release Upshift Parties and their successors from claims, demands, any and all losses, damages, rights, and actions of any kind, including personal injuries, death, and property damage, that is either directly or indirectly related to or arises from your use of Services, including but not limited to, any interactions with or conduct of other Users or third-party websites of any kind arising in connection with or as a result of the Agreement or your use of Services.&#x20;

17.4         **Assignment.**  The Agreement, and your rights and obligations hereunder, may not be assigned, subcontracted, delegated or otherwise transferred by you without Upshift’s prior written consent, and any attempted assignment, subcontract, delegation, or transfer in violation of the foregoing will be null and void.

17.5         **Force Majeure.**  Upshift shall not be liable for any delay or failure to perform resulting from causes outside its reasonable control, including, but not limited to, acts of God, war, terrorism, riots, embargos, acts of civil or military authorities, fire, floods, accidents, strikes or shortages of transportation facilities, fuel, energy, labor or materials.

17.6         **Questions, Complaints, Claims.**  If you have any questions, complaints, or claims with respect to Services, please contact us at: <support@upshift.finance>.  We will do our best to address your concerns.  If you feel that your concerns have been addressed incompletely, please let Upshift know, so we can investigate further.

17.7         **Exclusive Venue.**  To the extent the parties are permitted under this Agreement to initiate litigation in a court, both you and Upshift agree that all claims and disputes arising out of or relating to the Agreement will be litigated exclusively in the courts of the British Virgin Islands.

17.8         **Governing Law.**  THE TERMS AND ANY ACTION RELATED THERETO WILL BE GOVERNED AND INTERPRETED BY AND UNDER THE LAWS OF THE BRITISH VIRGIN ISLANDS, WITHOUT GIVING EFFECT TO ANY PRINCIPLES THAT PROVIDE FOR THE APPLICATION OF THE LAW OF ANOTHER JURISDICTION. THE UNITED NATIONS CONVENTION ON CONTRACTS FOR THE INTERNATIONAL SALE OF GOODS DOES NOT APPLY TO THE AGREEMENT.

17.9         **Choice of Language.**  It is the express wish of the parties that the Agreement and all related documents have been drawn up in English.&#x20;

17.10      **Notice.**  Where Upshift requires that you provide an e-mail address, you are responsible for providing Upshift with your most current e-mail address.  In the event that the last e-mail address you provided to Upshift is not valid, or for any reason is not capable of delivering to you any notices required/ permitted by the Agreement, Upshift’s dispatch of the e-mail containing such notice will nonetheless constitute effective notice.  You may give notice to Upshift at the following address: Trinity Chambers, PO Box 4301, Road Town, Tortola, British Virgin Islands.  Such notice shall be deemed given when received by Upshift by letter delivered by nationally recognized overnight delivery service or first class postage prepaid mail at the above address.

17.11      **Waiver**.  Any waiver or failure to enforce any provision of the Agreement on one occasion will not be deemed a waiver of any other provision or of such provision on any other occasion.

17.12      **Severability**.  If any portion of this Agreement is held invalid or unenforceable, that portion shall be construed in a manner to reflect, as nearly as possible, the original intention of the parties, and the remaining portions shall remain in full force and effect.

17.13      **Export Control.**  You may not use, export, import, or transfer Services except as authorized by the laws of the jurisdiction in which you obtained Services, and any other applicable laws.&#x20;

17.14      **Entire Agreement.**  The Agreement is the final, complete and exclusive agreement of the parties with respect to the subject matter hereof and supersedes and merges all prior discussions between the parties with respect to such subject matter.


# Privacy Policy

**Last Updated Date: November 6, 2024**

This Privacy Policy ("Policy") describes how Fractal Network Ltd. ("Upshift," "we," "us" or "our") may collect, use and disclose information, and your choices regarding this information. Please read this Policy carefully and contact us with questions at <support@upshift.finance>.

#### Applicability of This Policy <a href="#applicability-of-this-policy" id="applicability-of-this-policy"></a>

This Policy applies to our services, which include the services we provide on our platform, user interface to the Protocol or any other websites, pages, features, mobile applications, or content we own or operate (collectively, the "Sites") or when you use any Upshift API or third party applications relying on such an API, and related services (collectively, the "Services"). If you do not agree with the terms of this Policy, do not access or use the Services, Sites, or any other aspect of our business.

#### What We Collect[​](https://docs.ondo.finance/legal/privacy-policy#what-we-collect) <a href="#what-we-collect" id="what-we-collect"></a>

When you interact with our Services, we may collect:

* Contact Information, such as your email address.
* Financial Information, such as your Ethereum address, cryptocurrency wallet information, transaction history, and associated fees paid.
* Transaction Information, such as information about the transactions you make on our Services, such as the type of transaction, transaction amount, and timestamp.
* Correspondence, such as your feedback, questionnaire and other survey responses, and information you provide to our support teams, including via our help chat.
* Online Identifiers, such as geo location/tracking details, browser fingerprint, operating system, browser name and version, and/or personal IP addresses.
* Usage Data, such as user preferences and other data collected via cookies and similar technologies.
* Information We Get from Others. We may get information about you from other sources as required or permitted by applicable law, including public databases, credit bureaus & ID verification partners. We may combine the information collected from these sources with the information we get from this Site in order to comply with our legal obligations and limit the use of our Services in connection with fraudulent or other illicit activities.
* Information from cookies and other tracking technologies. We, and third parties we authorize, may Sites and mobile apps, and collect information about the use of the Services, as well as about our interactions with you. This information may include internet protocol (IP) addresses, browser type, internet service provider (ISP), referring/exit pages, operating system, date/time stamp, and clickstream data, and information about your interactions with the communications we send to you. We may combine this automatically collected log information with other information we collect about you. You may choose to set your web browser to refuse cookies, or to alert you when cookies are being sent. If you do so, please note that some parts of our Services may not function properly.

#### How We Use Information[​](https://docs.ondo.finance/legal/privacy-policy#how-we-use-information) <a href="#how-we-use-information" id="how-we-use-information"></a>

We use your information in accordance with your instructions, including any applicable terms in the Terms of Use, and as required by applicable law. We may also use the information we collect for:

**Providing Services and Features**[**​**](https://docs.ondo.finance/legal/privacy-policy#providing-services-and-features)

We may use the information we collect to provide, personalize, maintain, and improve our products and Services, including as we described in the Terms of Use. This includes using information to:

* operate, maintain, customize, measure, and improve our Services, and manage our business;
* process transactions;
* send information, including confirmations, notices, updates, security alerts, and support and administrative messages; and
* to create de-identified or aggregated data.

**Safety and Security**[**​**](https://docs.ondo.finance/legal/privacy-policy#safety-and-security)

We may use your information to help maintain the safety, security, and integrity of you and our Services, including to:

* protect, investigate, and deter against fraudulent, unauthorized, or illegal activity;
* monitor and verify identity or service access, combat spam, malware or security risks;
* perform internal operations necessary to provide our Services, including to troubleshoot software bugs and operational problems;
* enforce our agreements with third parties, and address violations of our Terms of Use or agreements for other Services; and
* comply with applicable security laws and regulations.

**User Support**[**​**](https://docs.ondo.finance/legal/privacy-policy#user-support)

We may use information we collect to provide support, including to:

* direct questions to the appropriate support person;
* investigate and address user concerns; and
* monitor and improve our customer support responses and processes.

**Research and Development**[**​**](https://docs.ondo.finance/legal/privacy-policy#research-and-development)

We may use the information we collect for testing, research, analysis, and product development to improve your experience. This helps us to improve and enhance the safety and security of our Services, improve our ability to prevent the use of our Services for illegal or improper purposes and develop new features and products relating to our Services.

**Legal and Regulatory Compliance**[**​**](https://docs.ondo.finance/legal/privacy-policy#legal-and-regulatory-compliance)

We may verify your identity by comparing the personal information you provide against third-party databases and public records. We may use the information we collect to investigate or address claims or disputes relating to use of our Services, or as otherwise allowed by applicable law, or as requested by regulators, government entities, and official inquiries.

**Direct Marketing**[**​**](https://docs.ondo.finance/legal/privacy-policy#direct-marketing)

We may use the information we collect to market our Services to you. This may include sending you communications about our Services, features, promotions, surveys, news, updates, and events, and managing your participation in these promotions and events. If you do not want us to send you marketing communications, please opt out by selecting "unsubscribe" to any marketing email sent by us or by contacting us at <support@upshift.finance>.

#### How We Share & Disclose Information[​](https://docs.ondo.finance/legal/privacy-policy#how-we-share--disclose-information) <a href="#how-we-share-and-disclose-information" id="how-we-share-and-disclose-information"></a>

We may share your information in the following circumstances:

* With Your Consent. For example, you may let us share personal information with others for their own marketing uses. Those uses will be subject to their privacy policies.
* To Comply with Our Legal Obligations. We may share your information: (A) to cooperate with government or regulatory investigations; (B) when we are compelled to do so by a subpoena, court order, or similar legal procedure; (C) when we believe in good faith that the disclosure of personal information is necessary to prevent harm to another person; (D) to report suspected illegal activity; or (E) to investigate violations of our User Agreement or any other applicable policies.
* With Service Providers. We may share your information with service providers who help facilitate business and compliance operations such as marketing and technology services. Our contracts require these service providers to only use your information in connection with the services they perform for us.
* During a Change to Our Business. If we engage in a merger, acquisition, bankruptcy, dissolution, reorganization, sale of some or all of our assets or stock, financing, public offering of securities, acquisition of all or a portion of our business, a similar transaction or proceeding, or steps in contemplation of such activities, some or all of your information may be shared or transferred, subject to standard confidentiality arrangements.
* Aggregated or De-identified Data. We may share aggregated and/or anonymized data with others for their own uses.

#### Data Retention[​](https://docs.ondo.finance/legal/privacy-policy#data-retention) <a href="#data-retention" id="data-retention"></a>

To view or update your information, contact us at <support@upshift.finance>[.](mailto:operations@fractalprotocol.org.) We store your information throughout the life of your use of the Protocol and retain your information for a minimum of five (5) years to comply with our legal obligations or to resolve disputes. If you cease using the Protocol, we will neither use your information for any further purposes, nor sell or share your information with third parties, except as necessary to prevent fraud and assist law enforcement, as required by law, or in accordance with this Policy.

#### Security[​](https://docs.ondo.finance/legal/privacy-policy#security) <a href="#security" id="security"></a>

We maintain administrative, technical and physical safeguards designed to protect the personal information we maintain against unauthorized access or disclosure. No system can be completely secure. Therefore, although we take steps to secure your information, we cannot guarantee that your information, searches, or other communication will always remain secure. You are responsible for all activity on the Protocol relating to any of your blockchain network addresses and/or cryptocurrency wallets.

**Your Rights**

You have various rights in respect of the personal information that we collect, use, disclose and transfer concerning you. These rights are set out below. Should you wish to exercise your rights please contact us at <support@upshift.finance>.

| Right of Access                   | You are entitled to obtain from us details concerning the processing of your personal information. This includes details of the data being processed, the purposes of the processing, any recipients of that information, the period for which the information is processed, the source of the information (if it is not provided by you), any international transfers of the information and the protections we put in place to protect your information. You are also entitled to details of any automated decision making, including profiling, involving your information. You are entitled to a copy of the personal information we process about you (including in electronic form). Additional copies may be subject to a reasonable administrative fee.                                                                                                                                    |
| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Right to Rectification            | You are entitled to have any incomplete and inaccurate personal information held by us rectified.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| Right to Erasure ("be forgotten") | In certain circumstances you are entitled to have personal information erased, including where this is no longer necessary for the purposes for which it was collected and/or processed; or you withdraw consent to our use of the information. We may continue processing the information in certain circumstances, including: if there are grounds other than consent for processing the information; where processing is in compliance with a legal obligation or for reasons of public interest; or for the exercise or defence of legal claims. If you request that we erase your personal information we shall advise you if we consider that there are on-going grounds permitting us to continue processing your information.                                                                                                                                                              |
| Right to Restrict Processing      | You can ask us to restrict the processing of personal information that Upshift holds if: you contest the accuracy of the personal information we process about you; you consider that the processing is unlawful but you do not want us to erase the information; we do not require to continue processing the information but you wish the information to be retained in connection with a legal claim; or you have objected to the grounds upon which we process the information. Where you have asked us to restrict processing the information we shall only hold, process and erase the information as permitted by you or as permitted by applicable data protection laws. We will advise you if we do not agree with your request to restrict processing and our reasons.                                                                                                                   |
| Right to Data Portability         | Where you provide personal information to us and consent to us using it and the processing is carried out by automatic means you are entitled to receive a copy of that information in a machine-readable format and for that to be provided to another data controller, where technically possible.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| Right to Object                   | You are entitled to object to Upshift ust collecting, using and otherwise processing your personal information where the basis for the processing is Upshift's legitimate interests or the processing is in the public interest. In such circumstances we shall cease processing your personal information unless: we are legitimately processing the information on a different basis; there are compelling legitimate grounds for continuing to process the personal information; or we are otherwise permitted to process the information under applicable data protection laws. If applicable, we will advise you of the basis upon which Upshift continues to process your personal information. If you are not clear of the ground(s) upon which we collect, use and process your personal information you can ask us to confirm this to you, as part of the Right of Access outlined above. |
| Right to Withdraw Consent         | Where you have given us consent to make use of your personal information for any of the purposes outlined in this Privacy Policy you shall be entitled to withdraw that consent. You may do this by emailing us at <support@upshift.finance>.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| Right to Complain                 | In the event that you have any questions, concerns or complaints regarding this Privacy Policy or the manner in which Upshift collects, uses and otherwise processes your personal information we shall always seek to address the same promptly and to your satisfaction. However if you consider that we have not done so you are entitled to lodge a complaint to your local supervisory authority. If you are unclear who the appropriate supervisory authority is for you, please contact us at <support@upshift.finance>.                                                                                                                                                                                                                                                                                                                                                                    |

#### Age Limitations[​](https://docs.ondo.finance/legal/privacy-policy#age-limitations) <a href="#age-limitations" id="age-limitations"></a>

To the extent prohibited by applicable law, we do not allow use of our Services and Sites by anyone younger than the legal age in the jurisdiction in which the user resides. If you learn that anyone younger than the legal age has unlawfully provided us with personal data, please contact us at <support@upshift.finance> and we will take steps to delete such information, close any such accounts, and, to the extent possible, prevent the user from continuing to use our Services.

#### Changes to This Policy[​](https://docs.ondo.finance/legal/privacy-policy#changes-to-this-policy) <a href="#changes-to-this-policy" id="changes-to-this-policy"></a>

If we make any changes, we will change the Last Updated date above. We encourage you to review this Policy to stay informed. If we make material changes, we will provide additional notice, such as via the email specified in your account or through the Services or Sites.

#### Online Tracking Opt-out Guide[​](https://docs.ondo.finance/legal/privacy-policy#online-tracking-opt-out-guide) <a href="#online-tracking-opt-out-guide" id="online-tracking-opt-out-guide"></a>

Like many companies online, we use services provided by Google and other companies that use tracking technology. These services rely on tracking technologies-such as cookies and web beacons-to collect directly from your device information about your browsing activities, your interactions with websites, and the device you are using to connect to the Internet. There are a number of ways to opt out of having your online activity and device data collected through these services, which we have summarized below:

* Blocking cookies in your browser. Most browsers let you remove or reject cookies, including cookies used for interest-based advertising. To do this, follow the instructions in your browser settings. Many browsers accept cookies by default until you change your settings. For more information about cookies, including how to see what cookies have been set on your device and how to manage and delete them, visit [www.allaboutcookies.org](http://www.allaboutcookies.org/).
* Blocking advertising ID use in your mobile settings. Your mobile device settings may provide functionality to limit use of the advertising ID associated with your mobile device for interest-based advertising purposes. Using privacy plug-ins or browsers. You can block our websites from setting cookies used for interest-based ads by using a browser with privacy features.
* Platform opt-outs. The following advertising partner offers opt-out features that let you opt-out of use of your information for interest-based advertising - Google: [https://adssettings.google.com.](https://adssettings.google.com./) Advertising industry opt-out tools. You can also use the opt-out options set forth below to limit use of your information for interest-based advertising by participating companies. Note that because these opt-out mechanisms are specific to the device or browser on which they are exercised, you will need to opt out on every browser and device that you use. Digital Advertising Alliance: [http://optout.aboutads.info](http://optout.aboutads.info/) Network Advertising Initiative: <http://optout.networkadvertising.org/>.

#### Additional Notice to California Residents (“CCPA Notice”) <a href="#additional-notice-to-california-residents-ccpa-notice" id="additional-notice-to-california-residents-ccpa-notice"></a>

The California Consumer Privacy Act of 2018 (“CCPA”) requires certain businesses to provide a CCPA Notice to California residents to explain how we collect, use, and share their personal information, and the rights and choices we offer California residents regarding our handling of their information.

* **Privacy Practices.** We do not “sell” personal information as defined under the CCPA. Please review the “Sharing and Disclosure of Information” section above for further details about the categories of parties with whom we share information.
* **Privacy Rights.** The CCPA gives individuals the right to request information about how we have collected, used, and shared your personal information. It also gives you the right to request a copy of any information we may maintain about you. You may also ask us to delete any personal information that we may have received about you. Please note that the CCPA limits these rights, for example, by prohibiting us from providing certain sensitive information in response to access requests and limiting the circumstances under which we must comply with a deletion request. We will respond to requests for information, access, and deletion only to the extent we are able to associate, with a reasonable effort, the information we maintain with the identifying details you provide in your request. If we deny the request, we will communicate the decision to you. You are entitled to exercise the rights described above free from discrimination.
* **Submitting a Request.** You can submit a request for information, access, or deletion to <support@upshift.finance>.
* **Identity Verification.** The CCPA requires us to collect and verify the identity of any individual submitting a request to access or delete personal information before providing a substantive response.
* **Authorized Agents.** California residents can designate an “authorized agent” to submit requests on their behalf. We will require the authorized agent to have a written authorization confirming their authority.

**Disclosures for European Union Data Subjects**

We process personal data for the purposes described in the section titled “How We Use Data” above. Our bases for processing your data include: (i) you have given consent to the process to us or our service provides for one or more specific purposes; (ii) processing is necessary for the performance of a contract with you; (iii) processing is necessary for compliance with a legal obligation; and/or (iv) processing is necessary for the purposes of the legitimate interested pursued by us or a third party, and your interests and fundamental rights and freedoms do not override those interests.

Your rights under the General Data Protection Regulations (“GDPR”) include the right to (i) request access and obtain a copy of your personal data, (ii) request rectification or erasure of your personal data, (iii) object to or restrict the processing of your personal data; and (iv) request portability of your personal data. Additionally, you may withdraw your consent to our collection at any time. Nevertheless, we cannot edit or delete information that is stored on a particular blockchain. Information such as your transaction data, blockchain wallet address, and assets held by your address that may be related to the data we collect is beyond our control.

To exercise any of your rights under the GDPR, please contact us at <support@upshift.finance>. We may require additional information from you to process your request. Please note that we may retain information as necessary to fulfill the purpose for which it was collected and may continue to do so even after a data subject request in accordance with our legitimate interests, including to comply with our legal obligations, resolves disputes, prevent fraud, and enforce our agreements.

#### **Cookies** <a href="#cookies" id="cookies"></a>

Cookies are text files containing small amounts of information which are downloaded to your device when you visit a website. Cookies are then sent back to the originating website on each subsequent visit, or to another website that recognises that cookie. Cookies are useful because they allow a website to recognise a user’s device.

Cookies do lots of different jobs, like letting you navigate between pages efficiently, remembering your preferences, and generally improve the user experience. They can also help to ensure that adverts you see online are more relevant to you and your interests.

For information on the cookies used on Upshift's website, please see our Cookie Policy.

**Contact information**

If you have any questions in relation to this Privacy Policy please contact us at <support@upshift.finance>.


# Cookie Policy

**Last Updated Date: November 6, 2024**

#### Introduction and Scope of Policy[​](https://docs.ondo.finance/legal/cookies-policy#introduction-and-scope-of-policy) <a href="#introduction-and-scope-of-policy" id="introduction-and-scope-of-policy"></a>

This Fractal Network Ltd. Cookies Policy (“Policy”) applies to your interaction with Fractal Network Ltd. or any of its subsidiaries or affiliates (“Upshift” or “we”).

Please read the following carefully to understand our policies and practices regarding the use of cookies on our Platform. By using or accessing our Platform, you agree to this Cookie Policy. This policy may change from time to time and your continued use of the Platform is deemed to be acceptance of such changes, so please check the policy periodically for updates.

#### About "Cookies" <a href="#about-cookies" id="about-cookies"></a>

Cookies are pieces of data stored on your device. Browser cookies are assigned by a web server to the browser on your device. When you return to a site you have visited before, your browser gives this data back to the server. Mobile applications may also use cookies.

We do not generally use cookies. We do not intentionally collect information to customize your experience on the website or the Upshift user interface (UI) to the Upshift Protocol. (“Sites” or “Site”).

Industry standards are currently evolving, and we may not separately respond to or take any action with respect to a “do not track” configuration set in your internet browser. Other parties that may collect information about your web browsing behavior when you use our Site are generally limited to service providers who may only use any information collected to provide services for us and not to provide services or advertising for any other party. Note, however, that we also provide certain widgets or tools on our sites that allow you to interact with third parties who provide these features, such as tools that allow web surfers to easily share information on another platform. At other times, information from a third party may be embedded on our Site, such as a map. These widgets, tools, and informational items often function through the use of third-party cookies utilized by the third party site. As a result, these third parties may have access to information about your web browsing on the pages of our Site where these widgets, tools, or information are placed. You may wish to review information at third party sites, where you have an account, to determine how these third parties treat data that they obtain through the use of cookies.

#### Do you have to accept Cookies?[​](https://docs.ondo.finance/legal/cookies-policy#do-you-have-to-accept-cookies) <a href="#do-you-have-to-accept-cookies" id="do-you-have-to-accept-cookies"></a>

You may be able to set your browser to reject cookies. If you set your browser options to disallow cookies, you may limit the functionality we can provide when you visit our Site. The latest versions of internet browsers provide cookie management tools, such as the ability to delete or reject cookies. We recommend that you refer to information supplied by browser providers for more specific information, including how to use these tools.

#### Additional Technologies[​](https://docs.ondo.finance/legal/cookies-policy#additional-technologies) <a href="#additional-technologies" id="additional-technologies"></a>

We do not typically use additional technologies such as pixel tags, web beacons, and clear GIFs. We may permit third-party service providers to use these technologies. They may use these technologies for purposes such as determining viewing and response rates.

#### Using Information[​](https://docs.ondo.finance/legal/cookies-policy#using-information) <a href="#using-information" id="using-information"></a>

In addition to the uses described above, we may use information for purposes as allowed by law such as: servicing; communicating with you; improving our Site, products, or services; legal compliance; risk control; information security; anti-fraud purposes; tracking website usage, such as number of hits, pages visited, and the length of user sessions in order to evaluate the usefulness of our sites.

#### Sharing[​](https://docs.ondo.finance/legal/cookies-policy#sharing) <a href="#sharing" id="sharing"></a>

We may share information with service providers with whom we work, such as service providers and companies that help us service you better. When permitted or required by law, we may share information with additional third parties for purposes including response to legal process. As applicable, please see our Privacy Policy for more information on how we may share information with affiliates and third parties.


# Deployed Contracts

{% content-ref url="/pages/Eo3fvDCxDGewJCfzs0pU" %}
[Upshift Lend](/resources/deployed-contracts/upshift-lend)
{% endcontent-ref %}

{% content-ref url="/pages/u8ynWIEhRGjaJPqSevCs" %}
[Upshift Partner Pools](/resources/deployed-contracts/upshift-partner-pools)
{% endcontent-ref %}


# Upshift Lend

## Upshift USDC (upUSDC)

<table><thead><tr><th width="256">Contract</th><th>Address (MainNet)</th></tr></thead><tbody><tr><td>Pool Implementation</td><td><a href="https://etherscan.io/address/0x43d41393124dfca45567ef005f5c79311c57c65b">0x43D41393124Dfca45567Ef005F5C79311C57c65b</a></td></tr><tr><td>Lending Pool (proxy)</td><td><a href="https://etherscan.io/address/0x80E1048eDE66ec4c364b4F22C8768fc657FF6A42">0x80E1048eDE66ec4c364b4F22C8768fc657FF6A42</a></td></tr><tr><td>Scheduled Proxy Admin</td><td><a href="https://etherscan.io/address/0x7820209a65a43b6ce2217692fc09fd52d3df21fd">0x7820209a65a43b6ce2217692fc09fd52D3df21FD</a></td></tr></tbody></table>

## Multi-sig Wallets

<table><thead><tr><th width="252">Contract</th><th width="448">Address (MainNet)</th></tr></thead><tbody><tr><td>Vault Owner</td><td><a href="https://etherscan.io/address/0x17ab7568Cd5386DF6C8E4552438E32794D057cC1">0x17ab7568Cd5386DF6C8E4552438E32794D057cC1</a></td></tr><tr><td>Vault Operator</td><td><a href="https://etherscan.io/address/0x416e26e331Fc0b77386e9dDB5Ed9AdE73F1241F4">0x416e26e331Fc0b77386e9dDB5Ed9AdE73F1241F4</a></td></tr><tr><td>Proxy Admin Owner</td><td><a href="https://etherscan.io/address/0x4107557d726933f0bca591a4218afc92978457f7">0x4107557d726933f0BcA591A4218Afc92978457F7</a></td></tr></tbody></table>

## \[Retired] Upshift USD (upUSD)&#x20;

<table><thead><tr><th width="252">Contract</th><th width="493">Address (MainNet)</th></tr></thead><tbody><tr><td>Pool implementation</td><td><a href="https://etherscan.io/address/0x12b32070c6b6ed77fc9c6a8063d97a542f14828e">0x12B32070C6b6Ed77fc9c6A8063D97a542F14828e</a></td></tr><tr><td>Lending Pool (proxy)</td><td><a href="https://etherscan.io/address/0xB7858b66dFA38b9Cb74d00421316116A7851c273">0xB7858b66dFA38b9Cb74d00421316116A7851c273</a></td></tr><tr><td>Scheduled Proxy Admin</td><td><a href="https://etherscan.io/address/0x478ccb9605448a8995e14743a16dca4eda342ce0">0x478CCb9605448a8995e14743a16Dca4eDa342cE0</a></td></tr><tr><td>Time-locked calls</td><td><a href="https://etherscan.io/address/0x4322a1114e8646bfce82b27f0faf22e0a696a07e">0x4322A1114E8646BfCe82B27F0Faf22e0A696a07E</a></td></tr></tbody></table>

## Upshift BTC (upBTC)

<table><thead><tr><th width="299">Contract</th><th width="448">Address (MainNet)</th></tr></thead><tbody><tr><td>Pool implementation</td><td><a href="https://etherscan.io/address/0x3695305ca200858e9981b11b87b2fe3d91488c60">0x3695305cA200858E9981b11b87B2Fe3D91488C60</a></td></tr><tr><td>Lending Pool (proxy)</td><td><a href="https://etherscan.io/address/0xEBac5e50003d4B17Be422ff9775043cD61002f7f">0xEBac5e50003d4B17Be422ff9775043cD61002f7f</a></td></tr><tr><td>Scheduled Proxy Admin</td><td><a href="https://etherscan.io/address/0x7b8db68187122204b0ab837d4bbafc4b719966b8">0x7b8DB68187122204b0ab837d4BBafC4B719966B8</a></td></tr><tr><td>Time-locked calls</td><td><a href="https://etherscan.io/address/0x0b570b355abb485e8ae08cddc798733fec047581">0x0b570B355abB485e8AE08CDDC798733fEc047581</a></td></tr></tbody></table>


# Upshift Partner Pools

## Kelp Gain agETH

<table><thead><tr><th width="252">Contract</th><th width="448">Address (MainNet)</th></tr></thead><tbody><tr><td>Pool implementation</td><td><a href="https://etherscan.io/address/0x1e367a83699119165cc748bd0714d8c2726973ce">0x1e367a83699119165cc748BD0714D8C2726973ce</a></td></tr><tr><td>Lending Pool (proxy)</td><td><a href="https://etherscan.io/address/0xe1B4d34E8754600962Cd944B535180Bd758E6c2e">0xe1B4d34E8754600962Cd944B535180Bd758E6c2e</a></td></tr><tr><td>Scheduled Proxy Admin</td><td><a href="https://etherscan.io/address/0x20c30c93916fbb7b9f0a25f0de5b656d14511083">0x20c30C93916Fbb7b9F0a25F0De5b656d14511083</a></td></tr><tr><td>Time-locked calls</td><td><a href="https://etherscan.io/address/0xaab6fda7c8495530d8eee35812cda32d5f165c38">0xaab6fdA7C8495530D8eeE35812cdA32D5F165c38</a></td></tr></tbody></table>

## Kelp High Growth hgETH

<table><thead><tr><th width="252">Contract</th><th width="448">Address (MainNet)</th></tr></thead><tbody><tr><td>Pool implementation</td><td><a href="https://etherscan.io/address/0xEd5C8C80A29E541b8781e0E729d9Af597A368589">0xEd5C8C80A29E541b8781e0E729d9Af597A368589</a></td></tr><tr><td>Lending Pool (proxy)</td><td><a href="https://etherscan.io/address/0xc824A08dB624942c5E5F330d56530cD1598859fD">0xc824A08dB624942c5E5F330d56530cD1598859fD</a></td></tr><tr><td>Regular Proxy Admin</td><td><a href="https://etherscan.io/address/0xD355dAAe366220A0282cD5d2687FBc395395fC40">0xD355dAAe366220A0282cD5d2687FBc395395fC40</a></td></tr><tr><td>Time-locked calls</td><td><a href="https://etherscan.io/address/0x06eada250B02A3614AFce04B8cd7025093312159">0x06eada250B02A3614AFce04B8cd7025093312159</a></td></tr></tbody></table>

## Lombard upLBTC Base

<table><thead><tr><th width="252">Contract</th><th width="448">Address (Base)</th></tr></thead><tbody><tr><td>Pool implementation</td><td><a href="https://basescan.org/address/0x82ebd62aee6a50b63f1aa2dd377adcbc949a136a">0x82EbD62Aee6a50b63F1Aa2DD377aDCBc949a136a</a></td></tr><tr><td>Lending Pool (proxy)</td><td><a href="https://basescan.org/address/0x4e2D90f0307A93b54ACA31dc606F93FE6b9132d2">0x4e2D90f0307A93b54ACA31dc606F93FE6b9132d2</a></td></tr><tr><td>Regular Proxy Admin</td><td><a href="https://basescan.org/address/0x35a5C2409CFE5fa646BAD379b7C575cA26DCee3E">0x35a5C2409CFE5fa646BAD379b7C575cA26DCee3E</a></td></tr><tr><td>Time-locked calls</td><td><a href="https://basescan.org/address/0x01630191978b6ade4e959054dcd4863a503ecce9">0x01630191978B6aDE4e959054DCD4863a503eCCE9</a></td></tr></tbody></table>

## Lombard upLBTC Mainnet

<table><thead><tr><th width="252">Contract</th><th width="448">Address (MainNet)</th></tr></thead><tbody><tr><td>Pool implementation</td><td><a href="https://etherscan.io/address/0x5b53d5474f4d6a3c5388f597d058eb0962b253b6">0x5B53D5474f4D6a3c5388F597D058EB0962B253b6</a></td></tr><tr><td>Lending Pool (proxy)</td><td><a href="https://etherscan.io/address/0x18a5a3D575F34e5eBa92ac99B0976dBe26f9F869">0x18a5a3D575F34e5eBa92ac99B0976dBe26f9F869</a></td></tr><tr><td>Scheduled Proxy Admin</td><td><a href="https://etherscan.io/address/0x9e3606aff8fb8f244bce9699224c85fe97a9596d">0x9E3606aff8fb8f244Bce9699224C85Fe97A9596D</a></td></tr><tr><td>Time-locked calls</td><td><a href="https://etherscan.io/address/0x161ad732c76ba95b09728371994a1e69b14b5ad1">0x161aD732c76BA95b09728371994A1e69B14B5ad1</a></td></tr></tbody></table>

## Avalanche upAUSD

<table><thead><tr><th width="252">Contract</th><th width="448">Address (Avalanche C-Chain)</th></tr></thead><tbody><tr><td>Pool implementation</td><td><a href="https://snowscan.xyz/address/0x237f498c29bb8479a7b7252fcd7df2042f3beb4e">0x237f498C29bb8479a7b7252FCd7Df2042f3bEB4E</a></td></tr><tr><td>Lending Pool (proxy)</td><td><a href="https://snowscan.xyz/address/0x3408b22d8895753C9A3e14e4222E981d4E9A599E">0x3408b22d8895753C9A3e14e4222E981d4E9A599E</a></td></tr><tr><td>Regular Proxy Admin</td><td><a href="https://snowscan.xyz/address/0x9b2f2677c6ece228708354a7e5d355ab2483293c#code">0x9b2f2677c6eCE228708354a7e5d355Ab2483293c</a></td></tr><tr><td>Scheduled Proxy Admin</td><td><a href="https://snowscan.xyz/address/0x01630191978b6ade4e959054dcd4863a503ecce9">0x01630191978B6aDE4e959054DCD4863a503eCCE9</a></td></tr><tr><td>Time-locked calls</td><td><a href="https://snowscan.xyz/address/0x2ae11038ac5215cda1af0ec5bb97815af6fc0476">0x2aE11038ac5215cda1aF0ec5bb97815AF6FC0476</a></td></tr><tr><td>Reward Distributor</td><td><a href="https://snowtrace.io/address/0xAeAc5f82B140c0f7309f7E9Ec43019062A5e5BE2">0xAeAc5f82B140c0f7309f7E9Ec43019062A5e5BE2</a></td></tr></tbody></table>

## Avalanche upAVAX

<table><thead><tr><th width="252">Contract</th><th width="448">Address (Avalanche C-Chain)</th></tr></thead><tbody><tr><td>Pool implementation</td><td><a href="https://snowscan.xyz/address/0xaab6fdA7C8495530D8eeE35812cdA32D5F165c38">0xaab6fdA7C8495530D8eeE35812cdA32D5F165c38</a></td></tr><tr><td>Lending Pool (proxy)</td><td><a href="https://snowscan.xyz/address/0xB2bFb52cfc40584AC4e9e2B36a5B8d6554A56e0b">0xB2bFb52cfc40584AC4e9e2B36a5B8d6554A56e0b</a></td></tr><tr><td>Regular Proxy Admin</td><td><a href="https://snowscan.xyz/address/0xcd47da71006017c66B6112Af26e12B2AAe72166d">0xcd47da71006017c66B6112Af26e12B2AAe72166d</a></td></tr><tr><td>Time-locked calls</td><td><a href="https://snowscan.xyz/address/0xB5963e8E17C3C839B5F963DF5C88A635F8B38888">0xB5963e8E17C3C839B5F963DF5C88A635F8B38888</a></td></tr><tr><td>Reward Distributor</td><td><a href="https://snowscan.xyz/address/0xd3e653A9f6F3d96B26Dd4487a53D151140B697C4">0xd3e653A9f6F3d96B26Dd4487a53D151140B697C4</a></td></tr></tbody></table>

## Ethena Growth upsUSDe

<table><thead><tr><th width="252">Contract</th><th width="448">Address (MainNet)</th></tr></thead><tbody><tr><td>Pool implementation</td><td><a href="https://etherscan.io/address/0xea19b8f2229b50411e001dca9478fc3eef9fdcc6">0xeA19B8F2229b50411e001dCA9478Fc3Eef9fdCC6</a></td></tr><tr><td>Lending Pool (proxy)</td><td><a href="https://etherscan.io/address/0xd684AF965b1c17D628ee0d77cae94259c41260F4">0xd684AF965b1c17D628ee0d77cae94259c41260F4</a></td></tr><tr><td>Regular Proxy Admin</td><td><a href="https://etherscan.io/address/0x76398B645eBbe42D8A6E516CdE2d955f33c4F585">0x76398B645eBbe42D8A6E516CdE2d955f33c4F585</a></td></tr><tr><td>Time-locked calls</td><td><a href="https://etherscan.io/address/0xdcaed0c3fea30e3edcb1d48f1380aea167e366e2">0xDCaed0C3feA30E3EdCB1d48f1380aEA167E366E2</a></td></tr></tbody></table>

## Treehouse Grow Vault

<table><thead><tr><th width="252">Contract</th><th width="448">Address (MainNet)</th></tr></thead><tbody><tr><td>Pool implementation</td><td><a href="https://etherscan.io/address/0x4555b1e9668553f11d95588d21d79e348ade6761">0x4555b1e9668553f11d95588d21d79e348ade6761</a></td></tr><tr><td>Lending Pool (proxy)</td><td><a href="https://etherscan.io/address/0x5Fde59415625401278c4d41C6beFCe3790eb357f">0x5Fde59415625401278c4d41C6beFCe3790eb357f</a></td></tr><tr><td>Regular Proxy Admin</td><td><a href="https://etherscan.io/address/0xfA0713A8248876a9274a4C0eCeBcD6d61D603463">0xfA0713A8248876a9274a4C0eCeBcD6d61D603463</a></td></tr><tr><td>Time-locked calls</td><td><a href="https://etherscan.io/address/0x02e0976ef2a0e2c22b73862b2cfd0dafbb22d881">0x02e0976EF2a0e2c22B73862B2CFd0daFbB22D881</a></td></tr></tbody></table>


# Vault Specific Terms of Use

{% content-ref url="/pages/oXIWWpOCZXjjFC1LIHiD" %}
[DayFi Vault Terms](/resources/vault-specific-terms-of-use/dayfi-vault-terms)
{% endcontent-ref %}


# DayFi Vault Terms

Important Vault Disclosures

#### **Third-Party Platform Involvement.**

This Vault utilizes infrastructure and services provided by third-party platforms, including DayFi. Certain aspects of your interaction with this Vault — including account access, transaction processing, sanctions screening, withdrawal restrictions, and compliance controls — may be subject to the applicable terms, policies, and procedures of such third-party platforms.

#### DayFi Terms of Service.

By participating in this Vault, you acknowledge that, to the extent applicable, your use of DayFi’s services is subject to DayFi’s Terms of Service, available at: <https://www.dayfi.com/terms-of-service> DayFi’s terms apply only to the services DayFi controls and do not replace or limit the disclosures, risk factors, or limitations of liability set forth in Upshift’s Terms of Use.

#### Sanctions and Blocked Funds Risk.

Transactions involving digital assets are subject to economic sanctions laws and regulations. If a wallet address, account, or transaction is flagged under applicable sanctions laws or compliance policies (including those applied by DayFi or other third-party service providers), assets may be blocked or frozen and may not be released, withdrawn, or transferred unless authorized by the relevant governmental authority. Neither Upshift nor DayFi may have the ability to reverse or override such restrictions.

#### No Guaranteed Returns.

Returns generated through this Vault are not guaranteed, may vary over time, and are subject to market conditions, protocol risks, and operational risks. Participation in this Vault involves the risk of partial or total loss of digital assets.

#### No Control Over Third-Party Actions.

Upshift does not control and is not responsible for determinations made by third-party platforms, custodians, exchanges, or compliance providers, including determinations related to sanctions screening, transaction blocking, or withdrawal limitations.

#### Governing Terms.

Your participation in this Vault remains subject to Upshift’s Terms of Use, which govern the Vault strategy, risk disclosures, and your relationship with Upshift. In the event of any inconsistency, Upshift’s Terms of Use shall govern with respect to the Vault itself.


