Early access

A public, timestamped activity log and autonomy badge for onchain AI agents.

The autonomy level comes from observable signing patterns and anchored logs, not a self-declared label. The page also states plainly what the log cannot prove, such as actions taken off-log.

Live activity log: Marlin Rebalancer
Time (UTC)ActionAmountSignersHuman approvedAnchor
14:02:11Swap USDC to SOL on Jupiter42.5 USDCAgent keyNoBatch 19
13:48:40Add liquidity, SOL/USDC pool1.2 SOL + 180 USDCAgent key + co-signerYesBatch 19
13:15:03Swap SOL to USDC on Jupiter0.8 SOLAgent keyNoBatch 19
12:31:57Withdraw to treasury3.0 SOLAgent key + co-signerYesBatch 18
11:58:22Rebalance to 60/40 target0.35 SOLAgent keyNoBatch 18
11:02:09Transfer fee to ops wallet12 USDCAgent keyNoBatch 18

Autonomy badge

Level 2Current level
Last 30 daysWindow
9 of 61Txs with co-signer
3vRc...9uLxCo-signer wallet

Log entries per day, last 14 days

Entries recorded by the SDK for all six agents, counted by d

TypeScript SDK that wraps agent actions and emits signed, timestamped log entriesBatched anchoring of log hashes in Solana memo transactions so entries cannot be quietly edited laterPublic agent page listing the actions, the wallets and keys controlled, and a human-approved flag per stepEmbeddable autonomy badge (levels 0 to 3) computed from whether a human co-signer appears in the transactionsRead-only verifier: paste an agent wallet and see which of its transactions match the log

Sundial, feature by feature.

Built for agent builders who want credibility, token communities checking autonomy claims, researchers and funds doing diligence on agent projects.

What this log cannot prove

  • Actions taken off-logTransactions signed by the agent key witStated on page
  • Intent behind an actionEntries record what was done, not why thStated on page
  • Who the co-signer isWe show that a second key signed, not thStated on page

TypeScript SDK that wraps agent actions and emits signed, timestamped log entries

Planned

Recent anchor batches

  • Batch 19: 14 entriesMemo tx 5Kq2...9vTn, slot 291,440,812Anchored
  • Batch 18: 11 entriesMemo tx 2hXw...Rc4e, slot 291,438,090Anchored
  • Batch 20: 3 entriesWaiting for the 15 minute window to closPending

Batched anchoring of log hashes in Solana memo transactions so entries cannot be quietly edited later

Planned

Public agent page listing the actions, the wallets and keys controlled, and a human-approved flag per step

Planned

Autonomy badge

Level 2Current level
Last 30 daysWindow
9 of 61Txs with co-signer
3vRc...9uLxCo-signer wallet

Embeddable autonomy badge (levels 0 to 3) computed from whether a human co-signer appears in the transactions

Planned

Read-only verifier: paste an agent wallet and see which of its transactions match the log

Planned
01

TypeScript SDK that wraps agent actions and emits signed, timestamped log entries.

Call your existing agent function through log.run. Sundial signs a timestamped entry with the agent's logging key and queues it for the next anchor batch.

Planned

Wrap a Jupiter swap

typescript
import { Sundial } from "@sundial/sdk";

const log = new Sundial({
  agent: "9mWk3TqZ7bXvR2dNfJ5yHcA8sLePu4GxQ6tKwB1nDzYh",
  signingKey: process.env.SUNDIAL_KEY!,
  coSigner: "3vRcY8nKd2JpWq5XbF7mTzA4hGsE9uLx6NtQaH1yZeDk",
});

const sig = await log.run(
  { action: "swap", from: "USDC", to: "SOL", amount: 42.5 },
  async () => executeSwap(route)
);
// entry is signed, timestamped and queued for batch anchoring
02

Batched anchoring of log hashes in Solana memo transactions so entries cannot be quietly edited later.

Every 15 minutes the SDK hashes the pending entries into a Merkle root and writes it in a Solana memo transaction. Editing an old entry changes its hash and breaks the match.

Planned

Anchor batches for Marlin Rebalancer

