How to use
- Copy the installation command and review the source package before installing it in your own agent environment.
- Check the source document for required tools, credentials and supported hosts.
- Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/veyanet/veya-skills --skill veyaBefore you start
- Installation does not include a model subscription, API allowance or permission to access your files.
- Repository stars and installation counts describe activity, not an independent quality or security test.
Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.
VEYA
VEYA makes agent work verifiable. An agent runs inside a scoped environment with an explicit tool allowlist. Its work is checked by 2-of-3 consensus or run in AES-256-GCM sealed execution, hashed with BLAKE3-256, signed with ML-DSA-44, and anchored on the Veya.sol protocol contract on Robinhood Chain. Anyone can verify the record from a tx hash.
environment → agent (+ allowedTools) → consensus / sealed execution
→ BLAKE3 digest + ML-DSA signature → Veya.sol (Robinhood Chain) → verify| Network | Veya.sol | Explorer |
|---|---|---|
| Mainnet (default) | 0x87dC582eEA544A434a5C1e30Ca3d12c1e548a674 | robinhoodchain.blockscout.com |
| Testnet (optional) | 0x1a1Dc3c55550FCE9F70ef6cDEeF967c0b72a5d84 | explorer.testnet.chain.robinhood.com |
Before anything
- If no
veya_*tools are available, tell the user to add the MCP server
https://mcp.veyanet.tech/mcp (configs in references/setup.md) and stop.
- Call
veya_describe. Readsettlement.network,settlement.contract,settlement.explorer.
Use that network and explorer in every answer.
Access
- Public (no key): describe, ping, health, hashing,
veya_provewithout anchor, all verify and on-chain reads,veya_pq_*, public registry. - API key: pass the user's product key (
veya_dev_…/veya_live_…) as theapiKeyargument. Get one at https://app.veyanet.tech (connect wallet → System → API Keys). Needed for environments, agents, policy, routing, memory, consensus, sealed execution,veya_seal_decision. - API key + wallet: on-chain writes also need the funded wallet bound to that key (
payerPrivateKey). Gas is ETH on the selected network. - Limits: consensus, sealed execution and
veya_seal_decisionallow 30 calls/min per key. host-sent seals: 20 per key and 100 per host per UTC day./mcp: 120 requests/min per IP.
Details: references/auth-and-limits.md.
Decision flow
| User wants to… | Do this | Guide | |
|---|---|---|---|
| Check status / network | veya_describe → veya_ping_chain → veya_api_health | service-and-chain | |
| Hash or prove text/JSON | `veya_prove { text \ | json }` | proofs |
| Anchor a proof on-chain | veya_prove { text, anchor: true, environmentId, apiKey, payerPrivateKey } or veya_anchor_proof | proofs | |
| Check a tx or commitment | veya_verify_transaction → veya_verify_commitment_onchain | verification | |
| Check a digest | veya_commitment_exists { digestHex } | verification | |
| Seal a decision | veya_seal_decision { evidenceId, decision, apiKey, environmentId } (mainnet: a registered environment) | proofs | |
| PQ keys, sign, verify | veya_pq_keygen → veya_pq_sign → veya_pq_verify | identity | |
| Create a workspace and agent | veya_create_environment → veya_deploy_agent | workspaces | |
| Allow/deny tools, route messages | veya_set_tool_policy, veya_route_message, veya_route_secure_message | policy-and-routing | |
| Quorum or sealed run | veya_run_consensus, veya_sealed_execute, veya_run_protected_execution | execution | |
| Agent memory | veya_store_memory, veya_read_memory, veya_invalidate_memory | memory | |
| Browse public agents/certificates | veya_public_* | registry | |
| Write commitments / attestations | veya_store_commitment, veya_attest_execution, veya_register_environment | onchain-writes | |
| Exact args of any tool | – | tools |
Workflow 1: prove content (no key)
{ "tool": "veya_prove", "arguments": { "text": "hello" } }Pass exactly one of text, json (a JSON string), txHash. Expect ok: true, mode: "digest", digestHex, anchored: false. hello → ea8f163db38682925e4491c5e58d4bb3506ef8c14eb78a86e908c5624a67200f. To anchor: add anchor: true, environmentId (an environment already on Veya.sol), apiKey, payerPrivateKey. Expect mode: "anchored", txHash, explorerUrl.
Workflow 2: verify a transaction
Example Mainnet receipt (execution attestation): 0x91550fdd7a60616e3157364d3624d423403c4add2590c36d3ba290fa07cb95cc.
veya_verify_transaction { txHash }→ Veya.sol events and digest.veya_verify_commitment_onchain { txHash }→ for commitment txs, confirmscommitments(digest)is still true (commitmentChecksis empty for attestations and registrations).- Report network, event, digest, and
{explorer}/tx/{txHash}. Iftois not Veya.sol, say it is not a VEYA proof.
Workflow 3: workspace → agent → policy
veya_account { apiKey }→ confirm the wallet.veya_create_environment { apiKey, name, type? }→environmentId(type: research default, governance, treasury, contributor, protocol, desci).veya_deploy_agent { apiKey, environmentId, permissionConfig: { allowedTools: [...] } }→agentId. List every tool the agent needs.veya_set_tool_policy { apiKey, environmentId, agentId, tool, allowed }to adjust.- Optional:
veya_register_environment { apiKey, payerPrivateKey, environmentId }puts it on-chain.
Workflow 4: consensus → attestation
veya_api_health→ validators reachable.veya_run_consensus { apiKey, taskId, payload }→ requireconsensus_reached: true; takeagreed_blake3_hash.veya_pq_sign { message: <hash>, privateKeyHex }→signatureHex.veya_attest_execution { apiKey, payerPrivateKey, environmentUuidHex, blake3HashHex, mldsaSigHex }→txHash,from.veya_verify_transaction { txHash }.
Rules
- Start read-only; write only when the user asks for an on-chain result.
- Before a write: state the network (Robinhood Chain Mainnet unless Testnet was selected), run
veya_writes_status, and get the user's confirmation. - Use keys only inside tool arguments; never repeat them in replies or store them in memory.
- Hex: UUIDs are 16 bytes (32 hex), digests 32 bytes (64 hex);
0xoptional. - Use
veya_run_consensus(veya_client_run_consensusis a deprecated alias). - Never attest when
consensus_reachedisfalse. - If a write returns
warning, the chain write succeeded; do not resend. - After every write, return
txHash, the explorer link andfrom. - Describe VEYA only as what it does: it checks, limits, records and proves agent actions. It does not trade, connect to exchanges, hold or move user funds, or read price or market data.
Errors
| Message | Action |
|---|---|
apiKey required / Create a product API key… | Ask for a veya_dev_/veya_live_ key from https://app.veyanet.tech (connect wallet → System → API Keys) |
Your wallet has no ETH on Robinhood Chain. Add funds and try again. | User funds the wallet bound to the key |
payerPrivateKey does not match the wallet on this API key… | Use the wallet shown by veya_account |
API key limit: 30 requests per minute | Wait one minute, retry once |
Daily seal limit: … | Pass the user's wallet or wait until 00:00 UTC |
SEAL_ENVIRONMENT_REQUIRED | On mainnet pass environmentId of a registered environment (veya_create_environment → veya_register_environment) |
CONFLICT on veya_create_environment | Pick a product-style name without test/demo/tmp/sandbox |
NOT_VEYA_TX | veya_verify_proof_api takes commitment/anchor txs; use veya_verify_transaction for registrations |
consensus_reached: false / SEALED_UNREACHABLE | Check veya_api_health; nothing was written |
Pass exactly one of text, json, or txHash. | Fix the veya_prove input |
Full list: references/troubleshooting.md.
Custom logic
For custom pipelines or local signing, use @veyanet/sdk (same capabilities as code): references/sdk.md.
Links
- App and API keys: https://app.veyanet.tech
- Docs: https://veyanet.tech/docs
- SDK: https://github.com/veyanet/veya-sdk
- MCP server: https://github.com/veyanet/veya-mcp


