Repository files navigation

Build Status

NftmakerApi

A Ruby client for the https://nft-maker.io/pro API.

It aims to support all API methods. The intuitive query methods allow to easily call the API endpoints.

Installation

Add this line to your application's Gemfile:

gem'nftmaker_api'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install nftmaker_api

Configuration

The configuration options can be set by using the configure block

NftmakerApi.configuredo |config|
config.api_key=ENV.fetch('NFT_MAKER_PRO_API_KEY')end

Alternatively, you can configure the settings by passing a hash of options to an instance like so

client=NftmakerApi.newapi_key: "xyz",http_adapter: :typhoeus

The following is the list of available configuration options

api_key# The API key provided by nft-maker.iohttp_adapter# The http client used for performing requests. Default :net_httphost# The API endpoint. Default: https://api.nft-maker.io

1 Usage

To start using the gem, you first create a new client instance

client=NftmakerApi.new

and then you call the methods for the API endpoints.

1.1 Endpoints

List all projects

client.projects.list

Show metrics for a project

client.project(1634).metrics

List all NFTs for a project

client.project(1634).nfts.list# allclient.project(1634).nfts.sold# only soldclient.project(1634).nfts.free# only freeclient.project(1634).nfts.reserved# only reserved

Create NFTS for a project

Please note: The API expects metadata variables to be passed with the files even though they're not only applied within the scope of the files. By passing variables with the preview image you can also replace placeholders unrelated to the image.

vars={custom_name: "StarTrek Series #1",creature: "Vulcan",traits: "pointed ears, green blood, slanted eyebrows"}thumbnail=NftmakerApi::NftFile.new(url: "https://xyz.com/thumbnail.png",variables: vars,mime_type: "image/png")highres_1=NftmakerApi::NftFile.new(url: "https://xyz.com/highres_1.png",mime_type: "image/png")highres_2=NftmakerApi::NftFile.new(url: "https://xyz.com/highres_2.png",mime_type: "image/png")client.project(1634).nfts.create(asset_name: "StarTrek01",preview_file: thumbnail,files: [highres_file_1,highres_file_2])# This results in following metadata{"721": {"a0a7f00ccd9344d15ca0c7eb22c326979f7d65690266afcb128332db": {"StarTrek01": {"name": "StarTrek Series #1","image": "ifps://xyzThumbnail","mediaType": "image/png","creature": "Vulcan","traits": "pointed ears, green blood, slanted eyebrows","files": [{"name": "StarTrek Series #1","mediaType": "image/png","src": "ipfs://xyzHighres1"},{"name": "StarTrek Series #1","mediaType": "image/png","src": "ipfs://xyzHighres2"}]}},"version": "1.0"}}

Create a new project

client.projects.create(name: "Foo",policy_expires: true,policy_locks_at: Time.now.advance(months: 6),address_expires_in: 10)

Reserve NFT(s) from a project

client.project(1634).reservations.create(nft_count: 1,lovelace: 10_000000)# Reserve a random NFTclient.project(1634).reservations.create(nft_id: 123,nft_count: 1,lovelace: 10_000000)# Reserve a specific NFT

Check / Cancel a reservation

client.project(1634).reservation("addr1...").checkclient.project(1634).reservation("addr1...").cancel

2 Response Handling

Responses are wrapped into a NftmakerApi::Response object. The main reason is to allow direct access to the parsed JSON response body.

Sidenote: The JSON body is parsed using Oj which is a C implementation, hence much faster than JSON from Ruby's Standard Library.

client.projects.list.to_h# => [{"id"=>123, "projectname" => "Foo", ...}, ...]

Access the original faraday response object

client.projects.list.original_response

2.1 Errors

Check if the request was successful or returned an error

client.projects.list.success?client.projects.list.error?

Response errors are always NftmakerApi::Error objects.

client.projects.list.error

Show error message including status code, status phrase and the actual error message from the API

client.projects.list.error.full_message

Show status code

client.projects.list.error.status

Show error message returned from the API

client.projects.list.error.reason

3 Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/lacepool/nftmaker_api. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

4 License

The gem is available as open source under the terms of the MIT License.

About

Ruby client for nft-maker.io PRO API

Resources

