자작의 ERC721Token을 OpenSea에 대응시킨다
소개
자작의 아이템을 시장에서 트레이드하고 싶은 경우, 이른바 「판」이라고 불리는 매매 기능을 만들 필요가 있습니다만,
서비스 자체의 응용 프로그램을 만드는 것 외에도 거래 기능을 만드는 것은 매우 어렵습니다.
또 다른 게임등과 교환이나 트레이드를 실시하기 위해서는, 이외에, 다른 게임의 아이템 정보등을 받아들여야 합니다.
OpenSea를 사용하면 자체 제작 ERC721 토큰을 매매할 수 있습니다. 이번은 자작 아이템을 OpenSea에서 취급하기 시작할 때까지의 기억입니다.
문서
기본적인 사용법은 아래 문서를 참조하십시오.
htps : // / cs. 오세아. 이오 / 드 cs / 1-st 루 c 쓰린 g
절차
1.token 용 json endpoint를 준비합니다.
아래와 같은 형태로 json을 준비합니다.
attributes와 같은 항목은 OpenSea에 표시되는 매개 변수이며,
표시 방법은 display_type 등으로 바꿀 수 있습니다.
(
이 근처의 작법은 본가의 개발 가이드를 참조해 주세요
htps : // / cs. 오세아. 이오 / 드 cs / 2 - 어서
)
app.get('/opensea/tokens/:id', function (req, res) {
res.json(
{
"attributes": [{
"trait_type": "base",
"value": "A"
}, {
"trait_type": "rarity",
"value": 5
}, {
"display_type": "resouce_number",
"value": 10
}, {
"display_type": "resouce_percentage",
"value": 5
}, {
"display_type": "number",
"trait_type": "generation",
"value": 1
}],
"description": "find new planet",
"external_url": "http://planettravelers.net/planets/1",
"image": "http://planettravelers.net/planet_img_001.png",
"name": "CAB3X"
}
);
});
2.ERC721의 계약을 준비하고 baseTokenURI()에서 1의 endpoint를 반환하도록 설정합니다.
pragma solidity ^0.4.24;
//import 'openzeppelin-solidity/contracts/token/ERC721/ERC721Token.sol';
//import 'openzeppelin-solidity/contracts/ownership/Ownable.sol';
import "./ERC721Token.sol";
import "./Ownable.sol";
import "./Strings.sol";
/**
* @title Creature
* OpenSea Creature - a contract for a non-fungible creature.
*/
contract PlanetToken is ERC721Token, Ownable {
address proxyRegistryAddress;
constructor(address _proxyRegistryAddress) ERC721Token("PlanetToken", "PLT") public {
proxyRegistryAddress = _proxyRegistryAddress;
}
function mint(address _to, uint256 _tokenId) public {
super._mint(_to, _tokenId);
}
/**
* @dev Returns an URI for a given token ID
*/
function tokenURI(uint256 _tokenId) public view returns (string) {
return Strings.strConcat(
baseTokenURI(),
Strings.uint2str(_tokenId)
);
}
function baseTokenURI() public view returns (string) {
return "http://planettravelers.net/opensea/tokens/";
}
/**
* Override isApprovedForAll to whitelist user's OpenSea proxy accounts to enable gas-less listings.
*/
function isApprovedForAll(
address owner,
address operator
)
public
view
returns (bool)
{
// Whitelist OpenSea proxy contract for easy trading.
ProxyRegistry proxyRegistry = ProxyRegistry(proxyRegistryAddress);
if (proxyRegistry.proxies(owner) == operator) {
return true;
}
return super.isApprovedForAll(owner, operator);
}
}
contract OwnableDelegateProxy { }
contract ProxyRegistry {
mapping(address => OwnableDelegateProxy) public proxies;
}
2-2proxyRegistryAddress란?
htps : // / cs. 오세아. 이오 / ぢ s 쿠 s / 5d4 아 942564 베에 c007431 f1 아 f
견적:
It depends on the network you're deploying to. It's 0xf57b2c51ded3a29e6891aba85459d600256cf317 on Rinkeby and 0xa5409ec958c83c3f309868babaca7
3.mint하여 동전을 만듭니다.
htps : // 기주 b. 코 m/P로지ぇc와 펜세아/오펜세아-c레아트레 s/bぉb/마s r/미g라치온 s/2_로 pぉy_안 t등 cts. js#L7-L12
4. 접근하기
(예) htps : // 링케 by. 오세아. 이오 / 아세 ts / 안 t 등 ct_ 아 d s / 토켄_ 이 d
cache를 지우려면? force_update = true를 붙입니다.
기타 샘플 htps : // 링케 by. 오세아. 이오 / 아세 ts / 0x9368672605133f7841024에서 8c67295b236b62b / 3
htps : // / cs. 오세아. 이오 / 레후 렌세 # 레 t 리에 ゔ ぃ
5.매매를 시도해 보기
FixedPrice,Auction,Bundle 중에서 판매 방법을 선택할 수 있습니다.
6.store top 만들기
아이템이 속한 서비스의 top 화면을 준비할 수 있습니다.
작성 방법은 token이 관리되는 contract를 입력하고 top에 표시되는 이미지를 설정하는 것만으로 작성할 수 있습니다.
Create 화면
설명
htps // 링케 by. 오세아. 이오 / 게 t ぃ s d / s t p와 ぉ
7. 병아리를 사용하여 우선 시도하고 싶은 경우의 최단 단계.
//nodeのversionを決める
$ nodebrew use v9.11.1
$ git clone https://github.com/ProjectOpenSea/opensea-creatures
$ cd opensea-creatures
//open-zippelinをinstallする
$ npm install
//remixdを立ち上げ
$ remixd -s ./ --remix-ide https://remix.ethereum.org
//deployとmintを行う。
//mint時のproxyRegistoryAddressはこちらを参照(networkによって異なる)
//https://docs.opensea.io/discuss/5d4a942564beec007431f1af
deploy.TradeableERC721Token
"AAA","AAA","0xf57b2c51ded3a29e6891aba85459d600256cf317"
//openseaを開く
https://rinkeby.opensea.io/assets/コントラクトのアドレス/1?force_update=true
Reference
이 문제에 관하여(자작의 ERC721Token을 OpenSea에 대응시킨다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/oggata/items/99b496cb0118df36a29c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
기본적인 사용법은 아래 문서를 참조하십시오.
htps : // / cs. 오세아. 이오 / 드 cs / 1-st 루 c 쓰린 g
절차
1.token 용 json endpoint를 준비합니다.
아래와 같은 형태로 json을 준비합니다.
attributes와 같은 항목은 OpenSea에 표시되는 매개 변수이며,
표시 방법은 display_type 등으로 바꿀 수 있습니다.
(
이 근처의 작법은 본가의 개발 가이드를 참조해 주세요
htps : // / cs. 오세아. 이오 / 드 cs / 2 - 어서
)
app.get('/opensea/tokens/:id', function (req, res) {
res.json(
{
"attributes": [{
"trait_type": "base",
"value": "A"
}, {
"trait_type": "rarity",
"value": 5
}, {
"display_type": "resouce_number",
"value": 10
}, {
"display_type": "resouce_percentage",
"value": 5
}, {
"display_type": "number",
"trait_type": "generation",
"value": 1
}],
"description": "find new planet",
"external_url": "http://planettravelers.net/planets/1",
"image": "http://planettravelers.net/planet_img_001.png",
"name": "CAB3X"
}
);
});
2.ERC721의 계약을 준비하고 baseTokenURI()에서 1의 endpoint를 반환하도록 설정합니다.
pragma solidity ^0.4.24;
//import 'openzeppelin-solidity/contracts/token/ERC721/ERC721Token.sol';
//import 'openzeppelin-solidity/contracts/ownership/Ownable.sol';
import "./ERC721Token.sol";
import "./Ownable.sol";
import "./Strings.sol";
/**
* @title Creature
* OpenSea Creature - a contract for a non-fungible creature.
*/
contract PlanetToken is ERC721Token, Ownable {
address proxyRegistryAddress;
constructor(address _proxyRegistryAddress) ERC721Token("PlanetToken", "PLT") public {
proxyRegistryAddress = _proxyRegistryAddress;
}
function mint(address _to, uint256 _tokenId) public {
super._mint(_to, _tokenId);
}
/**
* @dev Returns an URI for a given token ID
*/
function tokenURI(uint256 _tokenId) public view returns (string) {
return Strings.strConcat(
baseTokenURI(),
Strings.uint2str(_tokenId)
);
}
function baseTokenURI() public view returns (string) {
return "http://planettravelers.net/opensea/tokens/";
}
/**
* Override isApprovedForAll to whitelist user's OpenSea proxy accounts to enable gas-less listings.
*/
function isApprovedForAll(
address owner,
address operator
)
public
view
returns (bool)
{
// Whitelist OpenSea proxy contract for easy trading.
ProxyRegistry proxyRegistry = ProxyRegistry(proxyRegistryAddress);
if (proxyRegistry.proxies(owner) == operator) {
return true;
}
return super.isApprovedForAll(owner, operator);
}
}
contract OwnableDelegateProxy { }
contract ProxyRegistry {
mapping(address => OwnableDelegateProxy) public proxies;
}
2-2proxyRegistryAddress란?
htps : // / cs. 오세아. 이오 / ぢ s 쿠 s / 5d4 아 942564 베에 c007431 f1 아 f
견적:
It depends on the network you're deploying to. It's 0xf57b2c51ded3a29e6891aba85459d600256cf317 on Rinkeby and 0xa5409ec958c83c3f309868babaca7
3.mint하여 동전을 만듭니다.
htps : // 기주 b. 코 m/P로지ぇc와 펜세아/오펜세아-c레아트레 s/bぉb/마s r/미g라치온 s/2_로 pぉy_안 t등 cts. js#L7-L12
4. 접근하기
(예) htps : // 링케 by. 오세아. 이오 / 아세 ts / 안 t 등 ct_ 아 d s / 토켄_ 이 d
cache를 지우려면? force_update = true를 붙입니다.
기타 샘플 htps : // 링케 by. 오세아. 이오 / 아세 ts / 0x9368672605133f7841024에서 8c67295b236b62b / 3
htps : // / cs. 오세아. 이오 / 레후 렌세 # 레 t 리에 ゔ ぃ
5.매매를 시도해 보기
FixedPrice,Auction,Bundle 중에서 판매 방법을 선택할 수 있습니다.
6.store top 만들기
아이템이 속한 서비스의 top 화면을 준비할 수 있습니다.
작성 방법은 token이 관리되는 contract를 입력하고 top에 표시되는 이미지를 설정하는 것만으로 작성할 수 있습니다.
Create 화면
설명
htps // 링케 by. 오세아. 이오 / 게 t ぃ s d / s t p와 ぉ
7. 병아리를 사용하여 우선 시도하고 싶은 경우의 최단 단계.
//nodeのversionを決める
$ nodebrew use v9.11.1
$ git clone https://github.com/ProjectOpenSea/opensea-creatures
$ cd opensea-creatures
//open-zippelinをinstallする
$ npm install
//remixdを立ち上げ
$ remixd -s ./ --remix-ide https://remix.ethereum.org
//deployとmintを行う。
//mint時のproxyRegistoryAddressはこちらを参照(networkによって異なる)
//https://docs.opensea.io/discuss/5d4a942564beec007431f1af
deploy.TradeableERC721Token
"AAA","AAA","0xf57b2c51ded3a29e6891aba85459d600256cf317"
//openseaを開く
https://rinkeby.opensea.io/assets/コントラクトのアドレス/1?force_update=true
Reference
이 문제에 관하여(자작의 ERC721Token을 OpenSea에 대응시킨다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/oggata/items/99b496cb0118df36a29c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
app.get('/opensea/tokens/:id', function (req, res) {
res.json(
{
"attributes": [{
"trait_type": "base",
"value": "A"
}, {
"trait_type": "rarity",
"value": 5
}, {
"display_type": "resouce_number",
"value": 10
}, {
"display_type": "resouce_percentage",
"value": 5
}, {
"display_type": "number",
"trait_type": "generation",
"value": 1
}],
"description": "find new planet",
"external_url": "http://planettravelers.net/planets/1",
"image": "http://planettravelers.net/planet_img_001.png",
"name": "CAB3X"
}
);
});
pragma solidity ^0.4.24;
//import 'openzeppelin-solidity/contracts/token/ERC721/ERC721Token.sol';
//import 'openzeppelin-solidity/contracts/ownership/Ownable.sol';
import "./ERC721Token.sol";
import "./Ownable.sol";
import "./Strings.sol";
/**
* @title Creature
* OpenSea Creature - a contract for a non-fungible creature.
*/
contract PlanetToken is ERC721Token, Ownable {
address proxyRegistryAddress;
constructor(address _proxyRegistryAddress) ERC721Token("PlanetToken", "PLT") public {
proxyRegistryAddress = _proxyRegistryAddress;
}
function mint(address _to, uint256 _tokenId) public {
super._mint(_to, _tokenId);
}
/**
* @dev Returns an URI for a given token ID
*/
function tokenURI(uint256 _tokenId) public view returns (string) {
return Strings.strConcat(
baseTokenURI(),
Strings.uint2str(_tokenId)
);
}
function baseTokenURI() public view returns (string) {
return "http://planettravelers.net/opensea/tokens/";
}
/**
* Override isApprovedForAll to whitelist user's OpenSea proxy accounts to enable gas-less listings.
*/
function isApprovedForAll(
address owner,
address operator
)
public
view
returns (bool)
{
// Whitelist OpenSea proxy contract for easy trading.
ProxyRegistry proxyRegistry = ProxyRegistry(proxyRegistryAddress);
if (proxyRegistry.proxies(owner) == operator) {
return true;
}
return super.isApprovedForAll(owner, operator);
}
}
contract OwnableDelegateProxy { }
contract ProxyRegistry {
mapping(address => OwnableDelegateProxy) public proxies;
}
htps : // 기주 b. 코 m/P로지ぇc와 펜세아/오펜세아-c레아트레 s/bぉb/마s r/미g라치온 s/2_로 pぉy_안 t등 cts. js#L7-L12
4. 접근하기
(예) htps : // 링케 by. 오세아. 이오 / 아세 ts / 안 t 등 ct_ 아 d s / 토켄_ 이 d
cache를 지우려면? force_update = true를 붙입니다.
기타 샘플 htps : // 링케 by. 오세아. 이오 / 아세 ts / 0x9368672605133f7841024에서 8c67295b236b62b / 3
htps : // / cs. 오세아. 이오 / 레후 렌세 # 레 t 리에 ゔ ぃ
5.매매를 시도해 보기
FixedPrice,Auction,Bundle 중에서 판매 방법을 선택할 수 있습니다.
6.store top 만들기
아이템이 속한 서비스의 top 화면을 준비할 수 있습니다.
작성 방법은 token이 관리되는 contract를 입력하고 top에 표시되는 이미지를 설정하는 것만으로 작성할 수 있습니다.
Create 화면
설명
htps // 링케 by. 오세아. 이오 / 게 t ぃ s d / s t p와 ぉ
7. 병아리를 사용하여 우선 시도하고 싶은 경우의 최단 단계.
//nodeのversionを決める
$ nodebrew use v9.11.1
$ git clone https://github.com/ProjectOpenSea/opensea-creatures
$ cd opensea-creatures
//open-zippelinをinstallする
$ npm install
//remixdを立ち上げ
$ remixd -s ./ --remix-ide https://remix.ethereum.org
//deployとmintを行う。
//mint時のproxyRegistoryAddressはこちらを参照(networkによって異なる)
//https://docs.opensea.io/discuss/5d4a942564beec007431f1af
deploy.TradeableERC721Token
"AAA","AAA","0xf57b2c51ded3a29e6891aba85459d600256cf317"
//openseaを開く
https://rinkeby.opensea.io/assets/コントラクトのアドレス/1?force_update=true
Reference
이 문제에 관하여(자작의 ERC721Token을 OpenSea에 대응시킨다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/oggata/items/99b496cb0118df36a29c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
FixedPrice,Auction,Bundle 중에서 판매 방법을 선택할 수 있습니다.
6.store top 만들기
아이템이 속한 서비스의 top 화면을 준비할 수 있습니다.
작성 방법은 token이 관리되는 contract를 입력하고 top에 표시되는 이미지를 설정하는 것만으로 작성할 수 있습니다.
Create 화면
설명
htps // 링케 by. 오세아. 이오 / 게 t ぃ s d / s t p와 ぉ
7. 병아리를 사용하여 우선 시도하고 싶은 경우의 최단 단계.
//nodeのversionを決める
$ nodebrew use v9.11.1
$ git clone https://github.com/ProjectOpenSea/opensea-creatures
$ cd opensea-creatures
//open-zippelinをinstallする
$ npm install
//remixdを立ち上げ
$ remixd -s ./ --remix-ide https://remix.ethereum.org
//deployとmintを行う。
//mint時のproxyRegistoryAddressはこちらを参照(networkによって異なる)
//https://docs.opensea.io/discuss/5d4a942564beec007431f1af
deploy.TradeableERC721Token
"AAA","AAA","0xf57b2c51ded3a29e6891aba85459d600256cf317"
//openseaを開く
https://rinkeby.opensea.io/assets/コントラクトのアドレス/1?force_update=true
Reference
이 문제에 관하여(자작의 ERC721Token을 OpenSea에 대응시킨다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/oggata/items/99b496cb0118df36a29c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
//nodeのversionを決める
$ nodebrew use v9.11.1
$ git clone https://github.com/ProjectOpenSea/opensea-creatures
$ cd opensea-creatures
//open-zippelinをinstallする
$ npm install
//remixdを立ち上げ
$ remixd -s ./ --remix-ide https://remix.ethereum.org
//deployとmintを行う。
//mint時のproxyRegistoryAddressはこちらを参照(networkによって異なる)
//https://docs.opensea.io/discuss/5d4a942564beec007431f1af
deploy.TradeableERC721Token
"AAA","AAA","0xf57b2c51ded3a29e6891aba85459d600256cf317"
//openseaを開く
https://rinkeby.opensea.io/assets/コントラクトのアドレス/1?force_update=true
Reference
이 문제에 관하여(자작의 ERC721Token을 OpenSea에 대응시킨다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/oggata/items/99b496cb0118df36a29c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)