> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reinskit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Run Reins on testnet

> Run the published Reins CLI, create fresh XRPL testnet accounts, review your policy plan, apply it, verify live state, and revoke delegation as the owner.

Run the published Reins CLI in a new local project directory. This guide pins version 0.0.2, a testnet alpha.

## Prerequisites

* Node.js 22.12 or later and npm.
* Network access to XRPL testnet and its faucet.

Use fresh testnet accounts and testnet funds only. Never reuse a production wallet seed.

**1. Check the CLI**

```bash theme={"dark"}
mkdir reins-testnet
cd reins-testnet
npx reinskit@0.0.2 --version
```

The command downloads the CLI from npm and prints `0.0.2`. No source build or global installation is required.

**2. Create testnet accounts**

```bash theme={"dark"}
npx reinskit@0.0.2 init --testnet-accounts
```

Initialization writes `reins.yaml` with account addresses and `.reins/testnet-wallets.json` with plaintext testnet seeds. It also creates a separate agent signing identity for the optional hardened account topology.

Keep the wallet file local. Initialization writes `.reins/.gitignore` to keep wallet files out of Git. Do not upload the file to an agent, documentation service, or chat.

Faucet requests can be slow or unavailable. If initialization fails, inspect its output before retrying.

**3. Review the generated policy**

Keep the generated `version`, `network`, and `accounts` fields. For a small payment-only example, replace the following sections:

```yaml theme={"dark"}
budget:
  asset: XRP
  amount: "10"
  period: 24h

agent:
  permissions: [Payment]
```

This is a policy excerpt. The generated template initially includes `Payment`, `CheckCash`, and `EscrowFinish`; choosing only `Payment` narrows the delegated transaction types.

`amount` caps each refill Check. `period` sets that Check's expiration. It does not create a rolling daily spending limit.

**4. Inspect the plan**

```bash theme={"dark"}
npx reinskit@0.0.2 plan reins.yaml
```

Review the proposed transactions, signing roles, enforcement descriptions, and limitations. Planning does not submit transactions.

**5. Apply, then verify**

```bash theme={"dark"}
npx reinskit@0.0.2 apply reins.yaml --wallets .reins/testnet-wallets.json
npx reinskit@0.0.2 verify reins.yaml
```

`apply` signs and submits transactions; the CLI refuses mainnet for this command. A failed apply can leave some steps completed. Inspect the reported results and live state before retrying.

Verification reads the ledger. Read the individual findings rather than treating a successful command invocation as proof of the intended configuration.

**6. Revoke as the owner**

```bash theme={"dark"}
npx reinskit@0.0.2 revoke reins.yaml --wallets .reins/testnet-wallets.json
```

Revoke submits cleanup transactions and verifies the resulting ledger state. Read its final report. Submission alone does not confirm that revocation succeeded.

## Connect an agent next

Start with an MCP server that can inspect and prepare transactions without a signing key. Keep the multi-wallet owner file out of the agent process.

> **[Connect an MCP client](/guides/mcp)**
>
> Configure inspection, policy status, transaction preparation, and explanations.

For command options, see the [CLI reference](/reference/cli). Before changing funding or permissions, read the [enforcement boundary](/concepts/enforcement).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.