Stars

2 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Build Status

NftmakerApi

A Ruby client for the https://nft-maker.io/pro API.

It aims to support all API methods. The intuitive query methods allow to easily call the API endpoints.

Installation

Add this line to your application's Gemfile:

gem'nftmaker_api'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install nftmaker_api

Configuration

The configuration options can be set by using the configure block

NftmakerApi.configuredo |config|
config.api_key=ENV.fetch('NFT_MAKER_PRO_API_KEY')end

Alternatively, you can configure the settings by passing a hash of options to an instance like so

client=NftmakerApi.newapi_key: "xyz",http_adapter: :typhoeus

The following is the list of available configuration options

api_key# The API key provided by nft-maker.iohttp_adapter# The http client used for performing requests. Default :net_httphost# The API endpoint. Default: https://api.nft-maker.io

1 Usage

To start using the gem, you first create a new client instance

client=NftmakerApi.new

and then you call the methods for the API endpoints.

1.1 Endpoints

List all projects

client.projects.list

Show metrics for a project

client.project(1634).metrics

List all NFTs for a project

client.project(1634).nfts.list# allclient.project(1634).nfts.sold# only soldclient.project(1634).nfts.free# only freeclient.project(1634).nfts.reserved# only reserved

Create NFTS for a project

Please note: The API expects metadata variables to be passed with the files even though they're not only applied within the scope of the files. By passing variables with the preview image you can also replace placeholders unrelated to the image.

vars={custom_name: "StarTrek Series #1",creature: "Vulcan",traits: "pointed ears, green blood, slanted eyebrows"}thumbnail=NftmakerApi::NftFile.new(url: "https://xyz.com/thumbnail.png",variables: vars,mime_type: "image/png")highres_1=NftmakerApi::NftFile.new(url: "https://xyz.com/highres_1.png",mime_type: "image/png")highres_2=NftmakerApi::NftFile.new(url: "https://xyz.com/highres_2.png",mime_type: "image/png")client.project(1634).nfts.create(asset_name: "StarTrek01",preview_file: thumbnail,files: [highres_file_1,highres_file_2])# This results in following metadata{"721": {"a0a7f00ccd9344d15ca0c7eb22c326979f7d65690266afcb128332db": {"StarTrek01": {"name": "StarTrek Series #1","image": "ifps://xyzThumbnail","mediaType": "image/png","creature": "Vulcan","traits": "pointed ears, green blood, slanted eyebrows","files": [{"name": "StarTrek Series #1","mediaType": "image/png","src": "ipfs://xyzHighres1"},{"name": "StarTrek Series #1","mediaType": "image/png","src": "ipfs://xyzHighres2"}]}},"version": "1.0"}}

Create a new project

client.projects.create(name: "Foo",policy_expires: true,policy_locks_at: Time.now.advance(months: 6),address_expires_in: 10)

Reserve NFT(s) from a project

client.project(1634).reservations.create(nft_count: 1,lovelace: 10_000000)# Reserve a random NFTclient.project(1634).reservations.create(nft_id: 123,nft_count: 1,lovelace: 10_000000)# Reserve a specific NFT

Check / Cancel a reservation

client.project(1634).reservation("addr1...").checkclient.project(1634).reservation("addr1...").cancel

2 Response Handling

Responses are wrapped into a NftmakerApi::Response object. The main reason is to allow direct access to the parsed JSON response body.

Sidenote: The JSON body is parsed using Oj which is a C implementation, hence much faster than JSON from Ruby's Standard Library.

client.projects.list.to_h# => [{"id"=>123, "projectname" => "Foo", ...}, ...]

Access the original faraday response object

client.projects.list.original_response

2.1 Errors

Check if the request was successful or returned an error

client.projects.list.success?client.projects.list.error?

Response errors are always NftmakerApi::Error objects.

client.projects.list.error

Show error message including status code, status phrase and the actual error message from the API

client.projects.list.error.full_message

Show status code

client.projects.list.error.status

Show error message returned from the API

client.projects.list.error.reason

3 Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/lacepool/nftmaker_api. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

4 License

The gem is available as open source under the terms of the MIT License.

About

Ruby client for nft-maker.io PRO API

Resources

