# OpenTelemetry attributes: semantic conventions lookup

> Every OpenTelemetry attribute in gen_ai.*, mcp.*, rpc.*, jsonrpc.*, http.*, error.*, server.* and client.*, plus hashspan's blockchain.*, x402.* and mpp.*, with type and stability.

Source: https://hashspan.dev/learn/otel-attributes

From semantic-conventions v1.44.0 (e10a930) and semantic-conventions-genai at 547934a (schema 1.42.0-dev, no release yet), and hashspan's conventions at @hashspan/core@1.3.1. Synced 2026-10-18. Use these exact names; do not invent attribute names. Each namespace page lists the spans that set an attribute, a real span where one was recorded, and renamed names.

## Namespace pages

- [gen_ai.* attributes: OpenTelemetry GenAI semantic conventions](https://hashspan.dev/learn/otel-attributes/gen-ai.md): gen_ai.*, mcp.*
- [rpc.* and jsonrpc.* attributes: OpenTelemetry RPC conventions](https://hashspan.dev/learn/otel-attributes/rpc.md): rpc.*, jsonrpc.*
- [http.* attributes: OpenTelemetry HTTP semantic conventions](https://hashspan.dev/learn/otel-attributes/http.md): http.*
- [error.type: the OpenTelemetry error attribute](https://hashspan.dev/learn/otel-attributes/error.md): error.*
- [server.address and server.port: OpenTelemetry attributes](https://hashspan.dev/learn/otel-attributes/server.md): server.*, client.*
- [hashspan semantic conventions](https://hashspan.dev/docs/reference/semantic-conventions.md): blockchain.*, x402.*, mpp.*

## All attributes

| Name | Type | Stability | Description | Page |
|---|---|---|---|---|
| `gen_ai.agent.description` | string | Development | Free-form description of the GenAI agent provided by the application. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.agent.id` | string | Development | The unique and stable identifier of the GenAI hosted agent resource. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.agent.name` | string | Development | Human-readable name of the GenAI agent provided by the application. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.agent.version` | string | Development | The version of the GenAI agent. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.conversation.compacted` | boolean | Development | Indicates whether the effective conversation context used for this operation is a compacted view of a prior conversation. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.conversation.id` | string | Development | The unique identifier for a conversation (session, thread), used to store and correlate messages within this conversation. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.data_source.id` | string | Development | The data source identifier. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.embeddings.dimension.count` | int | Development | The number of dimensions the resulting output embeddings should have. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.evaluation.explanation` | string | Development | A free-form explanation for the assigned score provided by the evaluator. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.evaluation.name` | string | Development | The name of the evaluation metric used for the GenAI response. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.evaluation.score.label` | string | Development | Human readable label for evaluation. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.evaluation.score.value` | double | Development | The evaluation score returned by the evaluator. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.input.messages` | any | Development | The chat history provided to the model as an input. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.main_agent.description` | string | Development | The free-form description of the top-level Generative AI agent in the process. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.main_agent.id` | string | Development | The unique and stable identifier of the top-level Generative AI agent in the process | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.main_agent.name` | string | Development | The human-readable name of the top-level Generative AI agent in the process. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.memory.query.text` | string | Development | The search query used to retrieve memories. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.memory.record.count` | int | Development | The number of memory records relevant to the operation. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.memory.record.id` | string | Development | The unique identifier of the memory record. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.memory.records` | any | Development | The memory records stored or retrieved in a memory operation. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.memory.store.id` | string | Development | The unique identifier of the memory store. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.operation.name` | string | Development | The name of the operation being performed. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.output.messages` | any | Development | Messages returned by the model where each message represents a specific model response (choice, candidate). | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.output.type` | string | Development | Represents the content type requested by the client. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.prompt.name` | string | Development | The name of the prompt that uniquely identifies it. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.prompt.variable.<key>` | string | Development | The variables supplied to the prompt template, the `<key>` being the variable name, the value being the variable value. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.prompt.version` | string | Development | The version of the prompt template used. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.provider.name` | string | Development | The Generative AI provider as identified by the client or server instrumentation. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.request.choice.count` | int | Development | The target number of candidate completions to return. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.request.encoding_formats` | string[] | Development | The encoding formats requested in an embeddings operation, if specified. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.request.frequency_penalty` | double | Development | The frequency penalty setting for the GenAI request. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.request.max_tokens` | int | Development | The maximum number of tokens the model generates for a request. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.request.model` | string | Development | The name of the GenAI model a request is being made to. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.request.presence_penalty` | double | Development | The presence penalty setting for the GenAI request. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.request.previous_response.id` | string | Development | The unique identifier of a previous response or interaction used to provide context for the current operation. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.request.reasoning.level` | string | Development | The reasoning or thinking effort level requested for a GenAI model. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.request.seed` | int | Development | Requests with same seed value more likely to return same result. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.request.stop_sequences` | string[] | Development | List of sequences that the model will use to stop generating further tokens. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.request.stream` | boolean | Development | Indicates whether the GenAI request was made in streaming mode. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.request.stream_cursor` | string | Development | The cursor identifying the last streamed event already received, used to resume a streamed response from that position. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.request.temperature` | double | Development | The temperature setting for the GenAI request. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.request.top_k` | int | Development | The top-K sampling setting for the GenAI request: restricts token generation at each step to the K most likely next tokens. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.request.top_p` | double | Development | The top_p sampling setting for the GenAI request. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.response.finish_reasons` | string[] | Development | Array of reasons the model stopped generating tokens, corresponding to each generation received. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.response.id` | string | Development | The unique identifier for the completion. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.response.model` | string | Development | The name of the model that generated the response. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.response.status` | string | Development | The lifecycle status of a generated response, as reported by the provider when the response is fetched or polled. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.response.time_to_first_chunk` | double | Development | Time to first chunk in a streaming response, measured from request issuance, in seconds. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.retrieval.documents` | any | Development | The documents retrieved. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.retrieval.query.text` | string | Development | The query text used for retrieval. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.retrieval.top_k` | int | Development | The maximum number of documents the retriever was asked to return for the query (also known as `k`, `limit`, or `max_num_results`). | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.skill.description` | string | Development | The description of the Agent Skill. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.skill.name` | string | Development | The name of the Agent Skill. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.skill.resource.name` | string | Development | The skill-relative name of the resource (script, reference, or asset) being accessed or executed. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.skill.source.uri` | string | Development | The source URI for loading the skill. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.system_instructions` | any | Development | The system message or instructions provided to the GenAI model separately from the chat history. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.token.modality` | string | Development | The modality of the tokens being counted. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.tool.call.arguments` | any | Development | Parameters passed to the tool call. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.tool.call.id` | string | Development | The tool call identifier supplied by the model or provider. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.tool.call.result` | any | Development | The result returned by the tool call (if any and if execution was successful). | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.tool.definitions` | any | Development | The list of tool definitions available to the GenAI agent or model. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.tool.description` | string | Development | The tool description. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.tool.name` | string | Development | Name of the tool utilized by the agent. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.tool.type` | string | Development | Type of the tool utilized by the agent | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.usage.audio.cache_read.input_tokens` | int | Development | The number of audio input tokens served from a provider-managed cache. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.usage.audio.input_tokens` | int | Development | The number of audio input tokens. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.usage.audio.output_tokens` | int | Development | The number of audio output tokens. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.usage.cache_read.input_tokens` | int | Development | The number of input tokens served from a provider-managed cache. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.usage.cache_write.input_tokens` | int | Development | The number of input tokens written to a provider-managed cache. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.usage.image.cache_read.input_tokens` | int | Development | The number of image input tokens served from a provider-managed cache. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.usage.image.input_tokens` | int | Development | The number of image input tokens. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.usage.image.output_tokens` | int | Development | The number of image output tokens. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.usage.input_tokens` | int | Development | The number of tokens used in the GenAI input (prompt). | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.usage.output_tokens` | int | Development | The number of tokens used in the GenAI response (completion). | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.usage.reasoning.output_tokens` | int | Development | The number of output tokens used for reasoning (e.g. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.usage.text.cache_read.input_tokens` | int | Development | The number of text input tokens served from a provider-managed cache. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.usage.text.input_tokens` | int | Development | The number of text input tokens. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.usage.text.output_tokens` | int | Development | The number of text output tokens. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.workflow.name` | string | Development | Human-readable name of the GenAI workflow provided by the application. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.completion` | string | Deprecated | Removed, no replacement at this time. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.openai.request.response_format` | string | Deprecated | Replaced by `gen_ai.output.type`. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.openai.request.seed` | int | Deprecated | Replaced by `gen_ai.request.seed`. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.openai.request.service_tier` | string | Deprecated | Replaced by `openai.request.service_tier`. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.openai.response.service_tier` | string | Deprecated | Replaced by `openai.response.service_tier`. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.openai.response.system_fingerprint` | string | Deprecated | Replaced by `openai.response.system_fingerprint`. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.prompt` | string | Deprecated | Removed, no replacement at this time. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.system` | string | Deprecated | Replaced by `gen_ai.provider.name`. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.token.type` | string | Deprecated | Replaced, with the `gen_ai.client.token.usage` histogram it served, by per-direction token histograms and `gen_ai.token.modality` (changelog). | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.usage.cache_creation.input_tokens` | int | Deprecated | Renamed to `gen_ai.usage.cache_write.input_tokens` (changelog). | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.usage.completion_tokens` | int | Deprecated | Replaced by `gen_ai.usage.output_tokens`. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `gen_ai.usage.prompt_tokens` | int | Deprecated | Replaced by `gen_ai.usage.input_tokens`. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `mcp.method.name` | string | Development | The name of the request or notification method. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `mcp.protocol.version` | string | Development | The version of the Model Context Protocol used. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `mcp.resource.uri` | string | Development | The value of the resource uri. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `mcp.session.id` | string | Development | Identifies MCP session. | [gen-ai](https://hashspan.dev/learn/otel-attributes/gen-ai.md) |
| `rpc.method` | string | Release candidate | The fully-qualified logical name of the method from the RPC interface perspective. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.method_original` | string | Release candidate | The original name of the method used by the client. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.request.metadata.<key>` | string[] | Development | RPC request metadata, `<key>` being the normalized RPC metadata key (lowercase), the value being the metadata values. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.response.metadata.<key>` | string[] | Development | RPC response metadata, `<key>` being the normalized RPC metadata key (lowercase), the value being the metadata values. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.response.status_code` | string | Release candidate | Status code of the RPC returned by the RPC server or generated by the client | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.system.name` | string | Release candidate | The Remote Procedure Call (RPC) system. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.connect_rpc.error_code` | string | Deprecated | Renamed to `rpc.response.status_code`. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.connect_rpc.request.metadata.<key>` | string[] | Deprecated | Renamed to `rpc.request.metadata.<key>`. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.connect_rpc.response.metadata.<key>` | string[] | Deprecated | Renamed to `rpc.response.metadata.<key>`. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.grpc.request.metadata.<key>` | string[] | Deprecated | Renamed to `rpc.request.metadata.<key>`. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.grpc.response.metadata.<key>` | string[] | Deprecated | Renamed to `rpc.response.metadata.<key>`. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.grpc.status_code` | string | Deprecated | Replaced by `rpc.response.status_code`. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.jsonrpc.error_code` | int | Deprecated | Replaced by `rpc.response.status_code`. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.jsonrpc.error_message` | string | Deprecated | Use the span status description when reporting JSON-RPC spans. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.jsonrpc.request_id` | string | Deprecated | Renamed to `jsonrpc.request.id`. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.jsonrpc.version` | string | Deprecated | Renamed to `jsonrpc.protocol.version`. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.message.compressed_size` | int | Deprecated | Deprecated, no replacement at this time. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.message.id` | int | Deprecated | Deprecated, no replacement at this time. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.message.type` | string | Deprecated | Deprecated, no replacement at this time. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.message.uncompressed_size` | int | Deprecated | Deprecated, no replacement at this time. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.service` | string | Deprecated | Value should be included in `rpc.method` which is expected to be a fully-qualified name. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `rpc.system` | string | Deprecated | Renamed to `rpc.system.name`. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `jsonrpc.protocol.version` | string | Development | Protocol version, as specified in the `jsonrpc` property of the request and its corresponding response. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `jsonrpc.request.id` | string | Development | A string representation of the `id` property of the request and its corresponding response. | [rpc](https://hashspan.dev/learn/otel-attributes/rpc.md) |
| `http.connection.state` | string | Development | State of the HTTP connection in the HTTP connection pool. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.request.body.size` | int | Development | The size of the request payload body in bytes. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.request.header.<key>` | string[] | Stable | HTTP request headers, `<key>` being the normalized HTTP Header name (lowercase), the value being the header values. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.request.method` | string | Stable | HTTP request method. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.request.method_original` | string | Stable | Original HTTP method sent by the client in the request line. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.request.resend_count` | int | Stable | The ordinal number of request resending attempt (for any reason, including redirects). | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.request.size` | int | Development | The total size of the request in bytes. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.response.body.size` | int | Development | The size of the response payload body in bytes. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.response.header.<key>` | string[] | Stable | HTTP response headers, `<key>` being the normalized HTTP Header name (lowercase), the value being the header values. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.response.size` | int | Development | The total size of the response in bytes. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.response.status_code` | int | Stable | HTTP response status code. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.route` | string | Stable | The matched route template for the request. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.client_ip` | string | Deprecated | Renamed to `client.address`. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.flavor` | string | Deprecated | Replaced by `network.protocol.name`. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.host` | string | Deprecated | Replaced by one of `server.address`, `client.address` or `http.request.header.host`, depending on the usage. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.method` | string | Deprecated | Renamed to `http.request.method`. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.request_content_length` | int | Deprecated | Replaced by `http.request.header.content-length`. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.request_content_length_uncompressed` | int | Deprecated | Renamed to `http.request.body.size`. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.response_content_length` | int | Deprecated | Replaced by `http.response.header.content-length`. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.response_content_length_uncompressed` | int | Deprecated | Renamed to `http.response.body.size`. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.scheme` | string | Deprecated | Renamed to `url.scheme`. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.server_name` | string | Deprecated | Renamed to `server.address`. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.status_code` | int | Deprecated | Renamed to `http.response.status_code`. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.target` | string | Deprecated | Replaced by `url.path`. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.url` | string | Deprecated | Renamed to `url.full`. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `http.user_agent` | string | Deprecated | Renamed to `user_agent.original`. | [http](https://hashspan.dev/learn/otel-attributes/http.md) |
| `error.type` | string | Stable | Describes a class of error the operation ended with. | [error](https://hashspan.dev/learn/otel-attributes/error.md) |
| `error.message` | string | Deprecated | Use domain-specific error message attribute. For example, use `feature_flag.error.message` for feature flag errors. | [error](https://hashspan.dev/learn/otel-attributes/error.md) |
| `server.address` | string | Stable | Server domain name if available without reverse DNS lookup. | [server](https://hashspan.dev/learn/otel-attributes/server.md) |
| `server.port` | int | Stable | Server port number. | [server](https://hashspan.dev/learn/otel-attributes/server.md) |
| `client.address` | string | Stable | Client address - domain name if available without reverse DNS lookup. | [server](https://hashspan.dev/learn/otel-attributes/server.md) |
| `client.port` | int | Stable | Client port number. | [server](https://hashspan.dev/learn/otel-attributes/server.md) |
| `blockchain.system.name` | string | Development | evm | [hashspan](https://hashspan.dev/docs/reference/attributes/common#blockchainsystemname) |
| `blockchain.chain.id` | int | Development | EIP-155 chain id, e.g. | [hashspan](https://hashspan.dev/docs/reference/attributes/common#blockchainchainid) |
| `blockchain.operation.name` | string | Development | send \| confirm \| payment | [hashspan](https://hashspan.dev/docs/reference/attributes/common#blockchainoperationname) |
| `blockchain.tx.hash` | string | Development | 0x-prefixed tx hash. | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxhash) |
| `blockchain.tx.from` | string | Development | sender address, subject to address mode | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxfrom) |
| `blockchain.tx.to` | string | Development | recipient / contract address, subject to address mode | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxto) |
| `blockchain.tx.value` | string | Development | value in wei, decimal string | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxvalue) |
| `blockchain.tx.nonce` | int | Development | sender nonce, when the sending call passes one (a nonce the wallet or viem picks is not known to the adapter) | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxnonce) |
| `blockchain.tx.authorization.count` | int | Development | number of EIP-7702 authorizations a type 4 transaction carries | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxauthorizationcount) |
| `blockchain.tx.authorization.addresses` | string[] | Development | delegated contract address of each well-formed authorization, subject to address mode, at most 64. | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxauthorizationaddresses) |
| `blockchain.tx.authorization.chain_ids` | int[] | Development | chain id of each well-formed authorization, in the order of the addresses, at most 64. | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxauthorizationchain_ids) |
| `blockchain.contract.function.name` | string | Development | decoded function name when an ABI is known | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaincontractfunctionname) |
| `blockchain.contract.function.selector` | string | Development | 4-byte selector, e.g. | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaincontractfunctionselector) |
| `blockchain.contract.function.arguments` | string | Development | decoded call arguments as a JSON array, e.g. | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaincontractfunctionarguments) |
| `blockchain.tx.status` | string | Development | from chain data: success \| reverted \| replaced | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxstatus) |
| `blockchain.block.number` | int | Development | inclusion block. | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchainblocknumber) |
| `blockchain.tx.gas.used` | int | Development | gas used | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxgasused) |
| `blockchain.tx.effective_gas_price` | string | Development | price per gas in the chain's fee unit (see the fee table below), decimal string. | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxeffective_gas_price) |
| `blockchain.tx.l1_fee` | string | Development | L1 data fee on OP-stack chains, in the chain's fee unit. | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxl1_fee) |
| `blockchain.tx.fee` | string | Development | gas.used × effective_gas_price + l1_fee, in the chain's fee unit: wei of the native currency, or the token fee_asset names (see the fee table below). | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxfee) |
| `blockchain.tx.operator_fee` | string | Development | OP Stack operator fee (Isthmus and later), wei, decimal string. | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxoperator_fee) |
| `blockchain.tx.fee_asset` | string | Development | contract address of the token the fee was paid in, subject to address mode, as the chain reports it (a Celo fee currency, which for a 6-decimal token is its 18-decimal adapter contract. | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxfee_asset) |
| `blockchain.tx.revert.reason` | string | Development | decoded revert reason when available, also of a reverted user operation: the Error(string) message, Panic(0x..), ErrorName(arg, ...) for custom errors with a known ABI, else the 4-byte error selector. | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxrevertreason) |
| `blockchain.tx.replacement.hash` | string | Development | on a replaced confirm span: hash of the mined transaction that replaced it | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxreplacementhash) |
| `blockchain.tx.replacement.reason` | string | Development | on a replaced confirm span: repriced \| cancelled \| replaced, as reported by the instrumented library. | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxreplacementreason) |
| `blockchain.tx.wait.confirmations` | int | Development | on a transaction's confirm span: the confirmations (blocks, counting the receipt's own) that the wait which ended the span asked for, as the library applies them: a viem wait's or a CDP network-scoped wait's confirmations when it is a positive safe integer. | [hashspan](https://hashspan.dev/docs/reference/attributes/transactions#blockchaintxwaitconfirmations) |
| `blockchain.user_operation.hash` | string | Development | 0x-prefixed user operation hash (userOpHash), which identifies the operation with the chain id | [hashspan](https://hashspan.dev/docs/reference/attributes/user-operations#blockchainuser_operationhash) |
| `blockchain.user_operation.sender` | string | Development | address of the smart account, subject to address mode | [hashspan](https://hashspan.dev/docs/reference/attributes/user-operations#blockchainuser_operationsender) |
| `blockchain.user_operation.entry_point` | string | Development | address of the EntryPoint contract, subject to address mode | [hashspan](https://hashspan.dev/docs/reference/attributes/user-operations#blockchainuser_operationentry_point) |
| `blockchain.user_operation.call_count` | int | Development | number of calls the operation makes, when the adapter knows them | [hashspan](https://hashspan.dev/docs/reference/attributes/user-operations#blockchainuser_operationcall_count) |
| `blockchain.user_operation.nonce` | string | Development | the operation's nonce, decimal string (a 192-bit key and a 64-bit sequence number) | [hashspan](https://hashspan.dev/docs/reference/attributes/user-operations#blockchainuser_operationnonce) |
| `blockchain.user_operation.success` | boolean | Development | whether the operation's calls succeeded. | [hashspan](https://hashspan.dev/docs/reference/attributes/user-operations#blockchainuser_operationsuccess) |
| `blockchain.user_operation.gas.used` | int | Development | gas the operation used (actualGasUsed) | [hashspan](https://hashspan.dev/docs/reference/attributes/user-operations#blockchainuser_operationgasused) |
| `blockchain.user_operation.gas.cost` | string | Development | what the operation paid (actualGasCost), wei, decimal string. | [hashspan](https://hashspan.dev/docs/reference/attributes/user-operations#blockchainuser_operationgascost) |
| `blockchain.user_operation.paymaster` | string | Development | address of the paymaster that paid for the operation, subject to address mode. | [hashspan](https://hashspan.dev/docs/reference/attributes/user-operations#blockchainuser_operationpaymaster) |
| `blockchain.call_batch.id` | string | Development | the batch id the wallet returned for EIP-5792 wallet_sendCalls (0x-prefixed hex, at most 8194 characters), truncated after 256 characters. | [hashspan](https://hashspan.dev/docs/reference/attributes/call-batches#blockchaincall_batchid) |
| `blockchain.call_batch.sender` | string | Development | address of the account the calls are sent from, subject to address mode | [hashspan](https://hashspan.dev/docs/reference/attributes/call-batches#blockchaincall_batchsender) |
| `blockchain.call_batch.call_count` | int | Development | number of calls in the batch | [hashspan](https://hashspan.dev/docs/reference/attributes/call-batches#blockchaincall_batchcall_count) |
| `blockchain.call_batch.status` | string | Development | the batch's outcome from chain data: success \| reverted \| partially_reverted. | [hashspan](https://hashspan.dev/docs/reference/attributes/call-batches#blockchaincall_batchstatus) |
| `blockchain.call_batch.status_code` | int | Development | the EIP-5792 status code the wallet reported, e.g. | [hashspan](https://hashspan.dev/docs/reference/attributes/call-batches#blockchaincall_batchstatus_code) |
| `blockchain.call_batch.atomic` | boolean | Development | whether the wallet ran the calls atomically | [hashspan](https://hashspan.dev/docs/reference/attributes/call-batches#blockchaincall_batchatomic) |
| `blockchain.call_batch.transaction_hashes` | string[] | Development | hashes of the transactions whose receipts the wallet reported for the batch, de-duplicated, at most 64 | [hashspan](https://hashspan.dev/docs/reference/attributes/call-batches#blockchaincall_batchtransaction_hashes) |
| `blockchain.operation.subject` | string | Development | on metrics of user operations: user_operation. | [hashspan](https://hashspan.dev/docs/reference/attributes/common#blockchainoperationsubject) |
| `blockchain.fee.payer` | string | Development | on blockchain.client.fee samples whose fee the sender of the traced transaction or operation did not pay: facilitator for a payment's settlement transaction that another party sent (x402), paymaster for a user operation a paymaster paid for, sponsor for a transaction whose receipt names another account as its fee payer (a Tempo feePayer). | [hashspan](https://hashspan.dev/docs/reference/attributes/common#blockchainfeepayer) |
| `blockchain.fee.denomination` | string | Development | on blockchain.client.fee samples whose fee was paid in a token rather than the chain's native currency: token, a constant, never an address or a value read from the chain. | [hashspan](https://hashspan.dev/docs/reference/attributes/common#blockchainfeedenomination) |
| `blockchain.payment.protocol` | string | Development | x402 \| mpp. | [hashspan](https://hashspan.dev/docs/reference/attributes/payments#blockchainpaymentprotocol) |
| `blockchain.payment.payer` | string | Development | address that pays, subject to address mode. | [hashspan](https://hashspan.dev/docs/reference/attributes/payments#blockchainpaymentpayer) |
| `blockchain.payment.recipient` | string | Development | address that is paid, subject to address mode | [hashspan](https://hashspan.dev/docs/reference/attributes/payments#blockchainpaymentrecipient) |
| `blockchain.payment.asset` | string | Development | contract address of the token paid with, subject to address mode | [hashspan](https://hashspan.dev/docs/reference/attributes/payments#blockchainpaymentasset) |
| `blockchain.payment.amount` | string | Development | amount in the asset's smallest unit, decimal string. | [hashspan](https://hashspan.dev/docs/reference/attributes/payments#blockchainpaymentamount) |
| `blockchain.payment.settled_amount` | string | Development | amount the settling party reports it settled, decimal string, e.g. | [hashspan](https://hashspan.dev/docs/reference/attributes/payments#blockchainpaymentsettled_amount) |
| `blockchain.payment.verified` | boolean | Development | whether the settlement transaction carries this payment (its receipt and, for Permit2, its input. | [hashspan](https://hashspan.dev/docs/reference/attributes/payments#blockchainpaymentverified) |
| `blockchain.payment.status` | string | Development | settled \| pending \| failed | [hashspan](https://hashspan.dev/docs/reference/attributes/payments#blockchainpaymentstatus) |
| `x402.scheme` | string | Development | x402 payment scheme, e.g. | [hashspan](https://hashspan.dev/docs/reference/attributes/payments#x402scheme) |
| `x402.resource` | string | Development | the resource paid for, per the tracker's paymentResource mode: origin (default) records scheme, host and port only, path the URL without query string, fragment or user info, off nothing. | [hashspan](https://hashspan.dev/docs/reference/attributes/payments#x402resource) |
| `mpp.method` | string | Development | MPP payment method, e.g. | [hashspan](https://hashspan.dev/docs/reference/attributes/payments#mppmethod) |
| `mpp.intent` | string | Development | MPP intent, e.g. | [hashspan](https://hashspan.dev/docs/reference/attributes/payments#mppintent) |
| `mpp.mode` | string | Development | how an MPP charge is settled: push (the payer broadcasts) \| pull (the server broadcasts what the payer signed) | [hashspan](https://hashspan.dev/docs/reference/attributes/payments#mppmode) |
| `mpp.challenge.id` | string | Development | id of the MPP challenge paid, chosen by the server: 1 to 128 characters of A-Z a-z 0-9 - . | [hashspan](https://hashspan.dev/docs/reference/attributes/payments#mppchallengeid) |
| `mpp.resource` | string | Development | the resource paid for, as x402.resource records it | [hashspan](https://hashspan.dev/docs/reference/attributes/payments#mppresource) |

## FAQ

### Is this the official OpenTelemetry attribute registry?

No. It is generated from the official model files at a pinned version, and every attribute links to its entry in the official registry. Where the two disagree, the official registry wins.

### Why are the gen_ai.* attributes not shown as deprecated here?

The main semantic-conventions repository marks them deprecated because they moved to the semantic-conventions-genai repository. This list takes them from the new repository, where they are current. Only names that were really renamed or removed are marked Deprecated.

### What do Release candidate and Development mean?

Development names can still be renamed or removed. A Release candidate is ready to become Stable, and breaking changes are allowed only in special cases. Stable names keep their meaning.

OpenTelemetry attribute names, types, stability and descriptions: © OpenTelemetry Authors, Apache-2.0.
