# Package net.corda.contracts.clause

- Interface Summary
  Interface | Description
  --- | ---
  NetState<P> | Common interface for the state subsets used when determining nettability of two or more states. Exposes the underlying issued thing.

- Class Summary
  Class | Description
  --- | ---
  AbstractConserveAmount<S extends FungibleAsset<T>,C extends CommandData,T> | Standardised clause for checking input/output balances of fungible assets. Requires that a Move command is provided, and errors if absent. Must be the last clause under a grouping clause; errors on no-match, ends on match.
  AbstractIssue<S extends ContractState,C extends CommandData,T> | Standard issue clause for contracts that issue fungible assets.
  BilateralNetState<P> | Subset of state, containing the elements which must match for two obligation transactions to be nettable. If two obligation state objects produce equal bilateral net states, they are considered safe to net directly. Bilateral states are used in close-out netting.
  MultilateralNetState<P> | Subset of state, containing the elements which must match for two or more obligation transactions to be candidates for netting (this does not include the checks to enforce that everyone's amounts received are the same at the end, which is handled under the verify() function). In comparison to `class BilateralNetState`, this doesn't include the parties' keys, as ensuring balances match on input and output is handled elsewhere. Used in cases where all parties (or their proxies) are signing, such as central clearing.
  NetClause<C extends CommandData,P> | Clause for netting contract states. Currently only supports obligation contract.
  NoZeroSizedOutputs<S extends FungibleAsset<T>,C extends CommandData,T> | Clause for fungible asset contracts, which enforces that no output state should have a balance of zero.