Stars

2 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Build Status

NftmakerApi

A Ruby client for the https://nft-maker.io/pro API.

It aims to support all API methods. The intuitive query methods allow to easily call the API endpoints.

Installation

Add this line to your application's Gemfile:

gem'nftmaker_api'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install nftmaker_api

Configuration

The configuration options can be set by using the configure block

NftmakerApi.configuredo |config|
config.api_key=ENV.fetch('NFT_MAKER_PRO_API_KEY')end

Alternatively, you can configure the settings by passing a hash of options to an instance like so

client=NftmakerApi.newapi_key: "xyz",http_adapter: :typhoeus

The following is the list of available configuration options

api_key# The API key provided by nft-maker.iohttp_adapter# The http client used for performing requests. Default :net_httphost# The API endpoint. Default: https://api.nft-maker.io

1 Usage

To start using the gem, you first create a new client instance

client=NftmakerApi.new

and then you call the methods for the API endpoints.

1.1 Endpoints

List all projects

client.projects.list

Show metrics for a project

client.project(1634).metrics

List all NFTs for a project

client.project(1634).nfts.list# allclient.project(1634).nfts.sold# only soldclient.project(1634).nfts.free# only freeclient.project(1634).nfts.reserved# only reserved

Create NFTS for a project

Please note: The API expects metadata variables to be passed with the files even though they're not only applied within the scope of the files. By passing variables with the preview image you can also replace placeholders unrelated to the image.

vars={custom_name: "StarTrek Series #1",creature: "Vulcan",traits: "pointed ears, green blood, slanted eyebrows"}thumbnail=NftmakerApi::NftFile.new(url: "https://xyz.com/thumbnail.png",variables: vars,mime_type: "image/png")highres_1=NftmakerApi::NftFile.new(url: "https://xyz.com/highres_1.png",mime_type: "image/png")highres_2=NftmakerApi::NftFile.new(url: "https://xyz.com/highres_2.png",mime_type: "image/png")client.project(1634).nfts.create(asset_name: "StarTrek01",preview_file: thumbnail,files: [highres_file_1,highres_file_2])# This results in following metadata{"721": {"a0a7f00ccd9344d15ca0c7eb22c326979f7d65690266afcb128332db": {"StarTrek01": {"name": "StarTrek Series #1","image": "ifps://xyzThumbnail","mediaType": "image/png","creature": "Vulcan","traits": "pointed ears, green blood, slanted eyebrows","files": [{"name": "StarTrek Series #1","mediaType": "image/png","src": "ipfs://xyzHighres1"},{"name": "StarTrek Series #1","mediaType": "image/png","src": "ipfs://xyzHighres2"}]}},"version": "1.0"}}

Create a new project

client.projects.create(name: "Foo",policy_expires: true,policy_locks_at: Time.now.advance(months: 6),address_expires_in: 10)

Reserve NFT(s) from a project

client.project(1634).reservations.create(nft_count: 1,lovelace: 10_000000)# Reserve a random NFTclient.project(1634).reservations.create(nft_id: 123,nft_count: 1,lovelace: 10_000000)# Reserve a specific NFT

Check / Cancel a reservation

client.project(1634).reservation("addr1...").checkclient.project(1634).reservation("addr1...").cancel

2 Response Handling

Responses are wrapped into a NftmakerApi::Response object. The main reason is to allow direct access to the parsed JSON response body.

Sidenote: The JSON body is parsed using Oj which is a C implementation, hence much faster than JSON from Ruby's Standard Library.

client.projects.list.to_h# => [{"id"=>123, "projectname" => "Foo", ...}, ...]

Access the original faraday response object

client.projects.list.original_response

2.1 Errors

Check if the request was successful or returned an error

client.projects.list.success?client.projects.list.error?

Response errors are always NftmakerApi::Error objects.

client.projects.list.error

Show error message including status code, status phrase and the actual error message from the API

client.projects.list.error.full_message

Show status code

client.projects.list.error.status

Show error message returned from the API

client.projects.list.error.reason

3 Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/lacepool/nftmaker_api. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

4 License

The gem is available as open source under the terms of the MIT License.

About

Ruby client for nft-maker.io PRO API

Resources

Stars

