diff --git a/README.md b/README.md index f4d0419..861d48e 100644 --- a/README.md +++ b/README.md @@ -4,20 +4,16 @@ This repository contains a Default Symbiotic Collateral implementation. ## Collateral -**Collateral** - a concept introduced by Symbiotic that brings capital efficiency and scale by enabling assets used to secure Symbiotic networks to be held outside of the Symbiotic protocol itself - e.g. in DeFi positions on networks other than Ethereum itself. +**Collateral** - a concept introduced by Symbiotic that brings capital efficiency and scale by allowing assets used to secure Symbiotic networks to be held outside the Symbiotic protocol itself, such as in DeFi positions on networks other than Ethereum. -Symbiotic achieves this by separating the ability to slash assets from the underlying asset itself, similar to how liquid staking tokens create tokenized representations of underlying staked positions. Technically, collateral positions in Symbiotic are ERC-20 tokens with extended functionality to handle slashing incidents if applicable. In other words, if the collateral token aims to support slashing, it should be possible to create a `Burner` responsible for proper burning of the asset. +Symbiotic achieves this by separating the ability to slash assets from the underlying asset, similar to how liquid staking tokens create tokenized representations of underlying staked positions. Technically, collateral positions in Symbiotic are ERC-20 tokens with extended functionality to handle slashing incidents if applicable. In other words, if the collateral token supports slashing, it should be possible to create a `Burner` responsible for properly burning the asset. ## Default Collateral -Default Collateral is a simple implementation of the collateral token. Technically it's a wrapper over any ERC-20 token with additional slashing history functionality. These functionality is optional and not required in general case. +Default Collateral is a simple implementation of the collateral token. Technically, it's a wrapper over any ERC-20 token with additional slashing history functionality. This functionality is optional and not required in most cases. The implementation can be found [here](./src/contracts/defaultCollateral). -## Technical Documentation - -Technical documentation can be found [here](./specs). - ## Security Security audits can be found [here](./audits). diff --git a/specs/Collateral.md b/specs/Collateral.md deleted file mode 100644 index 0f947d7..0000000 --- a/specs/Collateral.md +++ /dev/null @@ -1,38 +0,0 @@ -## Collateral - -### General Overview - -Any operator wishing to operate in a Proof of Stake (POS) system must have a stake. This stake must be locked in some manner, somewhere. There are solutions that make such a stake liquid, yet the original funds remain locked, and in exchange, depositors/delegators receive LST tokens. They can then operate with these LST tokens. The reasons for locking the original funds include the need for immediate slashing if an operator misbehaves. This requirement for instant action necessitates having the stake locked, a limitation imposed by the current design of POS systems. - -Collateral introduces a new type of asset that allows stakeholders to hold onto their funds and earn yield from them without needing to lock these funds in direct manner or convert them to another type of asset. Collateral represents an asset but does not require physically holding or locking this asset. The securities backing the Collateral can be in various forms, such as a liquidity pool position, some real-world asset, or generally any type of asset. Depending on the implementation of Collateral, this securing asset can be held within the Collateral itself or elsewhere. - -Symbiotic allows collateral tokens to be deposited into vaults, which delegate collateral to operators across Symbiotic networks. Vaults define acceptable collateral and it's `Burner` (if vault supports slashing) and networks need to accept these and other vault terms such as slashing limits to receive rewards. - -### Technical Overview - -We do not specify the exact implementation of the Collateral, however, it must satisfy all the following requirement: - -- Collateral token must support ERC-20 interface -- [OPTIONAL] Collateral token should be slashable i.e. native token or derivative that supports redeeming the underlying native token. (Only if collateral is used in slashable vaults). - -### Deploy - -```shell -source .env -``` - -#### Deploy factory - -Deployment script: [click](../script/deploy/defaultCollateral/DefaultCollateralFactory.s.sol) - -```shell -forge script script/deploy/defaultCollateral/DefaultCollateralFactory.s.sol:DefaultCollateralFactoryScript --broadcast --rpc-url=$ETH_RPC_URL -``` - -#### Deploy entity - -Deployment script: [click](../script/deploy/defaultCollateral/DefaultCollateral.s.sol) - -```shell -forge script script/deploy/defaultCollateral/DefaultCollateral.s.sol:DefaultCollateralScript 0x0000000000000000000000000000000000000000 0x0000000000000000000000000000000000000000 115792089237316195423570985008687907853269984665640564039457584007913129639935 0x0000000000000000000000000000000000000000 --sig "run(address,address,uint256,address)" --broadcast --rpc-url=$ETH_RPC_URL -```