BatchEntriesMerkle rootMemo txStatus
1914a41f...c9e25Kq2...9vTnAnchored
18117be0...31d82hXw...Rc4eAnchored
179d093...5ab74PmV...kT8sAnchored
161218cc...e6403JdN...Wq2yAnchored
203pendingnone yetPending
03

Public agent page listing the actions, the wallets and keys controlled, and a human-approved flag per step.

Anyone can open the agent page to see each action, the wallets and keys the agent controls, and whether a human approved that step.

Planned

Keys and wallets listed on the Marlin page

  • Agent trading wallet9mWk3TqZ7bXvR2dNfJ5yHcA8sLePu4GxQ6tKwB1nControlled by ag
  • Logging key6TpJ2xNqW8cYvB4rKd7FmZaH3sGeL9uQ5hXtRy1nSigns entries
  • Co-signer3vRcY8nKd2JpWq5XbF7mTzA4hGsE9uLx6NtQaH1yHuman key, decla
  • Treasury wallet2dQeX7vRn4KbT9yWc5JmAh8sFpZ3GuL6xNtYq1HrReceive only
04

Embeddable autonomy badge (levels 0 to 3) computed from whether a human co-signer appears in the transactions.

The badge is computed from the transactions themselves. If a human co-signer appears on the agent's transactions, the level drops. Nobody can pick their own level.

Planned

How the level is computed

Level 0A human co-signer is on every transaction the agent makes.
Level 1A co-signer appears on most transactions, including every transfer out.
Level 2A co-signer appears on some transactions, such as large withdrawals.
Level 3No co-signer appears on any transaction in the 30 day window.
05

Read-only verifier: paste an agent wallet and see which of its transactions match the log.

The verifier fetches the wallet's transactions from Solana and compares them with the anchored log. It lists matches, unlogged transactions and edited entries.

Planned

Verify an agent wallet

Results appear here.

The autonomy level comes from observable signing patterns and anchored logs, not a self-declared label. The page also states plainly what the log cannot prove, such as actions taken off-log.

3 steps from start to first result.

Wrap your agent actionsInstall the SDK, set a logging key and pass each action through log.run. Your ag
Entries are anchored on SolanaPending entries are hashed into a Merkle root every 15 minutes and written in a
Anyone can check the resultThe public page and verifier compare the log with real transactions, and the bad

Open by default.

Every screen reads from the same model. Live parts read public onchain data; nothing ever asks your wallet to sign.

Read the docs
sundial.json
{
  "product": "Sundial",
  "network": "solana",
  "features": [
    {
      "name": "TypeScript SDK that wraps agent actions and emit",
      "status": "planned"
    },
    {
      "name": "Batched anchoring of log hashes in Solana memo t",
      "status": "planned"
    },
    {
      "name": "Public agent page listing the actions, the walle",
      "status": "planned"
    },
    {
      "name": "Embeddable autonomy badge (levels 0 to 3) comput",
      "status": "planned"
    }
  ]
}

What works today.

Live features work today. Planned ones are next on the roadmap, in this order.

TypeScript SDK that wraps agent actions and emits signed, timestamped log entriesPlanned
Batched anchoring of log hashes in Solana memo transactions so entries cannot be quietly edited laterPlanned
Public agent page listing the actions, the wallets and keys controlled, and a human-approved flag per stepPlanned
Embeddable autonomy badge (levels 0 to 3) computed from whether a human co-signer appears in the transactionsPlanned
Read-only verifier: paste an agent wallet and see which of its transactions match the logPlanned

Questions.

Short answers. The docs have the rest.

What is Sundial?

A public, timestamped activity log and autonomy badge for onchain AI agents. The autonomy level comes from observable signing patterns and anchored logs, not a self-declared label. The page also states plainly what the log cannot prove, such as actions taken off-log.

What works today?

Sundial is in development. Every feature is on the status list with what ships next, and the app opens in a sample workspace so you can see how it will work.

Do I need a wallet?

No. You can explore without one. Connecting a Solana wallet only shares your public address so Sundial can read your balances; it never asks you to sign a transaction.

Who is it for?

Agent builders who want credibility, token communities checking autonomy claims, researchers and funds doing diligence on agent projects.

TypeScript SDK that wraps agent actions and emits signed, timestamped log entries.

A public, timestamped activity log and autonomy badge for onchain AI agents.