> For the complete documentation index, see [llms.txt](https://docs.stakeup.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.stakeup.finance/technical-docs/smart-contracts/tokens/stusdc/stusdclite.md).

# 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.
