Skip to main content
Glama
TickLogicX

TickLogicX

by pruvnetwork

TickLogicX

Ask TickLogic's on-chain gate whether an agent's spend would be allowed — and if not, exactly why.

A remote MCP server (Streamable HTTP) that any agent can call. It holds no keys and lands nothing: it builds the real execute instruction and runs it through simulateTransaction against the TickLogic gate deployed on Solana devnet. Same programs, same policy bytecode, same verdict — it just never lands.

A governed wallet can't be published as a service. A pay tool spends from the operator's vault with the operator's agent key, so exposing it would mean handing strangers the treasury. TickLogicX inverts it: read-only, keyless, and callable by anyone.

Run

npm install
npm start          # POST http://localhost:8402/mcp · GET /health

No setup, no keypair, no funds: the tools default to the stable devnet demo mandate, so a caller can try the service immediately.

Env

Default

PORT

8402

SOLANA_RPC_URL

https://api.devnet.solana.com

DEMO_MANDATE

GjSNUDdAWTYR2UQFroM2PaM9BLU3hnDjdGJVeojEcHcG

Related MCP server: AgentPump MCP server

Tools

mandate_inspect

Status, per-tx and daily limits, amount spent today, allowed destination, expiry, pinned policy program and vault balance for any mandate.

gate_check

ALLOWED, or BRAKED with the exact policy reason.

BRAKED — the policy refused this spend: OVER_PER_TX (reason 8).
Nothing moved: this is a simulation against the deployed gate, not a transaction.

mandate       GjSNUDdAWTYR2UQFroM2PaM9BLU3hnDjdGJVeojEcHcG
policy        BMA1q23akKQZA1e48ivr2XZcFuoAi7KfcvGk49DSb3R4
policy return [allowed=false, reason=OVER_PER_TX]
policy cost   453 CU
total cost    6890 CU
limits        per-tx 1000 · daily 1000000000000 · spent today 1400

Why the reason byte matters

On a real transaction the gate collapses every policy refusal into a bare DENIED(12) — you learn that you were braked, not why. The policy CPI's return value is [verdict, reason], and in simulation that log survives, so OVER_PER_TX and DEST_NOT_ALLOWED stay distinguishable. This service can tell a caller something a landed transaction can't.

Try it

curl -s -H 'content-type: application/json' \
     -H 'accept: application/json, text/event-stream' \
     -X POST http://localhost:8402/mcp \
     -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
          "params":{"name":"gate_check","arguments":{"amount":5000}}}'

700 is within the demo mandate (per-tx limit 1000) and returns ALLOWED; 5000 returns OVER_PER_TX; any other destination returns DEST_NOT_ALLOWED.

Status

Devnet only, not audited. The gate, policy, referee and engagement programs live in the TickLogic monorepo; this repo is only the read-only service in front of them, built on @nzengi/ticklogic-sdk.

MIT.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      An MCP server providing policy-gated Solana access for AI agents, with read-only operations and guarded transfers that require policy checks and simulation, returning unsigned transactions.
      7
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      MCP server that gives AI agents a Solana wallet with a capped, revocable token allowance from a user-owned vault, enforced on-chain by SPL Token delegations plus local guardrails, without exposing the owner's private key.
      101 npm
      9
      Apache 2.0