NFT Farm은 고유 디지털 자산(이하 "NFT") 중앙화 거래 플랫폼입니다.
NFT Farm은 간편하게 앱 및 NFT를 등록할 수 있도록 HTTP API를 지원하며 이 문서에서는 API에 대한 명세와 사용방법을 제공합니다.
연동 관련 질문 및 오류사항은 develop@itam.games 로 문의 부탁드립니다.
NFT Farm의 REST API는 JWT형식을 사용하여 인증합니다.
JWT의 Payload는 다음과 같습니다.
서명된 토큰은 HTTP Header의 Authorization 필드에 넣어서 요청합니다.
같은 요청을 여러 번 하더라도 Replay attack 대응을 위해 특정 시간 뒤 만료되므로 요청마다 서명하는 것을 권장합니다.
NFT 수정 요청을 하는 인증 생성 예제 코드입니다.
const jwt = require('jsonwebtoken');
const crypto = require('crypto');
const uuidv4 = require("uuid/v4");
const path = {
nftId: '<NFT Id>'
};
const body = {
activateExchange: true,
nonce: uuidv4()
};
const parameters = {...path, ...body};
const sortedKeys = Object.keys(parameters).sort();
const querystring = sortedKeys.map(key => `${key}=${parameters[key]}`).join('&');
const hashedQuerystring = crypto.createHash('sha512').update(querystring).digest('base64');
const jwtPayload = {
accessKey: '<Access Key>',
params: hashedQuerystring
};
const token = jwt.sign(jwtPayload, '<Secret Key>');
// HTTP Header Authorization value
const result = `Bearer ${token}`;
만드신 또는 만드실 서비스 입점 신청을 위한 단계입니다.
서비스에 대한 설명과 NFT가 서비스와 어떻게 접목되는지 정보를 등록해 주세요.
name | string 앱 이름 |
description | string 앱에 대한 설명 (NFT와 서비스 접목에 대한 자세한 설명) |
string 이메일 | |
company | string 회사명 |
icon | string 앱 아이콘 URL |
socials | Array of objects 소셜 |
Success
Main
Sandbox
{- "name": "string",
- "description": "string",
- "email": "string",
- "company": "string",
- "icon": "string",
- "socials": [
- {
- "name": "string",
- "link": "string"
}
]
}
NFT Farm 에 노출되는 앱 정보를 수정합니다.
변경 시 디지털 자산 번역정보 추가를 위해 점검 상태로 간주되어 NFT Farm 메뉴에서 사라지고 거래가 중단됩니다.
icon | string 앱 아이콘 URL (NFT Farm 메뉴에서 사용됩니다) |
defaultLanguage | string 앱 기본 언어 |
translations | Array of objects 번역 정보 |
socials | Array of objects 소셜 |
OK
Main
Sandbox
{- "icon": "string",
- "defaultLanguage": "string",
- "translations": [
- {
- "language": "string",
- "appName": "string",
- "appIntroduction": "string"
}
], - "socials": [
- {
- "name": "string",
- "link": "string"
}
]
}
Main
Sandbox
{- "icon": "string",
- "defaultLanguage": "string",
- "translations": [
- {
- "language": "string",
- "appName": "string",
- "appIntroduction": "string"
}
], - "socials": [
- {
- "name": "string",
- "link": "string"
}
]
}
NFT 카테고리를 생성하여 마켓에서 검색 편의성을 제공합니다.
카테고리 이름은 고유해야 하며 최대 50개까지 생성이 가능합니다.
translations | Array of objects 번역 정보 |
OK
Main
Sandbox
{- "translations": [
- {
- "language": "string",
- "categoryName": "string"
}
]
}
{- "id": 0
}
NFT 카테고리를 수정합니다.
categoryId required | string 카테고리 아이디 |
translations | Array of objects 번역 정보 |
Success
Main
Sandbox
{- "translations": [
- {
- "language": "string",
- "categoryName": "string"
}
]
}
NFT 카테고리를 삭제합니다.
단, NFT가 발행된 카테고리는 삭제가 불가능합니다.
categoryId required | string 카테고리 아이디 |
Success
Main
Sandbox
Main
Sandbox
[- {
- "id": 0,
- "translations": [
- {
- "language": "string",
- "categoryName": "string"
}
]
}
]
NFT 정보를 등록합니다.
동일한 이름의 NFT는 등록할 수 없습니다.
categoryId | number 카테고리 아이디 |
image | string 디지털 자산 이미지 URL |
translations | Array of objects 번역 정보 |
Success
Main
Sandbox
{- "categoryId": 0,
- "image": "string",
- "translations": [
- {
- "language": "string",
- "digitalAssetName": "string",
- "digitalAssetDescription": "string"
}
]
}
{- "id": 0
}
NFT 정보를 수정합니다.
NFT가 발행된 기록이 있으면 이름, 정보, 이미지만 수정 가능합니다.
digitalAssetId required | string 디지털 자산 아이디 |
categoryId | number 카테고리 아이디 |
image | string 디지털 자산 이미지 URL |
translations | Array of objects 번역 정보 |
Success
Main
Sandbox
{- "categoryId": 0,
- "image": "string",
- "translations": [
- {
- "language": "string",
- "digitalAssetName": "string",
- "digitalAssetDescription": "string"
}
]
}
NFT 정보를 삭제합니다.
NFT가 발행된 기록이 있으면 삭제할 수 없습니다.
digitalAssetId required | string 디지털 자산 아이디 |
Success
Main
Sandbox
NFT 정보를 조회합니다.
offset | number Default: 0 오프셋 |
limit | number Default: 20 조회할 개수 |
Success
Main
Sandbox
{- "rows": [
- {
- "id": 0,
- "name": "string",
- "categoryName": "string",
- "icon": "string"
}
], - "count": 0
}
인앱 서비스가 별도 플랫폼(구글, 애플, 별도 URL, Steam 등)의 회원가입 절차를 따를 경우 NFT Farm 회원과 연동을 진행해야 합니다. NFT Farm 에서는 유저의 블록체인 지갑을 별도 개발 없이 서비스에게 제공함으로써 개발의 편리함을 제공합니다.
각 인앱마다 회원을 별도 관리하며 NFT Farm 회원가입 또는 기존 유저의 인앱 연동은 별도로 진행합니다.
인앱 서비스에 신규 유저가 가입 시 서비스 유저를 NFT Farm에 등록하여 지갑을 생성합니다.
지갑을 생성하면 NFT를 생성할 수 있습니다.
gameAccount required | string 게임계정 |
Success
Conflict
Main
Sandbox
{- "error": "string",
- "message": "string"
}
생성된 지갑 상태를 조회합니다.
gameAccount required | string 게임계정 |
Success
Not Found
Main
Sandbox
{- "exchangeNickname": "string",
- "exchangeGrade": "string",
- "exchangeCreatedAt": null,
- "createdAt": null
}
인앱 서비스에서 NFT Farm 서비스를 호출하는 매칭 URL을 제공합니다.
NFT Farm 신규가입 또는 로그인 시 요청한 지갑을 매칭합니다.
gameAccount required | string 게임 계정 |
Success
Not Found
Main
Sandbox