{"id":21629656,"url":"https://github.com/harryr/key721-sapphire","last_synced_at":"2026-04-10T21:13:39.299Z","repository":{"id":173863071,"uuid":"623843609","full_name":"HarryR/key721-sapphire","owner":"HarryR","description":"Keypairs as NFTs on Oasis Sapphire","archived":false,"fork":false,"pushed_at":"2023-04-20T10:11:49.000Z","size":126,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-18T21:23:58.982Z","etag":null,"topics":["bitcoin","bn254","cross-chain","demo","ed25519","erc721","ethereum","nft","oasis","sapphire","secp256k1","sgx"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HarryR.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-05T07:54:51.000Z","updated_at":"2023-04-18T12:38:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"f74b4f83-db5e-4e09-bbde-21cb8f9c18ad","html_url":"https://github.com/HarryR/key721-sapphire","commit_stats":null,"previous_names":["harryr/key721-sapphire"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/HarryR/key721-sapphire","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarryR%2Fkey721-sapphire","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarryR%2Fkey721-sapphire/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarryR%2Fkey721-sapphire/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarryR%2Fkey721-sapphire/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HarryR","download_url":"https://codeload.github.com/HarryR/key721-sapphire/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarryR%2Fkey721-sapphire/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31659219,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"ssl_error","status_checked_at":"2026-04-10T17:19:13.364Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitcoin","bn254","cross-chain","demo","ed25519","erc721","ethereum","nft","oasis","sapphire","secp256k1","sgx"],"created_at":"2024-11-25T02:08:18.427Z","updated_at":"2026-04-10T21:13:39.274Z","avatar_url":"https://github.com/HarryR.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Key721 (Sapphire) - Wallet keypairs as NFTs on Oasis\n\nThis project wraps keypairs (altbn128, secp256k1, ed25519) as an NFT on Oasis Sapphire, this allows for e.g. Bitcoin wallets to be traded by making a deposit to the NFTs Bitcoin address, the secret key is only revealed to the owner whent the NFT is burned. This acts like a 'bridgeless bridge'.\n\n**Please note: this project is a proof of concept demo, please do not use it or deploy to mainnet as-is, it is part of a larger project and does not offer privacy on its own**\n\nDevelopment is done in a Docker container and uses a local ephemeral Sapphire node.\n\n```shell\nmake sapphire-dev \u0026  # Start local Sapphire node\nmake dev-shell       # Ephemeral docker container\n\u003e pnpm hardhat test  # Test NFT implementation using OpenZeppelin tests\n\u003e make test          # Run mint/burn tests against local Sapphire node\n```\n\nExample mint/burn (for Ed25519):\n\n```\n\u003e make test-ed25519\n\n\u003e\u003e pnpm hardhat --network sapphire_local key721-mint --alg ed25519 --debug `cat cache/ed25519.address` | tee cache/ed25519-mint.tokenid || rm cache/ed25519-mint.tokenid\n       tx: 0x9094187d6e338c74782eb247fd9f0cc11da30bb1442e35d36ef4ca56b4123438 (height: 14309)\n gas used: 143950\n  tokenId: 0x93da6509f5e7ac789816070aeacf697e639380f067df373761ec39dcf1a8cfaf\n    owner: 0x6052795666b7B062910AaC422b558445F1E4bcC5\n[\n  {\n    oasis: 'oasis1qp2fauyvm5rwtt4d2dgc2w0hy7zzeaxw4y7a8j0v',\n    key721_id: '0x93da6509f5e7ac789816070aeacf697e639380f067df373761ec39dcf1a8cfaf'\n  }\n]\n0x93da6509f5e7ac789816070aeacf697e639380f067df373761ec39dcf1a8cfaf\n\n\u003e\u003e pnpm hardhat --network sapphire_local key721-burn --alg ed25519 --debug `cat cache/ed25519.address` `cat cache/ed25519-mint.tokenid`\n        tx: 0xaeba12727981efeb7386b6ca18bf1d0a8ad611969adf20145c4ac33cb568708f (height: 14310)\n  gas used: 156905\n   tokenId: 0x93da6509f5e7ac789816070aeacf697e639380f067df373761ec39dcf1a8cfaf\nhex secret: 0x003a4d78aca3d13ab7d4bd04fbe2b317701d8798d4da4781d2546801e73f0852\nb64 secret: ADpNeKyj0Tq31L0E++KzF3Adh5jU2keB0lRoAec/CFI=\n{\n  oasis: 'oasis1qp2fauyvm5rwtt4d2dgc2w0hy7zzeaxw4y7a8j0v',\n  key721_id: '0x93da6509f5e7ac789816070aeacf697e639380f067df373761ec39dcf1a8cfaf'\n}\n\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharryr%2Fkey721-sapphire","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharryr%2Fkey721-sapphire","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharryr%2Fkey721-sapphire/lists"}