2 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Build Status

NftmakerApi

A Ruby client for the https://nft-maker.io/pro API.

It aims to support all API methods. The intuitive query methods allow to easily call the API endpoints.

Installation

Add this line to your application's Gemfile:

gem'nftmaker_api'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install nftmaker_api

Configuration

The configuration options can be set by using the configure block

NftmakerApi.configuredo |config|
config.api_key=ENV.fetch('NFT_MAKER_PRO_API_KEY')end

Alternatively, you can configure the settings by passing a hash of options to an instance like so

client=NftmakerApi.newapi_key: "xyz",http_adapter: :typhoeus

The following is the list of available configuration options

api_key# The API key provided by nft-maker.iohttp_adapter# The http client used for performing requests. Default :net_httphost# The API endpoint. Default: https://api.nft-maker.io

1 Usage

To start using the gem, you first create a new client instance

client=NftmakerApi.new

and then you call the methods for the API endpoints.

1.1 Endpoints

List all projects

client.projects.list

Show metrics for a project

client.project(1634).metrics

List all NFTs for a project

client.project(1634).nfts.list# allclient.project(1634).nfts.sold# only soldclient.project(1634).nfts.free# only freeclient.project(1634).nfts.reserved# only reserved

Create NFTS for a project

Please note: The API expects metadata variables to be passed with the files even though they're not only applied within the scope of the files. By passing variables with the preview image you can also replace placeholders unrelated to the image.

vars={custom_name: "StarTrek Series #1",creature: "Vulcan",traits: "pointed ears, green blood, slanted eyebrows"}thumbnail=NftmakerApi::NftFile.new(url: "https://xyz.com/thumbnail.png",variables: vars,mime_type: "image/png")highres_1=NftmakerApi::NftFile.new(url: "https://xyz.com/highres_1.png",mime_type: "image/png")highres_2=NftmakerApi::NftFile.new(url: "https://xyz.com/highres_2.png",mime_type: "image/png")client.project(1634).nfts.create(asset_name: "StarTrek01",preview_file: thumbnail,files: [highres_file_1,highres_file_2])# This results in following metadata{"721": {"a0a7f00ccd9344d15ca0c7eb22c326979f7d65690266afcb128332db": {"StarTrek01": {"name": "StarTrek Series #1","image": "ifps://xyzThumbnail","mediaType": "image/png","creature": "Vulcan","traits": "pointed ears, green blood, slanted eyebrows","files": [{"name": "StarTrek Series #1","mediaType": "image/png","src": "ipfs://xyzHighres1"},{"name": "StarTrek Series #1","mediaType": "image/png","src": "ipfs://xyzHighres2"}]}},"version": "1.0"}}

Create a new project

client.projects.create(name: "Foo",policy_expires: true,policy_locks_at: Time.now.advance(months: 6),address_expires_in: 10)

Reserve NFT(s) from a project

client.project(1634).reservations.create(nft_count: 1,lovelace: 10_000000)# Reserve a random NFTclient.project(1634).reservations.create(nft_id: 123,nft_count: 1,lovelace: 10_000000)# Reserve a specific NFT

Check / Cancel a reservation

client.project(1634).reservation("addr1...").checkclient.project(1634).reservation("addr1...").cancel

2 Response Handling

Responses are wrapped into a NftmakerApi::Response object. The main reason is to allow direct access to the parsed JSON response body.

Sidenote: The JSON body is parsed using Oj which is a C implementation, hence much faster than JSON from Ruby's Standard Library.

client.projects.list.to_h# => [{"id"=>123, "projectname" => "Foo", ...}, ...]

Access the original faraday response object

client.projects.list.original_response

2.1 Errors

Check if the request was successful or returned an error

client.projects.list.success?client.projects.list.error?

Response errors are always NftmakerApi::Error objects.

client.projects.list.error

Show error message including status code, status phrase and the actual error message from the API

client.projects.list.error.full_message

Show status code

client.projects.list.error.status

Show error message returned from the API

client.projects.list.error.reason

3 Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/lacepool/nftmaker_api. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

4 License

The gem is available as open source under the terms of the MIT License.

About

Ruby client for nft-maker.io PRO API

Resources

Stars

