Skip to content

Cross-chain USDS & sUSDS

Overview

The Spark Liquidity Layer enables cross-chain liquidity of USDS and sUSDS. Integrators on these networks can tap into this liquidity by integrating these cross-chain tokens, and the Spark PSM.

The crosschain USDS and sUSDS tokens use the same simple ERC20 token implementation. The only difference between them is that sUSDS will increase in value over time according to the Sky Savings Rate. Converting between them on other networks can be done at no slippage or fees beyond gas using the Spark PSM. The crosschain sUSDS token does not contain any ERC4626 functionality - this is only available on Ethereum mainnet.

Contract Details

  • Type/Category: Token
  • Contract Source: Github

Deployment Addresses

NetworkTokenAddress
BaseUSDS0x820C137fa70C8691f0e44Dc420a5e53c168921Dc
BasesUSDS0x5875eEE11Cf8398102FdAd704C9E96607675467a

ERC20 token functionality

The contract implements the functions specified in the ERC-20 interface.

  • transfer: Transfers a specified amount of tokens from the caller's address to the specified recipient's address. It returns a boolean value indicating the success of the transfer.
  • transferFrom: Transfers a specified amount of tokens from the from address to the to address. The transfer must be allowed by the from address by calling the approve function or by setting an allowance. It returns a boolean value indicating the success of the transfer.
  • approve: Sets an allowance for a specific spender to spend a certain amount of tokens on behalf of the caller. It returns a boolean value indicating the success of the approval.

Upgradeability

The contract uses the ERC-1822 UUPS pattern for upgradeability and the ERC-1967 proxy storage slots standard. It is important that the SUsdsDeploy library sequence be used for deploying.

Events emitted

  • Approval: This event is emitted when an approval is set for a specific address. It indicates that the owner has approved the spender to spend a certain amount of tokens.
  • Transfer: This event is emitted when tokens are transferred from one address to another. It indicates the amount of tokens transferred and the addresses involved in the transfer.

Additional resources