# Solidity

#### **SuperTokenV1Library Contract**

{% embed url="<https://github.com/superfluid-finance/protocol-monorepo/blob/dev/packages/ethereum-contracts/contracts/apps/SuperTokenV1Library.sol>" %}

#### **Quickstart Guide**

{% embed url="<https://ethglobal.com/guides/introduction-to-superfluid-protocol-be10i#1-introduction>" %}
Make a contract that streams money in under 10 minutes!
{% endembed %}

#### **Example Code**

{% embed url="<https://github.com/superfluid-finance/super-examples/blob/main/projects/money-streaming-intro/money-streaming-intro-hardhat/contracts/MoneyRouter.sol>" %}

## Getting Set To Start Streams

Initialize the SuperTokenV1Library in your constructor with the below code.

### Initializing the Library

```solidity
// initializing the CFA Library
pragma solidity 0.8.14;

import { 
    ISuperfluid 
} from "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluid.sol";

import { 
    ISuperToken 
} from "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperToken.sol";

import {
    SuperTokenV1Library
} from "@superfluid-finance/ethereum-contracts/contracts/apps/SuperTokenV1Library.sol";

contract SomeContractWithSuperTokenV1Library {

    using SuperTokenV1Library for ISuperToken;
    ISuperToken public token;
    
    constructor(ISuperToken _token) {
        token = _token;
    }
    
    // your contract code here...
    
}
```

## Interacting With The CFA

{% content-ref url="cfav1-library/read-methods" %}
[read-methods](https://superfluid.gitbook.io/superfluid/developers/constant-flow-agreement-cfa/cfav1-library/read-methods)
{% endcontent-ref %}

{% content-ref url="cfav1-library/write-methods" %}
[write-methods](https://superfluid.gitbook.io/superfluid/developers/constant-flow-agreement-cfa/cfav1-library/write-methods)
{% endcontent-ref %}
