Elysium Mainnet
Network settings, USDC, and a complete x402 service integration on Kinetiq Elysium.
Arcon's web app and these integration guides use Kinetiq Elysium Mainnet, the HyperEVM L2. Use the network and token below for both your service and payer policy.
Network settings
| Setting | Value |
|---|---|
| Network | Elysium Mainnet |
| Chain ID | 99901 |
| x402 network | eip155:99901 |
| RPC | https://rpc.elysium.kinetiq.xyz |
| Gas currency | HYPE, 18 decimals |
| Payment asset | USDC, 6 decimals |
| USDC contract | 0xb47c4C8F73F009CC0C0d3f92B388d13E293F0B65 |
| Facilitator | https://facilitator.arcon.network |
| Payment scheme | x402 v2 exact, with assetTransferMethod: "permit2" |
| Gas sponsorship | eip2612GasSponsoring |
| USDC signing domain | name: "USDC", version: "1" |
This USDC is bridged from HyperEVM USDC; it is not Circle-issued native USDC on Elysium. Always match the full token address. The payer needs USDC on Elysium; a balance on HyperEVM or another network cannot pay an Elysium request.
Receipts link to the community Elysium explorer.
Transaction links use https://scan.elysp.com/#/tx/<transaction-hash>.
Payment authorizations
This token supports EIP-2612 permit. The SDK uses it with Permit2 and the
standard x402 exact proxy to settle a payment. An EIP-2612 permit authorizes an
allowance; the separate Permit2 payment signature binds the payment terms.
The first payment may need both signatures. With an existing sufficient allowance, the SDK can skip the token permit. Arcon's facilitator submits the settlement and pays the HYPE network fee, so the payer does not need HYPE for this sponsored payment flow.
These contracts were verified on Elysium Mainnet on November 9, 2026:
| Contract | Address |
|---|---|
| Permit2 | 0x000000000022D473030F116dDEE9F6B43aC78BA3 |
| x402ExactPermit2Proxy | 0x402085c248EeA27D92E8b30b2C58ed07f9E20001 |
The proxy is already deployed. Services using Arcon's facilitator do not need to deploy another settlement contract.
Accept payments
This example exposes a paid JSON resource with Hono and the x402 SDK version used by Arcon. It specifies the asset and atomic amount explicitly, so it does not depend on a default-token lookup for Elysium.
bun add hono @x402/hono@2.19.0 @x402/core@2.19.0 @x402/evm@2.19.0Save this as server.ts. Set PAY_TO to your Elysium receiving address and
SERVICE_ORIGIN to the origin clients will request, then run bun server.ts.
The example listens on port 3000.
import { Hono } from "hono";
import { HTTPFacilitatorClient, x402ResourceServer } from "@x402/core/server";
import { ExactEvmScheme } from "@x402/evm/exact/server";
import { paymentMiddleware } from "@x402/hono";
const payTo = process.env.PAY_TO;
const serviceOrigin = process.env.SERVICE_ORIGIN;
if (!payTo || !/^0x[a-fA-F0-9]{40}$/.test(payTo) || !serviceOrigin) {
throw new Error("Set PAY_TO and SERVICE_ORIGIN before starting the service.");
}
const resourceUrl = new URL("/robot/status", serviceOrigin).href;
const facilitator = new HTTPFacilitatorClient({
url: "https://facilitator.arcon.network"
});
const server = new x402ResourceServer(facilitator)
.register("eip155:99901", new ExactEvmScheme());
const app = new Hono();
app.use(paymentMiddleware({
"GET /robot/status": {
accepts: {
scheme: "exact",
network: "eip155:99901",
payTo,
price: {
amount: "2400000", // 2.40 USDC (6 decimals)
asset: "0xb47c4C8F73F009CC0C0d3f92B388d13E293F0B65",
extra: {
assetTransferMethod: "permit2",
name: "USDC",
version: "1"
}
},
maxTimeoutSeconds: 300
},
resource: resourceUrl,
description: "Robot status report",
mimeType: "application/json",
extensions: {
eip2612GasSponsoring: { info: { version: "1" } }
}
}
}, server));
app.get("/robot/status", (c) => c.json({ status: "ready" }));
export default { port: 3000, fetch: app.fetch };An unpaid request returns HTTP 402 with these Elysium payment requirements.
The middleware verifies the signed replay and settles before returning the
successful resource response. Hono route handlers run before settlement;
keep irreversible actions out of the handler and trigger hardware only from a
confirmed settlement workflow with independent device-safety checks.
The price in this service example is 2.40 USDC. If you connect the Robot Pay quickstart, deliberately configure its origin, purpose, recipient, and budget for this resource; the quickstart's 0.50 USDC limit will deny this price.
Check your integration
- Facilitator capabilities must
include x402 v2
exactforeip155:99901andeip2612GasSponsoring. - The unpaid response must use the USDC address and Permit2 settings above.
- Payers need a signer with contract-read access to the Elysium RPC so the SDK can read token allowances and nonces. See the client quickstart.
- The payment demo sends 0.001 real USDC on Elysium Mainnet.
- The Network page requires a separate Elysium payment indexer. Until it is connected, it shows a waiting state instead of another network's activity.