# Metaplex Barista Interface
This crates defines the `Service` instruction required for integrating programs with Barista.
## Getting started
From your project folder:
```bash
cargo add mpl-barista-interface
```
## Interface
The interface between Barista and a program is defined by the `Service` instruction.
```rust
#[derive(SplDiscriminate, Default)]
#[discriminator_hash_input("mpl_barista_interface:service")]
pub struct ServiceInstruction;
```
This instruction takes the following required account:
1. `[signer]` - the `Barista` account.
2. `[]` - the owner of the `Request` account.
3. `[writable]` - destination account.
The `destination` is the account owned by the target program. In addition to these accounts, any required account by the target program must be specified as remaining accounts.