GPC DEVELOPER DOCUMENTATION

游戏与 DApp 分享到群

游戏调用接口,用户选择群聊,群里收到可点击的卡片。

适用范围

Android/iOS 内置 DApp 与游戏 WebView,426、427 基座须安装 2026-10-24 发布的群分享 OTA 并重启。请先检测接口是否存在;外部浏览器、旧客户端和当前桌面宿主不提供此接口。

快速接入

if (typeof window.gpc?.shareToGroup !== 'function') {
  throw new Error('请在更新后的 GPC Wallet 中打开');
}
try {
  const result = await window.gpc.shareToGroup({
    title: '青岚剑境',
    text: '来一起闯关!',
    url: 'https://game.example/play?invite=your-invite-code',
    imageUrl: 'https://game.example/logo.png',
  });
  // 选群并发送成功:{ shared: true, groupId: 'group:…' }
  console.log(result.groupId);
} catch (error) {
  if (error.code === 4001) return; // 用户取消或页面离开
  console.error(error.message);
}

也可通过标准 Provider 请求调用:

const result = await window.ethereum.request({
  method: 'gpc_shareToGroup',
  params: [{ title: '游戏名称', text: '游戏简介',
    url: 'https://game.example/',
    imageUrl: 'https://game.example/logo.png' }],
});

请求参数

字段要求
title必填字符串,卡片名称,最多 120 字符。
text可选字符串,卡片简介,最多 1000 字符。
url必填 HTTP/HTTPS 链接,规范化后最多 2048 字符,不含用户名或密码。
imageUrl可选 Logo 链接,与 url 使用相同规则;不传时显示默认图标。

只接受单个参数对象。业务方不能指定群 ID 静默发送,也不能读取完整群列表。传入的 origin、groupId、gameOrientation 不能覆盖宿主判断。

卡片与交互

  1. Wallet 展示 Logo、名称、简介和来源域名,以及当前身份可用的群列表。
  2. 用户选择群后,Wallet 通过既有端到端加密聊天发送卡片;发送失败保留窗口,允许重试。
  3. 群成员点击卡片打开游戏或 DApp;卡片支持转发,会话摘要显示游戏或应用名称。

游戏的横竖屏配置由宿主附加,接收方按配置打开;普通 DApp 分享打开 DApp 页面。点击卡片不会自动发起登录、签名或交易。

来源域名用于展示,不是经过服务器认证的发布者证明。历史客户端可能显示原始卡片文本。

返回结果与取消

{ shared: true, groupId: 'group:…' }

只有发送流程成功才返回结果,不代表群成员已阅读,也不能将其作为服务端奖励凭据。取消通过错误码 4001 返回。

分享等待用户交互,不使用普通 RPC 读请求的超时。切换页面、刷新和退出会取消等待中的请求;消息已开始发送后,离开页面不能撤回已提交的消息。发送期间会阻止重复点击和主动关闭。

错误码

错误码含义
4001用户取消、页面离开或刷新。
-32002已有分享请求等待处理。
-32602参数无效、超长,或链接协议不支持。
4200当前宿主不支持分享到群。
4100当前页面不在前台或来源无效。