All Projects → nftstorage → nft.storage

nftstorage / nft.storage

Licence: other
😋 Free decentralized storage and bandwidth for NFTs on IPFS and Filecoin.

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
typescript
32286 projects
PLpgSQL
1095 projects
shell
77523 projects
HTML
75241 projects

Projects that are alternatives of or similar to nft.storage

nft-website
NFT School: Community education platform for developers in the non-fungible token space.
Stars: ✭ 260 (-15.86%)
Mutual labels:  ipfs, nft, filecoin
estuary
A custom IPFS/Filecoin node that makes it easy to pin IPFS content and make Filecoin deals.
Stars: ✭ 195 (-36.89%)
Mutual labels:  storage, ipfs, filecoin
kotal
Blockchain Kubernetes Operator
Stars: ✭ 137 (-55.66%)
Mutual labels:  ipfs, filecoin
js-coalaip
Javascript implementation for COALA IP
Stars: ✭ 18 (-94.17%)
Mutual labels:  metadata, persistence
S4
S4 is 100% S3 compatible storage, accessed through Tor and distributed using IPFS.
Stars: ✭ 67 (-78.32%)
Mutual labels:  storage, ipfs
nft-art-maker
NFT Art Maker - generates images and metadata files, packs them into IPFS CAR files, and uploads them using nft.storage. All from provided PNG layers.
Stars: ✭ 77 (-75.08%)
Mutual labels:  ipfs, nft
nftool
A suite of tools for NFT generative art.
Stars: ✭ 145 (-53.07%)
Mutual labels:  ipfs, nft
pop
Run a point-of-presence within Myel, the community powered content delivery network.
Stars: ✭ 28 (-90.94%)
Mutual labels:  ipfs, filecoin
apebase
Bored Ape Database
Stars: ✭ 110 (-64.4%)
Mutual labels:  ipfs, nft
borg
Client-server stack for Web3! Turn your Raspberry Pi to a BAS server in minutes and enjoy the freedom of decentralized Web with a superior user experience!
Stars: ✭ 25 (-91.91%)
Mutual labels:  ipfs, filecoin
tenk
Template for making a NFT contract with a raffle of tokens
Stars: ✭ 32 (-89.64%)
Mutual labels:  ipfs, nft
nft.storage-tools
🛠 Utilities for working with nft.storage.
Stars: ✭ 15 (-95.15%)
Mutual labels:  storage, nft
apollo-cache-instorage
Apollo Cache implementation that facilitates locally storing resources
Stars: ✭ 98 (-68.28%)
Mutual labels:  storage, persistence
nebula-crawler
🌌 A libp2p DHT crawler, monitor, and measurement tool that exposes timely information about DHT networks.
Stars: ✭ 97 (-68.61%)
Mutual labels:  ipfs, filecoin
bcdhub
Better Call Dev backend
Stars: ✭ 30 (-90.29%)
Mutual labels:  metadata, nft
filecoin-box
Filecoin flavored Ganache Truffle box
Stars: ✭ 23 (-92.56%)
Mutual labels:  ipfs, filecoin
web3.storage
⁂ The simple file storage service for IPFS & Filecoin
Stars: ✭ 417 (+34.95%)
Mutual labels:  ipfs, filecoin
valist
Web3-native software distribution. Publish and install executables, Docker images, WebAssembly, and more. Powered by Ethereum, IPFS, and Filecoin.
Stars: ✭ 107 (-65.37%)
Mutual labels:  ipfs, filecoin
filecoin-client
Golang的轻量级filecoin客户端,支持离线签名,基本满足钱包交易所充值提现逻辑
Stars: ✭ 50 (-83.82%)
Mutual labels:  ipfs, filecoin
Kvpbase
Scalable, simple RESTful object storage platform, written in C#
Stars: ✭ 43 (-86.08%)
Mutual labels:  metadata, storage

NFT.Storage logo

Free decentralized storage and bandwidth for NFTs on IPFS and Filecoin.

Twitter Follow

Table of Contents

Client Libraries