2 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Build Status

NftmakerApi

A Ruby client for the https://nft-maker.io/pro API.

It aims to support all API methods. The intuitive query methods allow to easily call the API endpoints.

Installation

Add this line to your application's Gemfile:

gem'nftmaker_api'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install nftmaker_api

Configuration

The configuration options can be set by using the configure block

NftmakerApi.configuredo |config|
config.api_key=ENV.fetch('NFT_MAKER_PRO_API_KEY')end

Alternatively, you can configure the settings by passing a hash of options to an instance like so

client=NftmakerApi.newapi_key: "xyz",http_adapter: :typhoeus

The following is the list of available configuration options

api_key# The API key provided by nft-maker.iohttp_adapter# The http client used for performing requests. Default :net_httphost# The API endpoint. Default: https://api.nft-maker.io

1 Usage

To start using the gem, you first create a new client instance

client=NftmakerApi.new

and then you call the methods for the API endpoints.

1.1 Endpoints

List all projects

client.projects.list

Show metrics for a project

client.project(1634).metrics

List all NFTs for a project

client.project(1634).nfts.list# allclient.project(1634).nfts.sold# only soldclient.project(1634).nfts.free# only freeclient.project(1634).nfts.reserved# only reserved

Create NFTS for a project

Please note: The API expects metadata variables to be passed with the files even though they're not only applied within the scope of the files. By passing variables with the preview image you can also replace placeholders unrelated to the image.

vars={custom_name: "StarTrek Series #1",creature: "Vulcan",traits: "pointed ears, green blood, slanted eyebrows"}thumbnail=NftmakerApi::NftFile.new(url: "https://xyz.com/thumbnail.png",variables: vars,mime_type: "image/png")highres_1=NftmakerApi::NftFile.new(url: "https://xyz.com/highres_1.png",mime_type: "image/png")highres_2=NftmakerApi::NftFile.new(url: "https://xyz.com/highres_2.png",mime_type: "image/png")client.project(1634).nfts.create(asset_name: "StarTrek01",preview_file: thumbnail,files: [highres_file_1,highres_file_2])# This results in following metadata{"721": {"a0a7f00ccd9344d15ca0c7eb22c326979f7d65690266afcb128332db": {"StarTrek01": {"name": "StarTrek Series #1","image": "ifps://xyzThumbnail","mediaType": "image/png","creature": "Vulcan","traits": "pointed ears, green blood, slanted eyebrows","files": [{"name": "StarTrek Series #1","mediaType": "image/png","src": "ipfs://xyzHighres1"},{"name": "StarTrek Series #1","mediaType": "image/png","src": "ipfs://xyzHighres2"}]}},"version": "1.0"}}

Create a new project

client.projects.create(name: "Foo",policy_expires: true,policy_locks_at: Time.now.advance(months: 6),address_expires_in: 10)

Reserve NFT(s) from a project

client.project(1634).reservations.create(nft_count: 1,lovelace: 10_000000)# Reserve a random NFTclient.project(1634).reservations.create(nft_id: 123,nft_count: 1,lovelace: 10_000000)# Reserve a specific NFT

Check / Cancel a reservation

client.project(1634).reservation("addr1...").checkclient.project(1634).reservation("addr1...").cancel

2 Response Handling

Responses are wrapped into a NftmakerApi::Response object. The main reason is to allow direct access to the parsed JSON response body.

Sidenote: The JSON body is parsed using Oj which is a C implementation, hence much faster than JSON from Ruby's Standard Library.

client.projects.list.to_h# => [{"id"=>123, "projectname" => "Foo", ...}, ...]

Access the original faraday response object

client.projects.list.original_response

2.1 Errors

Check if the request was successful or returned an error

client.projects.list.success?client.projects.list.error?

Response errors are always NftmakerApi::Error objects.

client.projects.list.error

Show error message including status code, status phrase and the actual error message from the API

client.projects.list.error.full_message

Show status code

client.projects.list.error.status

Show error message returned from the API

client.projects.list.error.reason

3 Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/lacepool/nftmaker_api. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

4 License

The gem is available as open source under the terms of the MIT License.

About

Ruby client for nft-maker.io PRO API

Resources

Stars

