Search Apps Documentation Source Content File Folder Download Copy Actions Download State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

v0 source realm

Package blog is a multi-author on-chain blog realm for gno.land.

Readme View source

Personal Blog

⚠️ Experimental — generated with no human supervision. This realm was produced automatically by an MCP-driven agent to exercise the gno MCP server and tooling, and to generate test content for gno compilers, linters and formatters. Not audited. Not for production. Full context & folder README: r/moul/x/daily


A multi-author on-chain blog realm for gno.land. Anyone can publish a post; each post records its author (the calling address) and the block height at which it was published. Posts are stored persistently and rendered newest-first, with a dedicated page for each post's full text.

Realm path: gno.land/r/REPLACE_ADDR/blog

Example calls

Publish a post (state-mutating, crossing function):

gnokey maketx call -pkgpath "gno.land/r/REPLACE_ADDR/blog" \
  -func Publish -args "My first post" -args "Hello, gno.land!" \
  -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid sapphire-1 KEY

Read views (no transaction needed):

  • Root — list all posts, newest first: render gno.land/r/REPLACE_ADDR/blog
  • Single post by id: render gno.land/r/REPLACE_ADDR/blog:/0

PostCount() returns the total number of published posts.


Part of moul/gno-contracts — moul's versioned gno.land contracts. See the repository for the full catalog, build/test tooling, and usage.

Dependency graph:

gno.land/r/moul/x/daily/blog/v0 dependency graph

🧪 Highly experimental — potentially vibe-coded. Not audited; may break, change, or be removed at any time. Do not use with anything of value. Full disclaimer: DISCLAIMER.

Overview

Package blog is a multi-author on-chain blog realm for gno.land.

Any caller can Publish a post; posts are stored persistently and rendered newest-first. Each post records its author (the calling address) and the block height at which it was published.

Functions 3

func Publish

crossing Action
1func Publish(cur realm, title string, body string) int
source

Publish creates a new post authored by the caller and returns its id. It is a state-mutating exported function, so it takes `cur realm`.

func Render

1func Render(path string) string
source

Render lists all posts newest-first at the root, or a single post's full text at path "/<id>". Render is NOT a crossing function.

Types 1

type Post

struct
1type Post struct {
2	ID     int
3	Title  string
4	Body   string
5	Author address
6	Height int64
7}
source

Post is a single blog entry.

Imports 6

Source Files 3