Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .agents/skills/controller-presets/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Ask:

Explain:
- Sepolia is paymastered by default — no paymaster setup needed for testnet.
- Mainnet requires a Cartridge paymaster (see `cartridge-paymaster` skill) to sponsor transactions.
- Mainnet requires a Slot paymaster (see `slot-paymaster` skill) to sponsor transactions.

### Phase 2: Origin Configuration

Expand Down Expand Up @@ -254,7 +254,7 @@ Teams often include both chains in a single preset — use separate contract add
→ Policies are selected by chain ID at runtime. Verify the chain ID in your config matches what your RPC returns. Use `SN_MAIN`/`SN_SEPOLIA`, not hex chain IDs.

**"Paymaster not sponsoring on mainnet"**
→ Sepolia is auto-sponsored. Mainnet requires creating a Cartridge paymaster, funding it, and adding matching policies. See `cartridge-paymaster` skill.
→ Sepolia is auto-sponsored. Mainnet requires creating a Slot paymaster, funding it with credits, and adding matching policies. See `slot-paymaster` skill.

**"AASA validation failing"**
→ Team ID must be exactly 10 uppercase alphanumeric chars. Bundle ID must be reverse DNS. Pattern: `ABCDE12345.com.example.app`.
Expand Down
134 changes: 134 additions & 0 deletions .agents/skills/slot-deploy/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
---
name: slot-deploy
description: Create, update, and manage Slot deployments for Katana and Torii services.
---

# Slot Deploy

Manage the lifecycle of Slot deployments — Katana (execution layer) and Torii (indexer).

## Prerequisites

Install the Slot CLI:

```sh
curl -L https://slot.cartridge.sh | bash
```

Authenticate:

```sh
slot auth login
```

For CI/scripts, generate a token and set the `SLOT_AUTH` env var:

```sh
slot auth token
```

## Creating Deployments

### Katana

```sh
slot deployments create <Project Name> katana
```

### Torii

Torii requires a TOML configuration file:

```sh
slot deployments create <Project Name> torii --config <path/to/torii.toml>
```

Minimal `torii.toml`:

```toml
rpc = "https://api.cartridge.gg/x/starknet/mainnet"
world_address = "0x3fa481f41522b90b3684ecfab7650c259a76387fab9c380b7a959e3d4ac69f"
```

Extended config options:

```toml
[indexing]
allowed_origins = ["*"]
index_pending = true
index_transactions = false
polling_interval = 1000
contracts = [
"erc20:<contract-address>",
"erc721:<contract-address>"
]

[events]
raw = true
historical = ["namespace-EventName"]
```

When you create a service with a new project name, a team is automatically created.

## Updating Deployments

```sh
slot deployments update <Project Name> torii --version v1.0.0
slot deployments update <Project Name> torii --config <path/to/torii.toml>
slot deployments update <Project Name> torii --replicas 3
```

## Deleting Deployments

```sh
slot deployments delete <Project Name> <katana | torii>
```

## Inspecting Deployments

```sh
# List all deployments
slot deployments list

# View configuration
slot deployments describe <Project Name> <katana | torii>

# Read logs
slot deployments logs <Project Name> <katana | torii>

# View predeployed Katana accounts
slot deployments accounts <Project Name> katana
```

## Transferring Services

Transfer a service to another team:

```sh
slot d transfer <Project Name> <katana | torii> <To Team Name>
```

## Observability

Enable Prometheus and Grafana monitoring ($10/month per deployment).

### On creation

```sh
slot deployments create <Project Name> --observability katana
slot deployments create <Project Name> --observability torii --config <path/to/torii.toml>
```

### On existing deployment

```sh
slot deployments update <Project Name> --observability katana
slot deployments update <Project Name> --observability torii
```

### Accessing dashboards

- Prometheus: `https://<deployment-url>/prometheus`
- Grafana: `https://<deployment-url>/grafana`

Both are protected by username/password credentials provided when observability is enabled.
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
---
name: cartridge-paymaster
description: Set up and manage Cartridge paymasters to sponsor transaction fees for gasless user experiences.
name: slot-paymaster
description: Set up and manage Slot paymasters to sponsor transaction fees for gasless user experiences.
---

# Cartridge Paymaster
# Slot Paymaster

Manage paymasters that sponsor transaction fees, enabling gasless experiences for users.
Zero integration required — when enabled, eligible transactions are automatically sponsored.

## Availability

- **Testnet**: Automatically enabled, no setup required
- **Mainnet**: Self-served via the CLI
- **Mainnet**: Self-served via Slot CLI

## Creating a Paymaster

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
name: cartridge-rpc
name: slot-rpc
description: Configure Cartridge RPC endpoints with API token authentication and CORS whitelisting.
---

# Cartridge RPC
# Slot RPC

Cartridge provides dedicated RPC endpoints for Starknet with authentication and CORS support.

Expand Down
79 changes: 79 additions & 0 deletions .agents/skills/slot-scale/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
---
name: slot-scale
description: Scale Slot deployments with paid tiers, replicas, and multi-region support.
---

# Slot Scale

Scale deployments from development to production with paid tiers, replicas, and multi-region.

## Instance Tiers

