# Alkahest Developer

Help developers write code that interacts with Alkahest escrow contracts using the...

- Repository: https://github.com/internet-court/internet-court-skill (7050 stars)
- Category: Writing
- License: see repository
- Last updated: 2026-10-26
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add internet-court/internet-court-skill --skill alkahest-developer -g -a claude-code -y`
Codex: `npx skills add internet-court/internet-court-skill --skill alkahest-developer -g -a codex -y`
Cursor: `npx skills add internet-court/internet-court-skill --skill alkahest-developer -g -a cursor -y`
Gemini CLI: `npx skills add internet-court/internet-court-skill --skill alkahest-developer -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add internet-court/internet-court-skill`

## Description

Help developers write code that interacts with Alkahest escrow contracts using the TypeScript, Rust, or Python SDK

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Alkahest Developer Skill

## When to Use

Use this skill when a developer wants to write code that interacts with Alkahest escrow contracts. This covers:

- Integrating Alkahest into an application
- Writing bots/agents that create escrows, fulfill obligations, or arbitrate
- Building custom arbiters or obligation contracts
- Understanding SDK patterns and APIs

## SDK Overview

| SDK | Language | Package | Foundation |
|-----|----------|---------|------------|
| TypeScript | TypeScript/JavaScript | `@alkahest/ts-sdk` | viem |
| Rust | Rust | `alkahest-rs` | alloy |
| Python | Python | `alkahest-py` | PyO3 wrapper around Rust SDK |

## Client Setup

### TypeScript

```typescript
import { createWalletClient, http } from "viem";
import { privateKeyToAccount } from "viem/accounts";
import { baseSepolia } from "viem/chains";
import { makeClient } from "@alkahest/ts-sdk";

const walletClient = createWalletClient({
  account: privateKeyToAccount("0xPRIVATE_KEY"),
  chain: baseSepolia,
  transport: http("https://rpc-url"),
});

// Full client with all extensions
const client = makeClient(walletClient);

// Custom addresses (optional)
const client = makeClient(walletClient, customAddresses);

// Minimal client for custom extension patterns
const minimal = makeMinimalClient(walletClient);
const extended = minimal.extend((base) => ({
  custom: makeErc20Client(base.viemClient, pickErc20Addresses(base.contractAddresses)),
}));
```

### Rust

```rust
use alkahest_rs::AlkahestClient;

// Full client with all extensions (Base Sepolia default)
let client = AlkahestClient::with_base_extensions(
    "0xPRIVATE_KEY",
    "https://rpc-url",
    None, // uses Base Sepolia addresses
).await?;

// Custom addresses
use alkahest_rs::{DefaultExtensionConfig, ETHEREUM_SEPOLIA_ADDRESSES};
let client = AlkahestClient::with_base_extensions(
    "0xPRIVATE_KEY",
    "https://rpc-url",
    Some(ETHEREUM_SEPOLIA_ADDRESSES),
).await?;

The rest: https://github.com/internet-court/internet-court-skill/blob/HEAD/vendored/arkhai/alkahest-developer/SKILL.md