2 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Build Status

NftmakerApi

A Ruby client for the https://nft-maker.io/pro API.

It aims to support all API methods. The intuitive query methods allow to easily call the API endpoints.

Installation

Add this line to your application's Gemfile:

gem'nftmaker_api'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install nftmaker_api

Configuration

The configuration options can be set by using the configure block

NftmakerApi.configuredo |config|
config.api_key=ENV.fetch('NFT_MAKER_PRO_API_KEY')end

Alternatively, you can configure the settings by passing a hash of options to an instance like so

client=NftmakerApi.newapi_key: "xyz",http_adapter: :typhoeus

The following is the list of available configuration options

api_key# The API key provided by nft-maker.iohttp_adapter# The http client used for performing requests. Default :net_httphost# The API endpoint. Default: https://api.nft-maker.io

1 Usage

To start using the gem, you first create a new client instance

client=NftmakerApi.new

and then you call the methods for the API endpoints.

1.1 Endpoints

List all projects

client.projects.list

Show metrics for a project

client.project(1634).metrics

List all NFTs for a project

client.project(1634).nfts.list# allclient.project(1634).nfts.sold# only soldclient.project(1634).nfts.free# only freeclient.project(1634).nfts.reserved# only reserved

Create NFTS for a project

Please note: The API expects metadata variables to be passed with the files even though they're not only applied within the scope of the files. By passing variables with the preview image you can also replace placeholders unrelated to the image.

vars={custom_name: "StarTrek Series #1",creature: "Vulcan",traits: "pointed ears, green blood, slanted eyebrows"}thumbnail=NftmakerApi::NftFile.new(url: "https://xyz.com/thumbnail.png",variables: vars,mime_type: "image/png")highres_1=NftmakerApi::NftFile.new(url: "https://xyz.com/highres_1.png",mime_type: "image/png")highres_2=NftmakerApi::NftFile.new(url: "https://xyz.com/highres_2.png",mime_type: "image/png")client.project(1634).nfts.create(asset_name: "StarTrek01",preview_file: thumbnail,files: [highres_file_1,highres_file_2])# This results in following metadata{"721": {"a0a7f00ccd9344d15ca0c7eb22c326979f7d65690266afcb128332db": {"StarTrek01": {"name": "StarTrek Series #1","image": "ifps://xyzThumbnail","mediaType": "image/png","creature": "Vulcan","traits": "pointed ears, green blood, slanted eyebrows","files": [{"name": "StarTrek Series #1","mediaType": "image/png","src": "ipfs://xyzHighres1"},{"name": "StarTrek Series #1","mediaType": "image/png","src": "ipfs://xyzHighres2"}]}},"version": "1.0"}}

Create a new project

client.projects.create(name: "Foo",policy_expires: true,policy_locks_at: Time.now.advance(months: 6),address_expires_in: 10)

Reserve NFT(s) from a project

client.project(1634).reservations.create(nft_count: 1,lovelace: 10_000000)# Reserve a random NFTclient.project(1634).reservations.create(nft_id: 123,nft_count: 1,lovelace: 10_000000)# Reserve a specific NFT

Check / Cancel a reservation

client.project(1634).reservation("addr1...").checkclient.project(1634).reservation("addr1...").cancel

2 Response Handling

Responses are wrapped into a NftmakerApi::Response object. The main reason is to allow direct access to the parsed JSON response body.

Sidenote: The JSON body is parsed using Oj which is a C implementation, hence much faster than JSON from Ruby's Standard Library.

client.projects.list.to_h# => [{"id"=>123, "projectname" => "Foo", ...}, ...]

Access the original faraday response object

client.projects.list.original_response

2.1 Errors

Check if the request was successful or returned an error

client.projects.list.success?client.projects.list.error?

Response errors are always NftmakerApi::Error objects.

client.projects.list.error

Show error message including status code, status phrase and the actual error message from the API

client.projects.list.error.full_message

Show status code

client.projects.list.error.status

Show error message returned from the API

client.projects.list.error.reason

3 Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/lacepool/nftmaker_api. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

4 License

The gem is available as open source under the terms of the MIT License.

About

Ruby client for nft-maker.io PRO API

Resources

Stars