| Tier | Specs | Storage | Cost |
|-----------|----------------------|---------|------------|
| Basic | Limited CPU & memory | 1GB | $10/month |
| Pro | 2 vCPU, 4GB RAM | auto | $50/month |
| Epic | 4 vCPU, 8GB RAM | auto | $100/month |
| Legendary | 8 vCPU, 16GB RAM | auto | $200/month |

First 3 Basic tier deployments are free.
Storage on premium tiers: $0.20/GB/month (auto-scaling).

### Basic tier behavior

- Scaled down automatically after a few hours of inactivity
- Revived on first request
- Deleted if unused for 30+ days

### Premium tiers (Pro+)

- Never scaled down or deleted while the team has credits
- Auto storage scaling (never runs out of disk space)

## Replicas

Torii supports multiple replicas on premium tiers:

```sh
slot d create --tier epic my-project torii --replicas 3
```

Billed per replica (3 replicas = 3× tier cost).
Katana does not support replicas.

## Regions

| Region |
|---------------|
| `us-east` |
| `europe-west` |

Deploy in multiple regions with `--regions`:

```sh
# Torii: multi-region with replicas
slot d create --tier pro my-project torii --regions us-east,europe-west

# Katana: single region only
slot d create --tier pro my-project katana --regions europe-west
```

Billing: tier cost × regions × replicas.

## Creating Paid Tier Deployments

Ensure the team has credits (see `slot-teams` skill), then:

```sh
slot d create --tier epic --team my-team my-instance torii
```

## Upgrading an Existing Deployment

Tiers can only be upgraded, not downgraded:

```sh
slot d update --tier epic my-instance torii
```

The team that owns the deployment must have sufficient credits.
93 changes: 93 additions & 0 deletions .agents/skills/slot-teams/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
---
name: slot-teams
description: Manage Slot teams, billing, credits, and collaborators.
---

# Slot Teams

Teams are the billing entity in Slot.
They own credits used to pay for deployments, paymasters, RPC requests, and other services.

## Credit System

- Prepaid credits, deducted automatically
- 1 CREDIT = $0.01 USD
- Daily billing cycle (minimum 1-day charge)
- Fund via credit card or cryptocurrency

## Creating a Team

```sh
slot teams <team-name> create --email <email> [--address "address"] [--tax-id "id"]
```

A team is also auto-created when you create a deployment with a new project name.

## Funding

```sh
slot auth fund
```

Opens a browser interface to select a team and add credits.
Direct URL: `https://x.cartridge.gg/slot/fund`

## Team Info

```sh
# View balance and details
slot teams <team-name> info

# View billing history
slot teams <team-name> invoices

# Update billing info
slot teams <team-name> update [--email <email>] [--address "address"] [--tax-id "id"]
```

## Collaborators

```sh
# List members
slot teams <team-name> list

# Add a member (by controller username)
slot teams <team-name> add <username>

# Remove a member
slot teams <team-name> remove <username>
```

## What Uses Credits

| Service | Cost |
|----------------------|-----------------------------------------------|
| Basic deployment | $10/month (first 3 free) |
| Pro deployment | $50/month |
| Epic deployment | $100/month |
| Legendary deployment | $200/month |
| Storage (premium) | $0.20/GB/month |
| Paymaster budget | Funded from team credits |
| RPC requests | Free 1M/month, then $5/1M |
| Multi-region | Tier cost × regions × replicas |
| Observability | $10/month per deployment |

## Troubleshooting

### Insufficient credits

```sh
# Check balance
slot teams <team-name> info

# Fund the team
slot auth fund

# Retry your operation
```

### Service not starting

- Verify team has credits: `slot teams <team-name> info`
- Ensure service was created with `--team <team-name>`
- Check that you're a member of the team
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
name: cartridge-vrng
name: slot-vrng
description: Integrate Cartridge's verifiable random number generator (vRNG) into onchain games.
---

# Cartridge vRNG
# Slot vRNG

Cartridge's Verifiable Random Number Generator provides cheap, atomic, verifiable randomness for onchain games.
Randomness is generated and verified within a single transaction.
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!-- SKILLS_INDEX_START -->
[Agent Skills Index]|root: ./agents|IMPORTANT: Prefer retrieval-led reasoning over pre-training for any tasks covered by skills.|skills|cartridge-paymaster:{cartridge-paymaster.md},cartridge-rpc:{cartridge-rpc.md},cartridge-vrng:{cartridge-vrng.md},controller-presets:{controller-presets.md},create-a-plan:{create-a-plan.md},create-pr:{create-pr.md}
[Agent Skills Index]|root: ./agents|IMPORTANT: Prefer retrieval-led reasoning over pre-training for any tasks covered by skills.|skills|controller-presets:{controller-presets.md},create-a-plan:{create-a-plan.md},create-pr:{create-pr.md},slot-deploy:{slot-deploy.md},slot-paymaster:{slot-paymaster.md},slot-rpc:{slot-rpc.md},slot-scale:{slot-scale.md},slot-teams:{slot-teams.md},slot-vrng:{slot-vrng.md}
<!-- SKILLS_INDEX_END -->
# Repository Guidelines

Expand Down
Loading
Loading