---
name: internet-court-jupiter-vrfd
description: "Use when a user mentions Jupiter token verification, VRFD eligibility, paying 1000 JUP to verify a token, submitting a verification request, or updating metadata via the Jupiter express verification flow."
license: "NOASSERTION"
metadata:
  decimalai-skill-id: "48867a89-608a-4ef3-9304-9a0516fe9023"
  decimalai-version-id: "98ae84b8-5c6a-4cff-9600-b6bc55f65d3f"
  decimalai-version: "1"
  decimalai-body-sha256: "e10f0844dbbbf57a15b5a5ca96c5649b5f9bbe886992b283e971caa596e18d5e"
  decimalai-name: "internet-court/jupiter-vrfd"
  decimalai-format: "1"
  decimalai-invocation: "model"
  decimalai-category: "finance"
  decimalai-source: "https://app.decimal.ai/s/internet-court-jupiter-vrfd@1/SKILL.md"
---
# Jupiter Token Verification

This skill routes agents through the public Jupiter token-verification flow for a Solana token mint.

**Base URL**: `https://api.jup.ag`
**Auth**: `x-api-key` from [developers.jup.ag](https://developers.jup.ag/) (required)
**Cost**: 1000 JUP

## Use/Do Not Use

Use when:

- checking whether a token is eligible for submission
- crafting and signing the submission payment transaction
- executing the submission flow
- optionally updating token metadata as part of the submission
- submitting a metadata-only paid update when eligibility allows metadata but not verification

Do not use when:

- the agent would need private or internal routes
- the agent needs to fetch or merge existing metadata from non-public endpoints
- the user wants swaps, trading, or unrelated Jupiter flows

**Triggers**: `verify token`, `submit verification`, `check eligibility`, `craft payment transaction`, `execute payment`, `pay for verification`, `update token metadata`, `metadata-only submission`

## Intent Router

| User intent               | Endpoint                                                             | Method |
| ------------------------- | -------------------------------------------------------------------- | ------ |
| Check eligibility         | `/tokens/v2/verify/express/check-eligibility?tokenId={TOKEN_ID}`     | `GET`  |
| Craft payment transaction | `/tokens/v2/verify/express/craft-txn?senderAddress={SENDER_ADDRESS}` | `GET`  |
| Sign and execute payment  | `/tokens/v2/verify/express/execute`                                  | `POST` |

## Eligibility Decision Matrix

| `canVerify` | `canMetadata` | Action                                                            |
| ----------- | ------------- | ----------------------------------------------------------------- |
| `true`      | `true`        | verification+metadata (if user has metadata) or verification only |
| `true`      | `false`       | verification only, omit `tokenMetadata`                           |
| `false`     | `true`        | metadata-only                                                     |
| `false`     | `false`       | **STOP** — show `verificationError` / `metadataError` to user     |

## Examples

Load these on demand:

- **[API Reference](./references/api-reference.md)** for the exact request and response shapes, accepted input formats, normalization rules, submission-mode field requirements, and token metadata fields. This is the source of truth for request construction.
- **[Verify](./examples/verify.md)** when the user wants to execute a request and has confirmed the paying wallet details

## Agent Operating Rules

- Reuse as much as possible from the user's first message. Ask only for missing required fields.
- Never ask the user to paste a raw private key or seed phrase into chat.
- Never print secret values. Only mention non-sensitive file paths, key names, and derived public addresses.
- Do not claim a request was submitted unless you have a real API response or the user explicitly ran the local script themselves.
- If the current agent runtime cannot reach the network, install dependencies, or access local signer files, stop before execution and hand the user the exact local steps instead of fabricating progress.

## Execution Notes

For execute requests in constrained agent environments:

- outbound HTTP and package installation may require approval or user permission
- equivalent shell and package-manager commands are fine; do not block on a specific CLI if the environment already has an equivalent way to run the same steps

## Resources

- **Jupiter Burn Multisig**: `8gMBNeKwXaoNi9bhbVUWFt4Uc5aobL9PeYMXfYDMePE2`
- **JUP Token Mint**: `JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN`
- **Jupiter Docs**: [developers.jup.ag](https://developers.jup.ag)
- **Jupiter Verified**: [verified.jup.ag](https://verified.jup.ag)