2 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Build Status

NftmakerApi

A Ruby client for the https://nft-maker.io/pro API.

It aims to support all API methods. The intuitive query methods allow to easily call the API endpoints.

Installation

Add this line to your application's Gemfile:

gem'nftmaker_api'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install nftmaker_api

Configuration

The configuration options can be set by using the configure block

NftmakerApi.configuredo |config|
config.api_key=ENV.fetch('NFT_MAKER_PRO_API_KEY')end

Alternatively, you can configure the settings by passing a hash of options to an instance like so

client=NftmakerApi.newapi_key: "xyz",http_adapter: :typhoeus

The following is the list of available configuration options

api_key# The API key provided by nft-maker.iohttp_adapter# The http client used for performing requests. Default :net_httphost# The API endpoint. Default: https://api.nft-maker.io

1 Usage

To start using the gem, you first create a new client instance

client=NftmakerApi.new

and then you call the methods for the API endpoints.

1.1 Endpoints

List all projects

client.projects.list

Show metrics for a project

client.project(1634).metrics

List all NFTs for a project

client.project(1634).nfts.list# allclient.project(1634).nfts.sold# only soldclient.project(1634).nfts.free# only freeclient.project(1634).nfts.reserved# only reserved

Create NFTS for a project

Please note: The API expects metadata variables to be passed with the files even though they're not only applied within the scope of the files. By passing variables with the preview image you can also replace placeholders unrelated to the image.

vars={custom_name: "StarTrek Series #1",creature: "Vulcan",traits: "pointed ears, green blood, slanted eyebrows"}thumbnail=NftmakerApi::NftFile.new(url: "https://xyz.com/thumbnail.png",variables: vars,mime_type: "image/png")highres_1=NftmakerApi::NftFile.new(url: "https://xyz.com/highres_1.png",mime_type: "image/png")highres_2=NftmakerApi::NftFile.new(url: "https://xyz.com/highres_2.png",mime_type: "image/png")client.project(1634).nfts.create(asset_name: "StarTrek01",preview_file: thumbnail,files: [highres_file_1,highres_file_2])# This results in following metadata{"721": {"a0a7f00ccd9344d15ca0c7eb22c326979f7d65690266afcb128332db": {"StarTrek01": {"name": "StarTrek Series #1","image": "ifps://xyzThumbnail","mediaType": "image/png","creature": "Vulcan","traits": "pointed ears, green blood, slanted eyebrows","files": [{"name": "StarTrek Series #1","mediaType": "image/png","src": "ipfs://xyzHighres1"},{"name": "StarTrek Series #1","mediaType": "image/png","src": "ipfs://xyzHighres2"}]}},"version": "1.0"}}

Create a new project

client.projects.create(name: "Foo",policy_expires: true,policy_locks_at: Time.now.advance(months: 6),address_expires_in: 10)

Reserve NFT(s) from a project

client.project(1634).reservations.create(nft_count: 1,lovelace: 10_000000)# Reserve a random NFTclient.project(1634).reservations.create(nft_id: 123,nft_count: 1,lovelace: 10_000000)# Reserve a specific NFT

Check / Cancel a reservation

client.project(1634).reservation("addr1...").checkclient.project(1634).reservation("addr1...").cancel

2 Response Handling

Responses are wrapped into a NftmakerApi::Response object. The main reason is to allow direct access to the parsed JSON response body.

Sidenote: The JSON body is parsed using Oj which is a C implementation, hence much faster than JSON from Ruby's Standard Library.

client.projects.list.to_h# => [{"id"=>123, "projectname" => "Foo", ...}, ...]

Access the original faraday response object

client.projects.list.original_response

2.1 Errors

Check if the request was successful or returned an error

client.projects.list.success?client.projects.list.error?

Response errors are always NftmakerApi::Error objects.

client.projects.list.error

Show error message including status code, status phrase and the actual error message from the API

client.projects.list.error.full_message

Show status code

client.projects.list.error.status

Show error message returned from the API

client.projects.list.error.reason

3 Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/lacepool/nftmaker_api. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

4 License

The gem is available as open source under the terms of the MIT License.

About

Ruby client for nft-maker.io PRO API

Resources

Stars

