API

Last updated January 31, 2026

Genesis API 允许聚合器和应用程序查询 Genesis 代币发行的数据。使用这些端点在您的应用中显示发行信息、代币元数据和社交链接。

学习内容

本参考涵盖:

  • 可用端点及其使用场景
  • 请求/响应格式和示例
  • TypeScript 和 Rust 类型定义
  • 错误处理

概述

Genesis API 提供对发行数据的只读访问。通过 Genesis 地址或代币铸币地址进行查询。

  • 带速率限制的公共 API(无需身份验证)
  • 返回发行信息、代币元数据和社交链接
  • 提供 TypeScript 和 Rust 类型
  • 标准 REST 错误码

该 API 是公共的,带有速率限制。无需身份验证。

Base URL

https://api.metaplex.com/v1

使用场景

  • /launches/{genesis_pubkey} - 当您有 Genesis 地址时使用,例如来自链上事件或交易日志。
  • /tokens/{mint} - 当您只知道代币铸币地址时使用。返回与该代币关联的所有发行活动(一个代币可以有多个发行活动)。

端点

通过 Genesis 地址获取发行数据

GET /launches/{genesis_pubkey}

请求示例:

GET https://api.metaplex.com/v1/launches/7nE9GvcwsqzYcPUYfm5gxzCKfmPqi68FM7gPaSfG6EQN

响应:

{
"data": {
"launch": {
"launchPage": "https://example.com/launch/mytoken",
"type": "launchpool",
"genesisAddress": "7nE9GvcwsqzYcPUYfm5gxzCKfmPqi68FM7gPaSfG6EQN"
},
"baseToken": {
"address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"name": "My Token",
"symbol": "MTK",
"image": "https://example.com/token-image.png",
"description": "A community-driven token for the example ecosystem."
},
"website": "https://example.com",
"socials": {
"x": "https://x.com/mytoken",
"telegram": "https://t.me/mytoken",
"discord": "https://discord.gg/mytoken"
}
}
}

通过代币铸币地址获取发行数据

GET /tokens/{mint}

返回该代币的所有发行活动。响应格式相同,只是 launches 是一个数组。

响应:

{
"data": {
"launches": [
{
"launchPage": "https://example.com/launch/mytoken",
"type": "launchpool",
"genesisAddress": "7nE9GvcwsqzYcPUYfm5gxzCKfmPqi68FM7gPaSfG6EQN"
}
],
"baseToken": {
"address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"name": "My Token",
"symbol": "MTK",
"image": "https://example.com/token-image.png",
"description": "A community-driven token for the example ecosystem."
},
"website": "https://example.com",
"socials": {
"x": "https://x.com/mytoken",
"telegram": "https://t.me/mytoken",
"discord": "https://discord.gg/mytoken"
}
}
}

查找 Genesis 公钥需要索引或 getProgramAccounts。如果您只有代币铸币地址,请改用 /tokens 端点。

错误

{
"error": {
"code": 404,
"message": "Launch not found"
}
}
状态码描述
400错误请求 - 无效参数
404未找到发行活动或代币
429超出速率限制
500服务器内部错误

TypeScript 类型

interface Launch {
launchPage: string;
type: string;
genesisAddress: string;
}
interface BaseToken {
address: string;
name: string;
symbol: string;
image: string;
description: string;
}
interface Socials {
x: string;
telegram: string;
discord: string;
}
interface LaunchResponse {
data: {
launch: Launch;
baseToken: BaseToken;
website: string;
socials: Socials;
};
}
interface TokenResponse {
data: {
launches: Launch[];
baseToken: BaseToken;
website: string;
socials: Socials;
};
}
interface ErrorResponse {
error: {
code: number;
message: string;
};
}

示例:

const response = await fetch(
"https://api.metaplex.com/v1/launches/7nE9GvcwsqzYcPUYfm5gxzCKfmPqi68FM7gPaSfG6EQN"
);
const { data }: LaunchResponse = await response.json();
console.log(data.baseToken.name); // "My Token"

Rust 类型

use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Launch {
pub launch_page: String,
#[serde(rename = "type")]
pub launch_type: String,
pub genesis_address: String,
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BaseToken {
pub address: String,
pub name: String,
pub symbol: String,
pub image: String,
pub description: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Socials {
pub x: String,
pub telegram: String,
pub discord: String,
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LaunchData {
pub launch: Launch,
pub base_token: BaseToken,
pub website: String,
pub socials: Socials,
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TokenData {
pub launches: Vec<Launch>,
pub base_token: BaseToken,
pub website: String,
pub socials: Socials,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct LaunchResponse {
pub data: LaunchData,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct TokenResponse {
pub data: TokenData,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ApiError {
pub code: u16,
pub message: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ErrorResponse {
pub error: ApiError,
}

示例:

let response: LaunchResponse = reqwest::get(
"https://api.metaplex.com/v1/launches/7nE9GvcwsqzYcPUYfm5gxzCKfmPqi68FM7gPaSfG6EQN"
)
.await?
.json()
.await?;
println!("{}", response.data.base_token.name); // "My Token"

将以下依赖添加到您的 Cargo.toml

[dependencies]
reqwest = { version = "0.11", features = ["json"] }
tokio = { version = "1", features = ["full"] }
serde = { version = "1", features = ["derive"] }

常见问题

是否需要身份验证?

不需要。Genesis API 是公共的,带有速率限制。无需 API 密钥或身份验证。

如果我只有代币铸币地址,应该使用哪个端点?

使用 /tokens/{mint} 获取该代币的所有发行活动。如果您有 Genesis 地址,请使用 /launches/{genesis_pubkey}

速率限制是多少?

速率限制用于防止滥用。如果您收到 429 响应,请降低请求频率。

一个代币可以有多个发行活动吗?

可以。/tokens 端点返回一个发行活动数组,因为代币可以有多个活动(使用不同的 genesisIndex 值)。

术语表

术语定义
Genesis Address标识特定发行活动的 PDA
Base Token正在发行的代币
Launch Page用户可以参与发行的 URL
Launch Type使用的机制(launchpool、presale、auction)
Socials与代币关联的社交媒体链接

下一步