# Sell and share

> Technical setup for distributing what you build: plug-in license activation in release builds, the face license prop, testers and status, sampler bank access, and publishing commands.

Canonical: https://maru.audio/docs/sell-and-share
Documentation index: https://maru.audio/llms.txt

This page covers the technical side of distributing a module or bank:
licensing in builds, what your code sees, and the commands involved. Selling
policy (pricing, creator share, refunds, payouts and early access) lives in the
Help Center: [Sell your creations on Maru](https://maru.audio/help/selling-on-maru.md),
[Licenses and product access](https://maru.audio/help/licenses-and-product-access.md)
and [Your creator dashboard and earnings](https://maru.audio/help/creator-dashboard-and-earnings.md).

## What each artifact needs

| Artifact | Access control | Technical requirement |
| --- | --- | --- |
| Native plug-in | License activation in the plug-in shell | A release build with licensing bound to the module's Studio project |
| Sampler bank | Download requires a purchase while the bank is on sale | Every sample must allow redistribution |
| Browser module | Account entitlement on the module page | A published release |
| Free module, bank or face | None | A published release; optionally the [Maru Remix License](https://maru.audio/docs/maru-remix-license.md) |

## Plug-in licensing

Link the module to a Studio project, turn licensing on and make a release
build:

```sh
maru module deploy
maru module license on --seats 3 --trial 14
maru plugin build --release
```

`license on` writes the binding into `package.json` (or `plugin.config.json`)
under the module's `id`. Commit it. Only release builds include licensing;
`maru dev`, development builds and format checks process audio without
activation. A release build refuses to compile without Maru's public signing
keys, so a forged license cannot activate it.

The plug-in shell draws its own activation badge and panel. A face that wants
its own presentation reads the optional `license` prop, which is present only
in a licensed native build:

```tsx
import type { AudioModuleFaceProps } from "maruaudio/contracts"

export function Face({ license }: AudioModuleFaceProps) {
  if (license?.state.status === "trial")
    return <button onClick={license.activate}>Trial · {license.state.daysLeft} days left</button>
  return null
}
```

Testers and status:

```sh
maru module license grant tester@example.com
maru module license revoke tester@example.com
maru module license status
```

`status` reports settings, seats, trials, activations and refusals by format,
in aggregate only. [Plug-in licensing](https://maru.audio/docs/plugin-licensing.md) has every state,
flag and action.

## Publishing

`maru module check` and `maru module eval` validate the contract, face, build
and audio health. `maru module pack` prepares a versioned Release without
uploading it. See [Publishing](https://maru.audio/docs/publishing.md),
[Check, build and export](https://maru.audio/docs/export.md) and
[Package and release audio plug-ins](https://maru.audio/docs/packaging-and-releasing-plugins.md).

Release builds are currently available to developers in the selected-developer
beta.
