PT Dinamika Cipta Persada

Onchain Identity ForCharacters

Give digital characters memory, evolving relationships, and verifiable onchain identities.

SolanaNPCOpenAIGodotUnreal EngineGitHubUnity
* Durée indicative du traitement

Characters, onchain.

NPC Memory + Onchain Identity

It’s not magic.
It’s memory.

Give every digital character a persistent inner life, a verifiable identity, and a story that can continue wherever they go.

Memory

Every encounter becomes part of the character.

Identity

A Solana identity that travels with them.

Relationships

They remember who helped, hurt, and changed them.

Achievements

Progress becomes part of their story, not a reset.

Ownership

Inventory and important life events persist.

Beyond the session

A life that can continue across games.

Core capabilities

Built for characters that keep living.

DCP gives every character the context, continuity, and ownership needed to evolve beyond a single game session.

01

Persistent memory

NPCs retain conversations, choices, and meaningful events across every session.

02

Onchain identity

Every character has a verifiable Solana identity that persists across experiences.

03

Living relationships

Trust, affinity, rivalry, and shared history evolve through every interaction.

04

Owned progress

Achievements, inventory, and milestones remain lasting parts of character history.

05

Portable history

Carry meaningful character context, memories, and progress across connected worlds.

06

Player agency

Every player decision leaves a lasting mark on characters and their evolving story.

How DCP works

One character.
Every session.

Explore how a single game event becomes persistent character context.

observe.ts
const event = await dcp.events.capture({
  characterId,
  type: "quest.completed",
  importance: 0.94
});

await dcp.memory.commit({
  eventId: event.id,
  scope: "episodic"
});

// Event captured and indexed
DCP character moving between connected game worlds

Character ID

DCP-7F3A...91C2

Verified

Memory events

1,284

Relationships

42

Achievements

18

Status

Active

DCP · Solana

Identity
verified

DCP-7F3A...91C2

Character journey

Follow every state change.

Inspect how one encounter becomes durable character state, from runtime event to verifiable checkpoint.

Lifecycle1 / 4
Live state trace
Slot 294,118,204

character.session.started

Meet

Resolve the NPC identity and hydrate its latest canonical state before dialogue begins.

Meet operationTypeScript
const npc = await dcp.identity.resolve({ characterId });

await dcp.memory.hydrate({
  characterId: npc.id,
  session: "sess_1042"
});

State mutations

Identity resolved
Memory graph hydrated
Session counter +1
Processing84 ms

Developer integration

Ship living NPCs.

Capture important events with one call. DCP handles memory retrieval, identity resolution, and synchronization.

  1. 01 — Create a character identity
  2. 02 — Send meaningful events
  3. 03 — Retrieve context anywhere
character.ts
import { DCPClient } from "@dcp/sdk";

const dcp = new DCPClient({
  network: "solana",
  apiKey: process.env.DCP_API_KEY,
});

const character = await dcp.characters.create({
  name: "Mira",
  traits: ["curious", "loyal"],
  owner: player.wallet,
});

await dcp.sync(character, { context });

Pricing

Start small. Build a world.

Flexible infrastructure for experiments, shipped games, and connected character ecosystems. Public access is coming soon.

Explorer

$0

to prototype

Test persistent characters in a small world before moving into production.

  • 1,000 memory events
  • 100 character identities
  • Community support

Studio

Most popular

$99

per month

Ship live games with higher limits, production tooling, and team access.

  • 100K memory events
  • 10K character identities
  • Team dashboard

Protocol

Custom

for scale

Run connected worlds with dedicated infrastructure and custom state schemas.

  • Custom event volume
  • Unlimited identities
  • Dedicated support

FAQ

Questions, answered.

The essentials for building characters with persistent memory and verifiable onchain identity.

Explore the docs ↗

DCP stores structured memory, personality traits, relationship state, achievements, inventory ownership, and significant life events. Developers decide which events matter and which fields become part of the character’s portable state.

No. High-volume interaction data can remain offchain while compact identity records, ownership proofs, and state checkpoints are anchored to Solana. This keeps character recall responsive without turning every dialogue line into a transaction.

Compatible games can resolve the same character identity and read its permitted state through the DCP schema. Each game controls how imported memories, traits, items, and achievements affect its own world rules.

The identity layer supports wallet-based ownership and verifiable provenance. Developers define access policies, while players can prove control of a character and its associated portable records.

Use the SDK to hydrate relevant memories before inference, then submit meaningful outcomes after the interaction. DCP works with model providers and custom inference stacks because it manages character continuity rather than model execution.

The latest committed identity checkpoint remains independently verifiable. Another compatible client can resolve the character, validate its provenance, and continue from the state made available by its access policy.

Games choose what becomes public, permissioned, encrypted, or local. Sensitive dialogue and player context can stay offchain, while the protocol publishes only the hashes, permissions, and proofs needed to verify that an approved state is authentic.

Every mutation carries a version, source, timestamp, and identity signature. DCP can reject stale writes, preserve parallel world-specific branches, or apply developer-defined merge rules before producing the character’s next canonical checkpoint.

Yes. A game can map its current player, NPC, inventory, and quest records into the DCP character schema incrementally. Teams can begin with identity resolution and a few high-value memory events without replacing their complete backend.

Runtime events are batched and summarized before a checkpoint is submitted. Developers can choose checkpoint frequency by event importance, session boundary, or value threshold, keeping routine memory operations offchain and predictable.

The architecture separates low-latency memory retrieval from durable identity settlement, allowing each layer to scale independently. Production teams can configure caching, event batching, access policies, observability, and fallback behavior around their own latency targets.

Start building continuity

Make characters matter.