The JS client library is the official and supported client to nft.storage. Other libraries listed have been generated from the OpenAPI schema and are experimental, unsupported and may not work at all!

  • JavaScript
  • Go (Generated from OpenAPI schema)
  • Java (Generated from OpenAPI schema)
  • PHP (Generated from OpenAPI schema)
  • Python (Generated from OpenAPI schema)
  • Ruby (Generated from OpenAPI schema)
  • Rust (Generated from OpenAPI schema)
  • Unity (C#)

HTTP API

Check out the HTTP API documentation.

Developer Tools

We've created some scripts to help developers with bulk imports, status checks, file listings and more:

https://github.com/nftstorage/nft.storage-tools

Development

Instructions for developers working on the nft.storage API and website.

psst: want to do some frontend work done without an environment? check out this guide

Getting Started

We use yarn in this project and commit the yarn.lock file.

  1. Install dependencies.
    # install all dependencies in the mono-repo
    yarn
    # setup git hooks
    npx simple-git-hooks
  2. Setup your local environment with a .env file. See intructions.
  3. Follow the getting started guides in /packages/api and /packages/website.
  4. Run locally by starting the following processes.
    1. API server (yarn dev in /packages/api).
    2. Web server (yarn dev in /packages/website).

The site should now be available at http://localhost:4000

Local environment configuration

In the root folder create a .env file with the following:

# Wrangler overrides
DEBUG=true

# API Secrets
SALT=secret
MAILCHIMP_API_KEY=secret
METAPLEX_AUTH_TOKEN=secret
# needs to be real so create a personal magic.link account or use the staging key
MAGIC_SECRET_KEY=secret
LOGTAIL_TOKEN=secret

## API Sentry
SENTRY_DSN=https://[email protected]/00000
SENTRY_TOKEN=secret
SENTRY_UPLOAD=false

## API PostgREST
DATABASE_URL=http://localhost:3000
DATABASE_TOKEN=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzdXBhYmFzZSIsImlhdCI6MTYwMzk2ODgzNCwiZXhwIjoyNTUwNjUzNjM0LCJyb2xlIjoic2VydmljZV9yb2xlIn0.necIJaiP7X2T2QjGeV-FhpkizcNTX8HjDDBAxpgQTEI

# Postgres Database
DATABASE_CONNECTION=postgresql://postgres:postgres@localhost:5432/postgres

# Vars below this line are optional or can have fake values
# You only need to have real values if you are manually deploying or running cron jobs locally

# Cloudflare
CF_TOKEN=<token>
CF_ACCOUNT_ID=<account-id>

# IPFS Cluster
CLUSTER1_API_URL = https://nft.storage.ipfscluster.io/api/
CLUSTER1_BASIC_AUTH_TOKEN=<token>

CLUSTER2_API_URL = https://nft2.storage.ipfscluster.io/api/
CLUSTER2_BASIC_AUTH_TOKEN=<token>

CLUSTER3_API_URL = https://nft3.storage.ipfscluster.io/api/
CLUSTER3_BASIC_AUTH_TOKEN=<token>

# Postgrest
PROD_DATABASE_URL=https://db.nft.storage
PROD_DATABASE_TOKEN=<token>

STAGING_DATABASE_URL=https://db-staging.nft.storage
STAGING_DATABASE_TOKEN=<token>

# Postgres Database
PROD_DATABASE_CONNECTION=<connection-string>

STAGING_DATABASE_CONNECTION=<connection-string>

# Pinata
PINATA_JWT=<token>

# dag cargo
DAG_CARGO_HOST=<ip>
DAG_CARGO_DATABASE=<db-name>
DAG_CARGO_USER=<db-user>
DAG_CARGO_PASSWORD=<db-password>

Production vars should be set in Github Actions secrets.

Release

Release Please automates CHANGELOG generation, the creation of GitHub releases, and version bumps for our packages. Release Please does so by parsing your git history, looking for Conventional Commit messages, and creating release PRs.

What's a Release PR?

Rather than continuously releasing what's landed to our default branch, release-please maintains Release PRs:

These Release PRs are kept up-to-date as additional work is merged. When we're ready to tag a release, we simply merge the release PR.

When the release PR is merged the release job is triggered to create a new tag, a new github release and run other package specific jobs. Only merge ONE release PR at a time and wait for CI to finish before merging another.

Release PRs are created individually for each package in the mono repo.

How should I write my commits?

Release Please assumes you are using Conventional Commit messages.

The most important prefixes you should have in mind are:

  • fix: which represents bug fixes, and correlates to a SemVer patch.
  • feat: which represents a new feature, and correlates to a SemVer minor.
  • feat!:, or fix!:, refactor!:, etc., which represent a breaking change (indicated by the !) and will result in a SemVer major.

Contributing

Feel free to join in. All welcome. Open an issue!

License

Dual-licensed under MIT + Apache 2.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].