# stUsdcLite

## Overview

`stUsdcLite` is a minimal implementation of `stUsdc` that will be deployed on all blockchains except for Arbitrum. It will still accrue the same yield and rebase just like the full instance on Arbitrum. The only difference is that liquidity is not stored within this instance and to deposit and redeem users must either bridge back to Arbitrum or interact with one of our partnered chain abstraction providers. (More details on this to come).

## Contract API

### `transferShares`

```solidity
function transferShares(address recipient, uint256 sharesAmount) external returns (uint256);
```

Transfers `sharesAmount` of `stUsdc` from `msg.sender` to the `recipient`.

### `transferSharesFrom`

```solidity
function transferSharesFrom(address sender, address recipient, uint256 sharesAmount) external returns (uint256);
```

Transfers `sharesAmount` of `stUsdc` from `sender` to the `recipient`.

### `totalUsd`

```solidity
function totalUsd() external view returns (uint256);
```

Returns the total usd value allocated for the given deployment instance of `stUsdc`.

### `totalShares`

```solidity
function totalShares() external view returns (uint256);
```

Returns the total number of shares for the instance of `stUsdc`.

### `sharesOf`

```solidity
function sharesOf(address account) external view returns (uint256);
```

Returns the amount of shares owned by an `account`.

### `sharesByUsd`

```solidity
function sharesByUsd(uint256 usdAmount) external view returns (uint256);
```

Returns the number of shares corresponding with a given `usdAmount`.

### `usdByShares`

```solidity
function usdByShares(uint256 sharesAmount) external view returns (uint256);
```

Returns the amount of USD that corresponds with a given `sharesAmount`.

### `rewardPerSecond`

```solidity
function rewardPerSecond() external view returns (uint256);
```

Returns the `rewardPerSecond` of yield that is being distributed to token holders over the `24 hour` duration following rate updates.

### `lastRateUpdate`

```solidity
function lastRateUpdate() external view returns (uint256);
```

Returns the last time that the rate was updated

### `lastUsdPerShare`

```solidity
function lastUsdPerShare() external view returns (uint256);
```

Returns the `usdPerShare` value at the time of the last rate update

### `totalUsdFloor`

```solidity
function totalUsdFloor() external view returns (uint256);
```

Returns the total USD value of the protocol, not including any yield that is set to drip out with `rewardPerSecond`.

### `keeper`

```solidity
function keeper() external view returns (StakeUpKeeper);
```

Returns the instance of the `StakeUpKeeper` contract, which is a LayerZero OApp that relays rate updates from the liquidity hub chain to all other blockchain instances.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.stakeup.finance/technical-docs/smart-contracts/tokens/stusdc/stusdclite.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