2 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Build Status

NftmakerApi

A Ruby client for the https://nft-maker.io/pro API.

It aims to support all API methods. The intuitive query methods allow to easily call the API endpoints.

Installation

Add this line to your application's Gemfile:

gem'nftmaker_api'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install nftmaker_api

Configuration

The configuration options can be set by using the configure block

NftmakerApi.configuredo |config|
config.api_key=ENV.fetch('NFT_MAKER_PRO_API_KEY')end

Alternatively, you can configure the settings by passing a hash of options to an instance like so

client=NftmakerApi.newapi_key: "xyz",http_adapter: :typhoeus

The following is the list of available configuration options

api_key# The API key provided by nft-maker.iohttp_adapter# The http client used for performing requests. Default :net_httphost# The API endpoint. Default: https://api.nft-maker.io

1 Usage

To start using the gem, you first create a new client instance

client=NftmakerApi.new

and then you call the methods for the API endpoints.

1.1 Endpoints

List all projects

client.projects.list

Show metrics for a project

client.project(1634).metrics

List all NFTs for a project

client.project(1634).nfts.list# allclient.project(1634).nfts.sold# only soldclient.project(1634).nfts.free# only freeclient.project(1634).nfts.reserved# only reserved

Create NFTS for a project

Please note: The API expects metadata variables to be passed with the files even though they're not only applied within the scope of the files. By passing variables with the preview image you can also replace placeholders unrelated to the image.

vars={custom_name: "StarTrek Series #1",creature: "Vulcan",traits: "pointed ears, green blood, slanted eyebrows"}thumbnail=NftmakerApi::NftFile.new(url: "https://xyz.com/thumbnail.png",variables: vars,mime_type: "image/png")highres_1=NftmakerApi::NftFile.new(url: "https://xyz.com/highres_1.png",mime_type: "image/png")highres_2=NftmakerApi::NftFile.new(url: "https://xyz.com/highres_2.png",mime_type: "image/png")client.project(1634).nfts.create(asset_name: "StarTrek01",preview_file: thumbnail,files: [highres_file_1,highres_file_2])# This results in following metadata{"721": {"a0a7f00ccd9344d15ca0c7eb22c326979f7d65690266afcb128332db": {"StarTrek01": {"name": "StarTrek Series #1","image": "ifps://xyzThumbnail","mediaType": "image/png","creature": "Vulcan","traits": "pointed ears, green blood, slanted eyebrows","files": [{"name": "StarTrek Series #1","mediaType": "image/png","src": "ipfs://xyzHighres1"},{"name": "StarTrek Series #1","mediaType": "image/png","src": "ipfs://xyzHighres2"}]}},"version": "1.0"}}

Create a new project

client.projects.create(name: "Foo",policy_expires: true,policy_locks_at: Time.now.advance(months: 6),address_expires_in: 10)

Reserve NFT(s) from a project

client.project(1634).reservations.create(nft_count: 1,lovelace: 10_000000)# Reserve a random NFTclient.project(1634).reservations.create(nft_id: 123,nft_count: 1,lovelace: 10_000000)# Reserve a specific NFT

Check / Cancel a reservation

client.project(1634).reservation("addr1...").checkclient.project(1634).reservation("addr1...").cancel

2 Response Handling

Responses are wrapped into a NftmakerApi::Response object. The main reason is to allow direct access to the parsed JSON response body.

Sidenote: The JSON body is parsed using Oj which is a C implementation, hence much faster than JSON from Ruby's Standard Library.

client.projects.list.to_h# => [{"id"=>123, "projectname" => "Foo", ...}, ...]

Access the original faraday response object

client.projects.list.original_response

2.1 Errors

Check if the request was successful or returned an error

client.projects.list.success?client.projects.list.error?

Response errors are always NftmakerApi::Error objects.

client.projects.list.error

Show error message including status code, status phrase and the actual error message from the API

client.projects.list.error.full_message

Show status code

client.projects.list.error.status

Show error message returned from the API

client.projects.list.error.reason

3 Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/lacepool/nftmaker_api. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

4 License

The gem is available as open source under the terms of the MIT License.

About

Ruby client for nft-maker.io PRO API

Resources

Stars

2 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages