Skip to main content
Glama
pruvnetwork

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: @getplexa/mcp

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.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pruvnetwork/ticklogicx'

If you have feedback or need assistance with the MCP directory API, please join our Discord server