NodeOps
KR

Authentication

All protected MPP endpoints (/agent/*) use wallet-based authentication. No API keys or OAuth tokens - you sign a message with your EVM private key.


Auth Headers

Every request to a protected endpoint must include these headers:

HeaderDescription
X-Wallet-AddressYour EVM wallet address (0x...)
X-SignatureEIP-191 signature of the message below
X-TimestampUnix timestamp in milliseconds
X-NonceA unique UUID per request

Message Format

The signed message is a colon-separated string:

{wallet}:{timestamp}:{nonce}

Example:

0x5B6C...a3F2:1711500000000:550e8400-e29b-41d4-a716-446655440000

Generating Auth Headers

Using viem:

TypeScript
1import { privateKeyToAccount } from "viem/accounts";
2import { randomUUID } from "crypto";
3
4const account = privateKeyToAccount("0xYOUR_PRIVATE_KEY");
5
6const getAuthHeaders = async () => {
7 const nonce = randomUUID();
8 const timestamp = String(Date.now());
9 const message = `${account.address}:${timestamp}:${nonce}`;
10 const signature = await account.signMessage({ message });
11
12 return {
13 "X-Wallet-Address": account.address,
14 "X-Signature": signature,
15 "X-Timestamp": timestamp,
16 "X-Nonce": nonce,
17 };
18};

Validation Rules

  • Timestamp must be within 60 seconds of the server's clock
  • Nonce must be unique - each nonce can only be used once
  • Signature is verified using EIP-191 personal_sign via the wallet address

If any check fails, the endpoint returns 401.


Public Endpoints

These endpoints do not require authentication:

EndpointDescription
GET /agent/balance/:addressCheck token balances on-chain
GET /agent/chainsList supported chains & tokens
GET /healthGateway health check

100,000명 이상의 빌더. 하나의 워크스페이스.

제품 업데이트, 빌더 스토리, 더 빠르게 출시할 수 있는 기능에 대한 얼리 액세스를 받아보세요.

CreateOS는 아이디어가 컨셉에서 라이브 배포까지 원활하게 이동하는 통합 지능형 워크스페이스입니다. 도구, 인프라, 워크플로 간의 컨텍스트 전환을 제거하고 CreateOS 마켓플레이스에서 즉시 아이디어를 수익화할 수 있습니다.