Skip to content
Back to skills

Voltaire Effect Layers

ASecurity

Layer composition patterns for dependency injection. Use when composing providers, signers, and crypto services.

  • 9 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 10, 2026
blockchaintypescript

Security analysis

A100/100

Scanned September 10, 2026

npx -y skills add cyotee/indexedex --skill voltaire-effect-layers --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Voltaire Effect Layers?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Voltaire Effect Layers
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/cyotee-voltaire-effect-layers/badge)](https://www.skillsdirectory.com/skills/cyotee-voltaire-effect-layers)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: voltaire-effect-layers
description: Layer composition patterns for dependency injection. Use when composing providers, signers, and crypto services.
---

# Layer Composition

Three-layer architecture: Schema, Effect, Services.

## Layer Types

| Layer | Purpose |
|-------|---------|
| Schema | Validation, type coercion |
| Effect | Composable operations |
| Services | Stateful resources |

## Basic Composition

```typescript
import { Layer } from 'effect'
import { Provider, HttpTransport, Signer } from 'voltaire-effect'

// Combine layers
const AppLayer = Layer.mergeAll(
  Provider,
  Signer
).pipe(
  Layer.provide(HttpTransport('https://eth.llamarpc.com'))
)

// Provide once at edge
program.pipe(Effect.provide(AppLayer))
```

## Common Patterns

### Merge Independent Layers

```typescript
Layer.mergeAll(Provider, Signer, CryptoLive)
```

### A Depends on B

```typescript
// Provider depends on Transport
const ProviderLayer = Provider.pipe(
  Layer.provide(HttpTransport(url))
)
```

### Add Services While Keeping Existing

```typescript
Layer.provideMerge(AdditionalService)
```

## Full Setup Example

```typescript
import { Effect, Layer } from 'effect'
import { Signer, Provider, HttpTransport } from 'voltaire-effect'
import { MnemonicAccount } from 'voltaire-effect/native'
import { Secp256k1Live, KeccakLive } from 'voltaire-effect/crypto'

const CryptoLayer = Layer.mergeAll(Secp256k1Live, KeccakLive)
const TransportLayer = HttpTransport('https://eth.llamarpc.com')
const ProviderLayer = Provider.pipe(Layer.provide(TransportLayer))

const WalletLayer = Layer.mergeAll(
  Signer.Live,
  CryptoLayer,
  ProviderLayer
).pipe(
  Layer.provideMerge(MnemonicAccount(mnemonic).pipe(Layer.provide(CryptoLayer)))
)

// Single provide
await Effect.runPromise(program.pipe(Effect.provide(WalletLayer)))
```

## Anti-Pattern

```typescript
// ❌ Don't chain provides
program.pipe(
  Effect.provide(Signer.Live),
  Effect.provide(Provider),
  Effect.provide(HttpTransport(url))
)

// ✅ Compose first, then provide
const AppLayer = Layer.mergeAll(Signer.Live, Provider).pipe(
  Layer.provide(HttpTransport(url))
)
program.pipe(Effect.provide(AppLayer))
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…