{"id":20272309,"url":"https://github.com/steemit/steemgosdk","last_synced_at":"2026-01-17T23:39:48.176Z","repository":{"id":145616974,"uuid":"615548268","full_name":"steemit/steemgosdk","owner":"steemit","description":"The Golang SDK for Steem","archived":false,"fork":false,"pushed_at":"2026-01-12T18:57:48.000Z","size":87,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-01-13T00:18:32.058Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/steemit.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-03-18T00:46:36.000Z","updated_at":"2026-01-12T18:57:08.000Z","dependencies_parsed_at":"2023-05-19T06:00:52.846Z","dependency_job_id":null,"html_url":"https://github.com/steemit/steemgosdk","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/steemit/steemgosdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steemit%2Fsteemgosdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steemit%2Fsteemgosdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steemit%2Fsteemgosdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steemit%2Fsteemgosdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/steemit","download_url":"https://codeload.github.com/steemit/steemgosdk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steemit%2Fsteemgosdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28522311,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T22:11:28.393Z","status":"ssl_error","status_checked_at":"2026-01-17T22:11:27.841Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":[],"created_at":"2024-11-14T12:42:48.334Z","updated_at":"2026-01-17T23:39:48.169Z","avatar_url":"https://github.com/steemit.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Steem Go SDK\n\n\u003e **⚠️ Under Construction**: This SDK is currently under active development. APIs may change in future versions.\n\nA comprehensive Go SDK for interacting with the Steem blockchain, providing high-level abstractions for common operations while maintaining full compatibility with the Steem protocol.\n\n## 🚀 Features\n\n- **Complete API Coverage**: Access all Steem blockchain APIs (condenser_api, database_api, etc.)\n- **Transaction Broadcasting**: Sign and broadcast transactions with automatic fee calculation\n- **SignedCall Support**: Authenticated RPC calls compatible with steem-js\n- **Key Management**: Secure private key handling and WIF import/export\n- **Type Safety**: Strongly typed Go structs for all Steem data types\n- **Easy Integration**: Simple, intuitive API designed for Go developers\n\n## 📦 Installation\n\n```bash\ngo get github.com/steemit/steemgosdk\n```\n\n## 🏃‍♂️ Quick Start\n\n### Basic Setup\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n    \"log\"\n    \n    \"github.com/steemit/steemgosdk\"\n    \"github.com/steemit/steemgosdk/consts\"\n)\n\nfunc main() {\n    // Create client\n    client := steemgosdk.GetClient(\"https://api.steemit.com\")\n    client.AccountName = \"your-account\"\n    \n    // Import your private key (for signing operations)\n    err := client.ImportWif(consts.POSTING_KEY, \"your-posting-private-key\")\n    if err != nil {\n        log.Fatal(err)\n    }\n    \n    fmt.Println(\"✅ Client initialized successfully!\")\n}\n```\n\n### Making API Calls\n\n```go\nimport (\n    \"github.com/steemit/steemutil/protocol\"\n)\n\n// Get account information\napi := client.GetAPI()\naccounts, err := api.GetAccounts([]string{\"steemit\"})\nif err != nil {\n    log.Fatal(err)\n}\n\n// Display raw reputation and converted reputation\nrawRep := accounts[0].Reputation\nrepLog10 := protocol.RepLog10(rawRep)\nfmt.Printf(\"Account: %s, Raw Reputation: %d, Reputation Score: %d\\n\", \n    accounts[0].Name, rawRep, repLog10)\n```\n\n### Broadcasting Transactions\n\n```go\n// Vote on a post\nbroadcast := client.GetBroadcast()\nerr = broadcast.Vote(\"author\", \"permlink\", 10000) // 100% upvote\nif err != nil {\n    log.Fatal(err)\n}\n\nfmt.Println(\"✅ Vote submitted successfully!\")\n```\n\n### Authenticated Calls (SignedCall)\n\n```go\n// Make an authenticated API call\nvar result []map[string]interface{}\nerr = client.SignedCallWithResult(\n    \"condenser_api.get_accounts\",\n    []interface{}{[]string{\"your-account\"}},\n    consts.ACTIVE_KEY,\n    \u0026result,\n)\nif err != nil {\n    log.Fatal(err)\n}\n\nfmt.Printf(\"✅ Authenticated call successful: %+v\\n\", result)\n```\n\n## 📚 Documentation\n\n### Core Guides\n\n- **[Examples](docs/examples.md)** - Comprehensive examples for all SDK features\n- **[SignedCall API](docs/signed-call.md)** - Authenticated RPC calls documentation\n\n### API Reference\n\nThe SDK is organized into several key components:\n\n#### 🔌 Client (`steemgosdk.Client`)\n- Main entry point for all SDK operations\n- Handles connection management and authentication\n- Provides access to API, Broadcast, and Auth instances\n\n#### 🌐 API (`client.GetAPI()`)\n- Access to all Steem blockchain APIs\n- Read-only operations (get accounts, posts, etc.)\n- Both regular and authenticated (SignedCall) methods\n\n#### 📡 Broadcast (`client.GetBroadcast()`)\n- Transaction signing and broadcasting\n- Operations: vote, comment, transfer, etc.\n- Automatic fee calculation and transaction preparation\n\n#### 🔐 Auth (`client.GetAuth()`)\n- Private key management\n- WIF import/export\n- Key derivation from username/password\n\n## 🛠️ Advanced Usage\n\n### Custom Node Configuration\n\n```go\n// Connect to a custom Steem node\nclient := steemgosdk.GetClient(\"https://your-custom-node.com\")\n\n// Configure timeout and other options\nclient.SetTimeout(30 * time.Second)\n```\n\n### Multiple Key Management\n\n```go\nauth := client.GetAuth()\n\n// Import multiple keys for different operations\nauth.ImportWif(consts.POSTING_KEY, \"posting-private-key\")\nauth.ImportWif(consts.ACTIVE_KEY, \"active-private-key\")\nauth.ImportWif(consts.MEMO_KEY, \"memo-private-key\")\n\n// Generate keys from master password\nkeys, err := auth.GetPrivateKeys(\"username\", \"password\", []string{\"posting\", \"active\"})\n```\n\n### Error Handling\n\n```go\n// The SDK provides detailed error information\nerr := broadcast.Vote(\"author\", \"permlink\", 10000)\nif err != nil {\n    switch {\n    case strings.Contains(err.Error(), \"missing required posting authority\"):\n        fmt.Println(\"❌ Missing posting key - please import your posting private key\")\n    case strings.Contains(err.Error(), \"network\"):\n        fmt.Println(\"❌ Network error - check your connection\")\n    default:\n        fmt.Printf(\"❌ Unexpected error: %v\\n\", err)\n    }\n}\n```\n\n## 🔗 Related Projects\n\n- **[steemutil](https://github.com/steemit/steemutil)** - Low-level Steem utilities (used internally)\n- **[steem-js](https://github.com/steemit/steem-js)** - JavaScript Steem library (SignedCall compatible)\n- **[steem](https://github.com/steemit/steem)** - Official Steem blockchain implementation\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see our contributing guidelines for details.\n\n### Development Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/steemit/steemgosdk.git\ncd steemgosdk\n\n# Install dependencies\ngo mod download\n\n# Run tests\ngo test ./...\n\n# Build examples\ngo build -o examples/vote_post examples/vote_post/main.go\n```\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🆘 Support\n\n- **Issues**: [GitHub Issues](https://github.com/steemit/steemgosdk/issues)\n- **Documentation**: [API Documentation](https://pkg.go.dev/github.com/steemit/steemgosdk)\n- **Examples**: See the [docs/examples.md](docs/examples.md) for comprehensive usage examples\n\n---\n\n**Built with ❤️ for the Steem community**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteemit%2Fsteemgosdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsteemit%2Fsteemgosdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteemit%2Fsteemgosdk/lists"}