{"id":18254705,"url":"https://github.com/bitcoin-sv/go-paymail","last_synced_at":"2025-06-15T03:09:32.346Z","repository":{"id":190618561,"uuid":"677406708","full_name":"bitcoin-sv/go-paymail","owner":"bitcoin-sv","description":"Paymail client \u0026 server library for Golang","archived":false,"fork":false,"pushed_at":"2024-09-13T12:14:17.000Z","size":1197,"stargazers_count":9,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-09-14T02:09:35.837Z","etag":null,"topics":["bsv","golang","library","paymail","spv-wallet-team"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bitcoin-sv.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-11T13:50:31.000Z","updated_at":"2024-09-11T08:45:02.000Z","dependencies_parsed_at":"2023-09-22T15:21:16.899Z","dependency_job_id":"c3b67721-7ae3-4026-9126-3b4837b9fb37","html_url":"https://github.com/bitcoin-sv/go-paymail","commit_stats":null,"previous_names":["bitcoin-sv/go-paymail"],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcoin-sv%2Fgo-paymail","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcoin-sv%2Fgo-paymail/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcoin-sv%2Fgo-paymail/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcoin-sv%2Fgo-paymail/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitcoin-sv","download_url":"https://codeload.github.com/bitcoin-sv/go-paymail/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223150706,"owners_count":17095959,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bsv","golang","library","paymail","spv-wallet-team"],"created_at":"2024-11-05T10:13:18.897Z","updated_at":"2024-11-05T10:13:19.847Z","avatar_url":"https://github.com/bitcoin-sv.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# go-paymail\n\u003e Paymail client \u0026 server library for Golang\n\n## Table of Contents\n- [go-paymail](#go-paymail)\n  - [Table of Contents](#table-of-contents)\n  - [Installation](#installation)\n  - [Documentation](#documentation)\n    - [Features](#features)\n  - [Examples \\\u0026 Tests](#examples--tests)\n  - [Benchmarks](#benchmarks)\n  - [Code Standards](#code-standards)\n  - [Usage](#usage)\n\n\u003cbr/\u003e\n\n## Installation\n\n**go-paymail** requires a [supported release of Go](https://golang.org/doc/devel/release.html#policy).\n```shell script\ngo get -u github.com/bitcoin-sv/go-paymail\n```\n\n\u003cbr/\u003e\n\n## Documentation\nView the generated [documentation](https://pkg.go.dev/github.com/bitcoin-sv/go-paymail)\n\n[![GoDoc](https://godoc.org/github.com/bitcoin-sv/go-paymail?status.svg\u0026style=flat\u0026v=4)](https://pkg.go.dev/github.com/bitcoin-sv/go-paymail)\n\n### Features\n- [Paymail Client](client.go) (outgoing requests to other providers)\n    - Use your own custom [Resty HTTP client](https://github.com/go-resty/resty)\n    - Customize the [client options](client.go)\n    - Use your own custom [net.Resolver](srv_test.go)\n    - Full network support: [`mainnet`, `testnet`, `STN`](networks.go)\n    - [Get \u0026 Validate SRV records](srv.go)\n    - [Check SSL Certificates](ssl.go)\n    - [Check \u0026 Validate DNSSEC](dns_sec.go)\n    - [Generate, Validate \u0026 Load Additional BRFC Specifications](brfc.go)\n    - [Fetch, Get and Has Capabilities](capabilities.go)\n    - [Get Public Key Information - PKI](pki.go)\n    - [Basic Address Resolution](resolve_address.go)\n    - [Verify PubKey \u0026 Handle](verify_pubkey.go)\n    - [Get Public Profile](public_profile.go)\n    - [P2P Payment Destination](p2p_payment_destination.go)\n    - [P2P Send Transaction](p2p_send_transaction.go)\n- [Paymail Server](server) (basic example for hosting your own paymail server)\n    - [Example Showing Capabilities](server/capabilities.go) \n    - [Example Showing PKI](server/pki.go)\n    - [Example Verifying a PubKey](server/verify.go)\n    - [Example Address Resolution](server/resolve_address.go)\n    - [Example Getting a P2P Payment Destination](server/p2p_payment_destination.go)\n    - [Example Receiving a P2P Transaction](server/p2p_receive_transaction.go)\n- [Paymail Utilities](utilities.go) (handy methods)\n    - [Sanitize \u0026 Validate Paymail Addresses](utilities.go)\n    - [Sign \u0026 Verify Sender Request](sender_request.go)\n    \n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e\u003ccode\u003ePackage Dependencies\u003c/code\u003e\u003c/strong\u003e\u003c/summary\u003e\n\u003cbr/\u003e\n\nClient Packages:\n- [BitcoinSchema/go-bitcoin](https://github.com/BitcoinSchema/go-bitcoin)\n- [go-resty/resty](https://github.com/go-resty/resty/v2)\n- [jarcoal/httpmock](https://github.com/jarcoal/httpmock)\n- [libsv/go-bk](https://github.com/libsv/go-bk)\n- [libsv/go-bt](https://github.com/libsv/go-bt)\n- [miekg/dns](https://github.com/miekg/dns)\n\nServer Packages:\n- [julienschmidt/httprouter](https://github.com/julienschmidt/httprouter)\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e\u003ccode\u003eLibrary Deployment\u003c/code\u003e\u003c/strong\u003e\u003c/summary\u003e\n\u003cbr/\u003e\n\n[goreleaser](https://github.com/goreleaser/goreleaser) for easy binary or library deployment to GitHub and can be installed via: `brew install goreleaser`.\n\nThe [.goreleaser.yml](.goreleaser.yml) file is used to configure [goreleaser](https://github.com/goreleaser/goreleaser).\n\nUse `make release-snap` to create a snapshot version of the release, and finally `make release` to ship to production.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e\u003ccode\u003eMakefile Commands\u003c/code\u003e\u003c/strong\u003e\u003c/summary\u003e\n\u003cbr/\u003e\n\nView all `makefile` commands\n```shell script\nmake help\n```\n\nList of all current commands:\n```text\nall                   Runs multiple commands\nclean                 Remove previous builds and any test cache data\nclean-mods            Remove all the Go mod cache\ncoverage              Shows the test coverage\ndiff                  Show the git diff\ngenerate              Runs the go generate command in the base of the repo\ngodocs                Sync the latest tag with GoDocs\nhelp                  Show this help message\ninstall               Install the application\ninstall-go            Install the application (Using Native Go)\ninstall-releaser      Install the GoReleaser application\nlint                  Run the golangci-lint application (install if not found)\nrelease               Full production release (creates release in GitHub)\nrelease               Runs common.release then runs godocs\nrelease-snap          Test the full release (build binaries)\nrelease-test          Full production test release (everything except deploy)\nreplace-version       Replaces the version in HTML/JS (pre-deploy)\ntag                   Generate a new tag and push (tag version=0.0.0)\ntag-remove            Remove a tag if found (tag-remove version=0.0.0)\ntag-update            Update an existing tag to current commit (tag-update version=0.0.0)\ntest                  Runs lint and ALL tests\ntest-ci               Runs all tests via CI (exports coverage)\ntest-ci-no-race       Runs all tests via CI (no race) (exports coverage)\ntest-ci-short         Runs unit tests via CI (exports coverage)\ntest-no-lint          Runs just tests\ntest-short            Runs vet, lint and tests (excludes integration tests)\ntest-unit             Runs tests and outputs coverage\nuninstall             Uninstall the application (and remove files)\nupdate-linter         Update the golangci-lint package (macOS only)\nvet                   Run the Go vet application\n```\n\u003c/details\u003e\n\n\u003cbr/\u003e\n\n## Examples \u0026 Tests\nAll unit tests and [examples](examples) run via [GitHub Actions](https://github.com/bitcoin-sv/go-paymail/actions) and\nuses [Go version 1.21](https://golang.org/doc/go1.21). View the [configuration file](.github/workflows/run-tests.yml).\n\nRun all tests (including integration tests)\n```shell script\nmake test\n```\n\nRun tests (excluding integration tests)\n```shell script\nmake test-short\n```\n\n\u003cbr/\u003e\n\n## Benchmarks\nRun the Go benchmarks:\n```shell script\nmake bench\n```\n\n\u003cbr/\u003e\n\n## Code Standards\nRead more about this Go project's [code standards](.github/CODE_STANDARDS.md).\n\n\u003cbr/\u003e\n\n## Usage\nCheckout all the [client examples](examples/client) or [server examples](examples/server)!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitcoin-sv%2Fgo-paymail","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitcoin-sv%2Fgo-paymail","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitcoin-sv%2Fgo-paymail/lists"}